Merge branch 'master' into develop

This commit is contained in:
Jonathan White 2019-03-19 19:01:31 -04:00
commit 31bd90a8df
No known key found for this signature in database
GPG Key ID: 440FC65F2E0C6E01
99 changed files with 4428 additions and 3872 deletions

View File

@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com
[keepassxc.keepassx_ents]
[keepassxc.keepassxc]
source_file = share/translations/keepassx_en.ts
file_filter = share/translations/keepassx_<lang>.ts
source_lang = en

View File

@ -1,8 +1,34 @@
2.4.0-preview (TBD)
2.4.0 (2019-03-19)
=========================
This is a pre-release build, view merged PR's at
https://github.com/keepassxreboot/keepassxc/pulls?q=is%3Apr+milestone%3Av2.4.0+is%3Aclosed
- New Database Wizard [#1952]
- Advanced Search [#1797]
- Automatic update checker [#2648]
- KeeShare database synchronization [#2109, #1992, #2738, #2742, #2746, #2739]
- Improve favicon fetching; transition to Duck-Duck-Go [#2795, #2011, #2439]
- Remove KeePassHttp support [#1752]
- CLI: output info to stderr for easier scripting [#2558]
- CLI: Add --quiet option [#2507]
- CLI: Add create command [#2540]
- CLI: Add recursive listing of entries [#2345]
- CLI: Fix stdin/stdout encoding on Windows [#2425]
- SSH Agent: Support OpenSSH for Windows [#1994]
- macOS: TouchID Quick Unlock [#1851]
- macOS: Multiple improvements; include CLI in DMG [#2165, #2331, #2583]
- Linux: Prevent Klipper from storing secrets in clipboard [#1969]
- Linux: Use polling based file watching for NFS [#2171]
- Linux: Enable use of browser plugin in Snap build [#2802]
- TOTP QR Code Generator [#1167]
- High-DPI Scaling for 4k screens [#2404]
- Make keyboard shortcuts more consistent [#2431]
- Warn user if deleting referenced entries [#1744]
- Allow toolbar to be hidden and repositioned [#1819, #2357]
- Increase max allowed database timeout to 12 hours [#2173]
- Password generator uses existing password length by default [#2318]
- Improve alert message box button labels [#2376]
- Show message when a database merge makes no changes [#2551]
- Browser Integration Enhancements [#1497, #2253, #1904, #2232, #1850, #2218, #2391, #2396, #2542, #2622, #2637, #2790]
- Overall Code Improvements [#2316, #2284, #2351, #2402, #2410, #2419, #2422, #2443, #2491, #2506, #2610, #2667, #2709, #2731]
2.3.4 (2018-08-21)
=========================

View File

@ -236,15 +236,8 @@ checkGitRepository() {
fi
}
checkTagExists() {
git tag | grep -q "$TAG_NAME"
if [ $? -ne 0 ]; then
exitError "Tag '${TAG_NAME}' does not exist!"
fi
}
checkReleaseDoesNotExist() {
git tag | grep -q "$TAG_NAME"
git tag | grep -q "^$TAG_NAME$"
if [ $? -eq 0 ]; then
exitError "Release '$RELEASE_NAME' (tag: '$TAG_NAME') already exists!"
fi
@ -325,6 +318,11 @@ checkSnapcraft() {
if [ $? -ne 0 ]; then
exitError "'snapcraft.yaml' has not been updated to the '${RELEASE_NAME}' release!"
fi
grep -qPzo "KEEPASSXC_BUILD_TYPE=Release" snapcraft.yaml
if [ $? -ne 0 ]; then
exitError "'snapcraft.yaml' is not set for a release build!"
fi
}
checkTransifexCommandExists() {
@ -333,12 +331,6 @@ checkTransifexCommandExists() {
fi
}
checkOsslsigncodeCommandExists() {
if ! cmdExists osslsigncode; then
exitError "osslsigncode command not found on the PATH! Please install it using 'pacman -S mingw-w64-osslsigncode'."
fi
}
checkSigntoolCommandExists() {
if ! cmdExists signtool; then
exitError "signtool command not found on the PATH! Add the Windows SDK binary folder to your PATH."
@ -818,6 +810,10 @@ build() {
shift
done
if [[ ${build_appsign} && ! -f ${build_key} ]]; then
exitError "--appsign specified with invalid key file\n"
fi
init
OUTPUT_DIR="$(realpath "$OUTPUT_DIR")"
@ -912,7 +908,7 @@ build() {
make ${MAKE_OPTIONS} package
# Appsign the executables if desired
if [[ ${build_appsign} && ! -z ${build_key} ]]; then
if [[ ${build_appsign} ]]; then
logInfo "Signing executable files"
appsign "-f" "./${APP_NAME}-${RELEASE_NAME}.dmg" "-k" "${build_key}"
fi
@ -928,9 +924,9 @@ build() {
mingw32-make ${MAKE_OPTIONS} preinstall
# Appsign the executables if desired
if [[ ${build_appsign} && ! -z ${build_key} ]]; then
if [[ ${build_appsign} ]]; then
logInfo "Signing executable files"
appsign "-f" $(find src | grep '\.exe') "-k" "${build_key}"
appsign "-f" $(find src | grep -P '\.exe$|\.dll$') "-k" "${build_key}"
fi
# Call cpack directly instead of calling make package.
@ -1172,8 +1168,6 @@ appsign() {
done
elif [ "$(uname -o)" == "Msys" ]; then
checkOsslsigncodeCommandExists
if [[ ! -f "${key}" ]]; then
exitError "Key file was not found!"
fi
@ -1182,20 +1176,8 @@ appsign() {
echo
for f in "${sign_files[@]}"; do
if [[ ${f: -4} == ".exe" ]]; then
logInfo "Signing file '${f}' using osslsigncode..."
# output a signed exe; we have to use a different name due to osslsigntool limitations
osslsigncode sign -pkcs12 "${key}" -pass "${password}" -n "KeePassXC" \
-t "http://timestamp.comodoca.com/authenticode" -in "${f}" -out "${f}.signed"
if [ 0 -ne $? ]; then
rm -f "${f}.signed"
exitError "Signing failed!"
fi
# overwrite the original exe with the signed exe
mv -f "${f}.signed" "${f}"
elif [[ ${f: -4} == ".msi" ]]; then
ext=${f: -4}
if [[ $ext == ".msi" || $ext == ".exe" || $ext == ".dll" ]]; then
# Make sure we can find the signtool
checkSigntoolCommandExists

View File

@ -50,11 +50,38 @@
</screenshots>
<releases>
<release version="2.4.0-preview" date="TBD">
<release version="2.4.0" date="2019-03-19">
<description>
<p>
This is a pre-release build, <a href="https://github.com/keepassxreboot/keepassxc/pulls?q=is%3Apr+milestone%3Av2.4.0+is%3Aclosed">click to view merged PR's</a>
</p>
<ul>
<li>New Database Wizard [#1952]</li>
<li>Advanced Search [#1797]</li>
<li>Automatic update checker [#2648]</li>
<li>KeeShare database synchronization [#2109, #1992, #2738, #2742, #2746, #2739]</li>
<li>Improve favicon fetching; transition to Duck-Duck-Go [#2795, #2011, #2439]</li>
<li>Remove KeePassHttp support [#1752]</li>
<li>CLI: output info to stderr for easier scripting [#2558]</li>
<li>CLI: Add --quiet option [#2507]</li>
<li>CLI: Add create command [#2540]</li>
<li>CLI: Add recursive listing of entries [#2345]</li>
<li>CLI: Fix stdin/stdout encoding on Windows [#2425]</li>
<li>SSH Agent: Support OpenSSH for Windows [#1994]</li>
<li>macOS: TouchID Quick Unlock [#1851]</li>
<li>macOS: Multiple improvements; include CLI in DMG [#2165, #2331, #2583]</li>
<li>Linux: Prevent Klipper from storing secrets in clipboard [#1969]</li>
<li>Linux: Use polling based file watching for NFS [#2171]</li>
<li>Linux: Enable use of browser plugin in Snap build [#2802]</li>
<li>TOTP QR Code Generator [#1167]</li>
<li>High-DPI Scaling for 4k screens [#2404]</li>
<li>Make keyboard shortcuts more consistent [#2431]</li>
<li>Warn user if deleting referenced entries [#1744]</li>
<li>Allow toolbar to be hidden and repositioned [#1819, #2357]</li>
<li>Increase max allowed database timeout to 12 hours [#2173]</li>
<li>Password generator uses existing password length by default [#2318]</li>
<li>Improve alert message box button labels [#2376]</li>
<li>Show message when a database merge makes no changes [#2551]</li>
<li>Browser Integration Enhancements [#1497, #2253, #1904, #2232, #1850, #2218, #2391, #2396, #2542, #2622, #2637, #2790]</li>
<li>Overall Code Improvements [#2316, #2284, #2351, #2402, #2410, #2419, #2422, #2443, #2491, #2506, #2610, #2667, #2709, #2731]</li>
</ul>
</description>
</release>
<release version="2.3.4" date="2018-08-21">

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>نسخ إلى الحافظة</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>مراجعة: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>مراجعة: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>المكتبات:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>نظام التشغيل: %1
معمارية المعالج: %2
النواة: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>الإضافات المُفعلة:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>مشرفي المشروع:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</source>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>شكر خاص من فريق KeePassXC يذهب إلى debfx لإنشاء KeePassX الأصلي.</translation>
</message>
<message>
<source>Version %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Build Type: %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Auto-Type</source>
<translation>الطباعة التلقائية</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>تكامل المتصفح</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>وكيل SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation type="unfinished"/>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>حدد موقع خادم الوكيل المخصص</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>نحن متأسفون, ولكن KeePassXC-Browser غير مدعوم لإصدارات Snap في الوقت الراهن.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation type="unfinished"/>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -757,9 +693,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -921,6 +867,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1664,6 +1614,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2101,6 +2055,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>مسح</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2572,14 +2542,6 @@ This may cause the affected plugins to malfunction.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3172,6 +3134,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3816,10 +3794,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4853,6 +4827,10 @@ Available commands:
<source>Database password: </source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5126,8 +5104,7 @@ Available commands:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5145,10 +5122,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5225,14 +5198,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5257,6 +5222,34 @@ Available commands:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -7,7 +7,7 @@
</message>
<message>
<source>About</source>
<translation>Quant</translation>
<translation>Quant a</translation>
</message>
<message>
<source>Report bugs at: &lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/issues&quot; style=&quot;text-decoration: underline;&quot;&gt;https://github.com&lt;/a&gt;</source>
@ -23,7 +23,7 @@
</message>
<message>
<source>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;See Contributions on GitHub&lt;/a&gt;</source>
<translation>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;Veure els contribuïdors a GitHub&lt;/a&gt;</translation>
<translation>&lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/graphs/contributors&quot;&gt;Vegeu les contribucions a GitHub&lt;/a&gt;</translation>
</message>
<message>
<source>Debug Info</source>
@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copia al porta-retalls</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisió: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribució: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Llibreries</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operatiu: %1
Arquitectura de la CPU: %2
Nucli: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensions habilitades:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Mantenidors del projecte:</translation>
@ -69,50 +45,6 @@ Nucli: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Agraïments de l&apos;equip de KeePassXC a debfx per crear el KeePassX original.</translation>
</message>
<message>
<source>Version %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Build Type: %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Auto-Type</source>
<translation>Compleció automàtica</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integració amb el navegador</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agent SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation type="unfinished"/>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -145,19 +77,19 @@ Nucli: %3 %4</translation>
</message>
<message>
<source>Icon only</source>
<translation type="unfinished"/>
<translation>Només la icona</translation>
</message>
<message>
<source>Text only</source>
<translation type="unfinished"/>
<translation>Només text</translation>
</message>
<message>
<source>Text beside icon</source>
<translation type="unfinished"/>
<translation>Text enlloc d&apos;icona</translation>
</message>
<message>
<source>Text under icon</source>
<translation type="unfinished"/>
<translation>Text sota la icona</translation>
</message>
<message>
<source>Follow style</source>
@ -337,7 +269,7 @@ Nucli: %3 %4</translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"/>
<translation>min</translation>
</message>
<message>
<source>Forget TouchID after inactivity of</source>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</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>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation type="unfinished"/>
@ -677,13 +601,25 @@ Please select the correct database for saving credentials.</source>
</message>
<message>
<source>All Files</source>
<translation type="unfinished"/>
<translation>Tots els fitxers</translation>
</message>
<message>
<source>Do not ask permission for HTTP &amp;Basic Auth</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -754,9 +690,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -875,20 +821,20 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<name>CsvParserModel</name>
<message numerus="yes">
<source>%n column(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n columna(es)</numerusform><numerusform>%n columna(es)</numerusform></translation>
</message>
<message>
<source>%1, %2, %3</source>
<comment>file info: bytes, rows, columns</comment>
<translation type="unfinished"/>
<translation>%1, %2, %3</translation>
</message>
<message numerus="yes">
<source>%n byte(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n byte(s)</numerusform><numerusform>%n byte(s)</numerusform></translation>
</message>
<message numerus="yes">
<source>%n row(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n fila(es)</numerusform><numerusform>%n fila(es)</numerusform></translation>
</message>
</context>
<context>
@ -918,6 +864,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1005,7 +955,7 @@ Please consider generating a new key file.</source>
<name>DatabaseSettingsDialog</name>
<message>
<source>Advanced Settings</source>
<translation type="unfinished"/>
<translation>Configuració avançada</translation>
</message>
<message>
<source>General</source>
@ -1017,11 +967,11 @@ Please consider generating a new key file.</source>
</message>
<message>
<source>Master Key</source>
<translation type="unfinished"/>
<translation>Clau Mestra</translation>
</message>
<message>
<source>Encryption Settings</source>
<translation type="unfinished"/>
<translation>Configuració del xifrat</translation>
</message>
<message>
<source>Browser Integration</source>
@ -1048,7 +998,7 @@ Please consider generating a new key file.</source>
</message>
<message>
<source>Stored keys</source>
<translation type="unfinished"/>
<translation>Claus emmagatzemades</translation>
</message>
<message>
<source>Remove</source>
@ -1056,7 +1006,7 @@ Please consider generating a new key file.</source>
</message>
<message>
<source>Delete the selected key?</source>
<translation type="unfinished"/>
<translation>Voleu eliminar la clau seleccionada?</translation>
</message>
<message>
<source>Do you really want to delete the selected key?
@ -1065,11 +1015,11 @@ This may prevent connection to the browser plugin.</source>
</message>
<message>
<source>Key</source>
<translation type="unfinished"/>
<translation>Clau</translation>
</message>
<message>
<source>Value</source>
<translation type="unfinished"/>
<translation>Valor</translation>
</message>
<message>
<source>Enable Browser Integration to access these settings.</source>
@ -1171,7 +1121,7 @@ This is necessary to maintain compatibility with the browser plugin.</source>
</message>
<message>
<source>Memory Usage:</source>
<translation type="unfinished"/>
<translation>Ús de memòria:</translation>
</message>
<message>
<source>Parallelism:</source>
@ -1179,11 +1129,11 @@ This is necessary to maintain compatibility with the browser plugin.</source>
</message>
<message>
<source>Decryption Time:</source>
<translation type="unfinished"/>
<translation>Temps de desxifrat:</translation>
</message>
<message>
<source>?? s</source>
<translation type="unfinished"/>
<translation>?? s</translation>
</message>
<message>
<source>Change</source>
@ -1191,11 +1141,11 @@ This is necessary to maintain compatibility with the browser plugin.</source>
</message>
<message>
<source>100 ms</source>
<translation type="unfinished"/>
<translation>100 ms</translation>
</message>
<message>
<source>5 s</source>
<translation type="unfinished"/>
<translation>5 s</translation>
</message>
<message>
<source>Higher values offer more protection, but opening the database will take longer.</source>
@ -1211,11 +1161,11 @@ This is necessary to maintain compatibility with the browser plugin.</source>
</message>
<message>
<source>KDBX 4.0 (recommended)</source>
<translation type="unfinished"/>
<translation>KDBX 4.0 (recomanat)</translation>
</message>
<message>
<source>KDBX 3.1</source>
<translation type="unfinished"/>
<translation>KDBX 3.1</translation>
</message>
<message>
<source>unchanged</source>
@ -1263,7 +1213,7 @@ If you keep this number, your database may be too easy to crack!</source>
<message numerus="yes">
<source> MiB</source>
<comment>Abbreviation for Mebibytes (KDF settings)</comment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform> MiB</numerusform><numerusform> MiB</numerusform></translation>
</message>
<message numerus="yes">
<source> thread(s)</source>
@ -1273,12 +1223,12 @@ If you keep this number, your database may be too easy to crack!</source>
<message numerus="yes">
<source>%1 ms</source>
<comment>milliseconds</comment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 ms</numerusform><numerusform>%1 ms</numerusform></translation>
</message>
<message numerus="yes">
<source>%1 s</source>
<comment>seconds</comment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 s</numerusform><numerusform>%1 s</numerusform></translation>
</message>
</context>
<context>
@ -1340,19 +1290,19 @@ If you keep this number, your database may be too easy to crack!</source>
</message>
<message>
<source>Type</source>
<translation type="unfinished"/>
<translation>Tipus</translation>
</message>
<message>
<source>Path</source>
<translation type="unfinished"/>
<translation>Camí</translation>
</message>
<message>
<source>Last Signer</source>
<translation type="unfinished"/>
<translation>Últim signant</translation>
</message>
<message>
<source>Certificates</source>
<translation type="unfinished"/>
<translation>Certificats</translation>
</message>
<message>
<source> &gt; </source>
@ -1386,22 +1336,22 @@ Are you sure you want to continue without a password?</source>
</message>
<message>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation>Error desconegut</translation>
</message>
<message>
<source>Failed to change master key</source>
<translation type="unfinished"/>
<translation>No s&apos;ha pogut canviar la clau mestra</translation>
</message>
</context>
<context>
<name>DatabaseSettingsWidgetMetaDataSimple</name>
<message>
<source>Database Name:</source>
<translation type="unfinished"/>
<translation>Nom de la base de dades:</translation>
</message>
<message>
<source>Description:</source>
<translation type="unfinished"/>
<translation>Descripció:</translation>
</message>
</context>
<context>
@ -1461,7 +1411,7 @@ This is definitely a bug, please report it to the developers.</source>
</message>
<message>
<source>New Database</source>
<translation type="unfinished"/>
<translation>Base de dades nova</translation>
</message>
<message>
<source>%1 [New Database]</source>
@ -1652,6 +1602,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2089,6 +2043,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Neteja</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2233,11 +2203,11 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Key</source>
<translation type="unfinished"/>
<translation>Clau</translation>
</message>
<message>
<source>Value</source>
<translation type="unfinished"/>
<translation>Valor</translation>
</message>
</context>
<context>
@ -2555,14 +2525,6 @@ This may cause the affected plugins to malfunction.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3155,6 +3117,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3640,7 +3618,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Advanced Settings</source>
<translation type="unfinished"/>
<translation>Configuració avançada</translation>
</message>
<message>
<source>Simple Settings</source>
@ -3651,7 +3629,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
<name>NewDatabaseWizardPageEncryption</name>
<message>
<source>Encryption Settings</source>
<translation type="unfinished"/>
<translation>Opcions de xifrat</translation>
</message>
<message>
<source>Here you can adjust the database encryption settings. Don&apos;t worry, you can change them later in the database settings.</source>
@ -3797,10 +3775,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4135,7 +4109,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation>Error desconegut</translation>
</message>
<message>
<source>Add a new entry to a database.</source>
@ -4827,6 +4801,10 @@ Available commands:
<source>Database password: </source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5048,7 +5026,7 @@ Available commands:
</message>
<message>
<source>Path</source>
<translation type="unfinished"/>
<translation>Camí</translation>
</message>
<message>
<source>Status</source>
@ -5100,8 +5078,7 @@ Available commands:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5119,10 +5096,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5199,14 +5172,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5231,6 +5196,34 @@ Available commands:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Zkopírovat do schránky</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revize: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribuce: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Knihovny:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operační systém: %1
Architektura procesoru: %2
Jádro systému: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Zapnutá rozšíření:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Správci projektu:</translation>
@ -69,52 +45,6 @@ Jádro systému: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Tým KeePassXC děkuje zvláště vývojáři debfx za vytvoření původního KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Verze %1
</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Typ sestavení: %1
</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Automatické vyplňování</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Napojení webového prohlížeče</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Žádné</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (podepsané a nepodepsané sdílení)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (pouze podepsané sdílení)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (pouze nepodepsané sdílení)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -658,14 +588,6 @@ Vyberte databázi, do které chcete přihlašovací údaje uložit.</translation
<source>Select custom proxy location</source>
<translation>Vybrat uživatelem určené umístění zprostředkovávající aplikace</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Je nám líto, ale KeePassXC-Browser v tuto chvíli není ve snap vydáních podporován.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Aby fungovalo napojení na prohlížeč, je třeba KeePassXC. &lt;br /&gt; Stáhnete ho pro %1 a %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -687,6 +609,18 @@ Vyberte databázi, do které chcete přihlašovací údaje uložit.</translation
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Neptat se na oprávnění pro HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -761,12 +695,20 @@ Přesunuto %2 klíčů do uživatelsky určených dat.</translation>
<translation>KeePassXC: zjištěna nastavení starého napojení na webový prohlížeč</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Byla zjištěna nastavení starého napojení na prohlížeč.
Chcete povýšit nastavení na nejnovější standard?
Toto je nezbytné pro zachování kompatibility se zásuvným modulem pro prohlížeč.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -928,6 +870,10 @@ Toto je nezbytné pro zachování kompatibility se zásuvným modulem pro prohl
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Do souboru nelze zapisovat, protože je otevřen v režimu pouze pro čtení.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1682,6 +1628,10 @@ Vypnout bezpečné ukládání a zkusit to znovu?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Databáze nebyla operací slučování upravena.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2119,6 +2069,22 @@ Vypnout bezpečné ukládání a zkusit to znovu?</translation>
<source>Select import/export file</source>
<translation>Vybrat importní/exportní soubor</translation>
</message>
<message>
<source>Clear</source>
<translation>Vyčistit</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2594,14 +2560,6 @@ Dotčený zásuvný modul to může rozbít.</translation>
<translation>[prázdné]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3196,6 +3154,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation>Synchronizovat s</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3845,10 +3819,6 @@ Očekávejte chyby a drobné problémy, tato verze není určena pro produkční
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Heslo je hlavní metodou zabezpečení databáze.&lt;/p&gt;&lt;p&gt;Dobrá hesla jsou dlouhá a nepoužívaná stejná na více místech. KeePassXC ho pro vás může vytvořit.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Heslo nemůže zůstat nevyplněné.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Zadání hesla se neshodují.</translation>
@ -4884,6 +4854,10 @@ Příkazy k dispozici:
<source>Database password: </source>
<translation>Heslo databáze:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5157,9 +5131,8 @@ Příkazy k dispozici:
<translation>Exportovaný certifikát se liší od toho, který je používán. Chcete exportovat stávající certifikát?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5176,10 +5149,6 @@ Příkazy k dispozici:
<source>Import from container with certificate</source>
<translation>Importovat z kontejneru s certifikátem</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Chcete věřit %1 s otiskem %2 z %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Tentokrát ne</translation>
@ -5256,14 +5225,6 @@ Příkazy k dispozici:
<source>Could not write export container (%1)</source>
<translation>Nedaří se zapsat exportní kontejner (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Nedaří se zapouzdřit podpis (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Nedaří se zapouzdřit databázi (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Přepsání nepodepsaného kontejneru sdílení není podporováno exportu zabráněno</translation>
@ -5288,6 +5249,34 @@ Příkazy k dispozici:
<source>Export to %1</source>
<translation>Exportovat do %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Věříte %1 s otiskem %2 od %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopier til udklipsholder</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revision: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribution: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Biblioteker:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operativsystem: %1
CPU-arkitektur: %2
Kerne: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Aktiverede udvidelser:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projektet vedligeholdes af:</translation>
@ -69,50 +45,6 @@ Kerne: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Særlig tak fra KeePassXC holdet går til debfx for at udvikle den oprindelige KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Build Type: %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Auto-Type</source>
<translation>Auto-Indsæt</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Browser-integration</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH Agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation type="unfinished"/>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Vælg en brugerdefineret proxy lokation</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>KeePassXC-Browser er desværre ikke understøttet for Snap udgivelser endnu.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation type="unfinished"/>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -757,9 +693,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -921,6 +867,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1662,6 +1612,10 @@ Så sikre gem fra og prøv igen?</translation>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2099,6 +2053,22 @@ Så sikre gem fra og prøv igen?</translation>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Ryd</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2570,14 +2540,6 @@ Dette kan få det påvirkede plugin til at svigte.</translation>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3170,6 +3132,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3814,10 +3792,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4850,6 +4824,10 @@ Tilgængelige kommandoer:
<source>Database password: </source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5123,8 +5101,7 @@ Tilgængelige kommandoer:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5142,10 +5119,6 @@ Tilgængelige kommandoer:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5222,14 +5195,6 @@ Tilgængelige kommandoer:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5254,6 +5219,34 @@ Tilgængelige kommandoer:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -11,7 +11,7 @@
</message>
<message>
<source>Report bugs at: &lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/issues&quot; style=&quot;text-decoration: underline;&quot;&gt;https://github.com&lt;/a&gt;</source>
<translation>Melden Sie Bugs auf: &lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/issues&quot; style=&quot;text-decoration: underline;&quot;&gt;https://github.com&lt;/a&gt;</translation>
<translation>Melden Sie Fehler auf: &lt;a href=&quot;https://github.com/keepassxreboot/keepassxc/issues&quot; style=&quot;text-decoration: underline;&quot;&gt;https://github.com&lt;/a&gt;</translation>
</message>
<message>
<source>KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3.</source>
@ -31,36 +31,12 @@
</message>
<message>
<source>Include the following information whenever you report a bug:</source>
<translation>Geben Sie folgende Informationen an, wenn Sie einen Bug melden:</translation>
<translation>Geben Sie folgende Informationen an, wenn Sie einen Fehler melden:</translation>
</message>
<message>
<source>Copy to clipboard</source>
<translation>In die Zwischenablage kopieren</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revision: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribution: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotheken:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Betriebssystem: %1
CPU-Architektur: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Aktivierte Erweiterungen:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projekt-Maintainer:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Das KeePassXC-Team möchte ganz besonders debfx danken für die Entwicklung des ursprünglichen KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Build Typ: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Auto-Type</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Browser-Integration</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH-Agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Keine</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (bestätigtes und unbestätigtes Teilen)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (nur bestätigtes Teilen)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (nur unbestätigtes Teilen)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -180,7 +112,7 @@ Kernel: %3 %4</translation>
</message>
<message>
<source>Remember last databases</source>
<translation>Letzte Datenbank merken</translation>
<translation>Letzte Datenbanken merken</translation>
</message>
<message>
<source>Remember last key files and security dongles</source>
@ -389,7 +321,7 @@ Kernel: %3 %4</translation>
</message>
<message>
<source>Use DuckDuckGo as fallback for downloading website icons</source>
<translation>Verwende DuckDuckGo als Ersatz für das Herunterladen von Website-Symbole</translation>
<translation>DuckDuckGo als Ersatz für das Herunterladen von Website-Symbolen verwenden</translation>
</message>
</context>
<context>
@ -656,14 +588,6 @@ Bitte wähle die richtige Datenbank zum speichern der Anmeldedaten.</translation
<source>Select custom proxy location</source>
<translation>Benutzerdefinierten Proxy-Pfad auswählen</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Sorry, aber KeePassXC-Browser wird derzeit für Snap-Releases nicht unterstützt.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser wird für die Funktion der Browserintegration benötig. &lt;br /&gt;Lade es für %1 und %2 herunter.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Bitte wähle die richtige Datenbank zum speichern der Anmeldedaten.</translation
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Nicht nach HTTP Basic Auth fragen</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: native Browser-Integrations-Einstellungen gefunden</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Einstellungen zur veralteten Browserintegration gefunden
Sollen diese Einstellungen zur aktuellen Version migriert werden?
Das ist nötig um das Browser-Plugin kompatibel zu halten.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -925,6 +869,10 @@ Das ist nötig um das Browser-Plugin kompatibel zu halten.</translation>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Datei ist schreibgeschützt</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1145,7 +1093,7 @@ Zugriffserlaubnisse zu allen Einträgen werden gelöscht.</translation>
</message>
<message>
<source>The active database does not contain an entry with permissions.</source>
<translation>Diese Datenbank enthält keinen Eintrag mit Zugangsdaten.</translation>
<translation>Die aktive Datenbank enthält keinen Eintrag mit Zugangsdaten.</translation>
</message>
<message>
<source>Move KeePassHTTP attributes to custom data</source>
@ -1162,7 +1110,7 @@ Das ist nötig um das Browser-Plugin kompatibel zu halten.</translation>
<name>DatabaseSettingsWidgetEncryption</name>
<message>
<source>Encryption Algorithm:</source>
<translation>Verschlüsselungs-Algorithmus.</translation>
<translation>Verschlüsselungs-Algorithmus:</translation>
</message>
<message>
<source>AES: 256 Bit (default)</source>
@ -1174,7 +1122,7 @@ Das ist nötig um das Browser-Plugin kompatibel zu halten.</translation>
</message>
<message>
<source>Key Derivation Function:</source>
<translation>Schlüssel-Ableitungsfunktion</translation>
<translation>Schlüssel-Ableitungsfunktion:</translation>
</message>
<message>
<source>Transform rounds:</source>
@ -1218,7 +1166,7 @@ Das ist nötig um das Browser-Plugin kompatibel zu halten.</translation>
</message>
<message>
<source>Database format:</source>
<translation>Datenbanformat:</translation>
<translation>Datenbankformat:</translation>
</message>
<message>
<source>This is only important if you need to use your database with other programs.</source>
@ -1479,7 +1427,7 @@ Das ist definitiv ein Fehler, teile das bitte den Entwicklern mit.</translation>
</message>
<message>
<source>Select CSV file</source>
<translation>Ausgewählte CSV-Datei</translation>
<translation>CSV-Datei auswählen</translation>
</message>
<message>
<source>New Database</source>
@ -1680,6 +1628,10 @@ Sicheres Speichern deaktivieren und erneut versuchen?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Datenbank wurde nicht zusammengeführt</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -1729,7 +1681,7 @@ Sicheres Speichern deaktivieren und erneut versuchen?</translation>
</message>
<message>
<source>Failed to open private key</source>
<translation>Privatschlüsel konnte nicht geöffnet werden</translation>
<translation>Privatschlüssel konnte nicht geöffnet werden</translation>
</message>
<message>
<source>Entry history</source>
@ -2117,6 +2069,22 @@ Sicheres Speichern deaktivieren und erneut versuchen?</translation>
<source>Select import/export file</source>
<translation>Wähle Datei für Import/Export</translation>
</message>
<message>
<source>Clear</source>
<translation>Löschen</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2197,7 +2165,7 @@ Sicheres Speichern deaktivieren und erneut versuchen?</translation>
</message>
<message>
<source>Hint: You can enable DuckDuckGo as a fallback under Tools&gt;Settings&gt;Security</source>
<translation>Tipp: Sie können DuckDuckgo als Ausweichelösung unter Werkzeuge&gt;Einstellungen&gt;Sicherheit festlegen</translation>
<translation>Tipp: Sie können DuckDuckGo als Ersatz unter Werkzeuge&gt;Einstellungen&gt;Sicherheit aktivieren</translation>
</message>
<message>
<source>Select Image(s)</source>
@ -2221,7 +2189,7 @@ Sicheres Speichern deaktivieren und erneut versuchen?</translation>
</message>
<message numerus="yes">
<source>This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it?</source>
<translation><numerusform>Dieses Symbol wird von %n Eintrag/Einträgen benutzt und wird mit dem Standardsymbol ersetzt. Bist du sicher, dass es gelöscht werden soll?</numerusform><numerusform>Dieses Symbol wird von %n Eintrag/Einträgen benutzt und wird mit dem Standardsymbol ersetzt. Bist du sicher, dass es gelöscht werden soll?</numerusform></translation>
<translation><numerusform>Dieses Symbol wird von %n Eintrag benutzt und wird mit dem Standardsymbol ersetzt. Sind Sie sicher, dass es gelöscht werden soll?</numerusform><numerusform>Dieses Symbol wird von %n Einträgen benutzt und wird mit dem Standardsymbol ersetzt. Sind Sie sicher, dass es gelöscht werden soll?</numerusform></translation>
</message>
</context>
<context>
@ -2315,7 +2283,7 @@ Dies kann dazu führen, dass die jeweiligen Plugins nicht mehr richtig funktioni
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n attachment(s)?</source>
<translation><numerusform>Sind Sie sicher, dass sie einen Anhang löschen möchten?</numerusform><numerusform>Sind Sie sicher, dass sie %n Anhänge löschen möchten?</numerusform></translation>
<translation><numerusform>Sind Sie sicher, dass Sie einen Anhang löschen möchten?</numerusform><numerusform>Sind Sie sicher, dass Sie %n Anhänge löschen möchten?</numerusform></translation>
</message>
<message>
<source>Save attachments</source>
@ -2350,7 +2318,7 @@ Dies kann dazu führen, dass die jeweiligen Plugins nicht mehr richtig funktioni
<message>
<source>Unable to open attachments:
%1</source>
<translation>Öffnen des Anhangs nicht möglich:
<translation>Öffnen der Anhänge nicht möglich:
%1</translation>
</message>
<message>
@ -2590,14 +2558,6 @@ Dies kann dazu führen, dass die jeweiligen Plugins nicht mehr richtig funktioni
<translation>[leer]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3192,6 +3152,22 @@ Zeile %2, Spalte %3</translation>
<source>Synchronize with</source>
<translation>Synchronisieren mit</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3532,7 +3508,7 @@ Wir empfehlen dir die Verwendung des auf unserer Downloadseite verfügbaren AppI
</message>
<message>
<source>&amp;Database settings...</source>
<translation>&amp;Datenbankeinstellungen</translation>
<translation>&amp;Datenbankeinstellungen...</translation>
</message>
<message>
<source>Copy &amp;password</source>
@ -3617,7 +3593,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Adding backup for older target %1 [%2]</source>
<translation>Backup für alten Eintrag %1 hinzugefügt [%2]</translation>
<translation>Backup für älteres Ziel %1 hinzugefügt [%2]</translation>
</message>
<message>
<source>Adding backup for older source %1 [%2]</source>
@ -3744,7 +3720,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Key file magic header id invalid</source>
<translation>Magic-Header-ID der Schlüsseldate ungültig</translation>
<translation>Magic-Header-ID der Schlüsseldatei ungültig</translation>
</message>
<message>
<source>Found zero keys</source>
@ -3756,7 +3732,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Corrupted key file, reading private key failed</source>
<translation>Korrupte Schlüsseldatei, lesen des Privatschlüssels fehlgeschlagen</translation>
<translation>Korrupte Schlüsseldatei, Lesen des Privatschlüssels fehlgeschlagen</translation>
</message>
<message>
<source>No private key payload to decrypt</source>
@ -3839,11 +3815,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>1</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Passwort kann nicht leer sein.</translation>
<translation>&lt;p&gt;Ein Passwort ist die primäre Methode, Ihre Datenbank abzusichern.&lt;/p&gt;&lt;p&gt;Gute Passwörter sind lang und einzigartig. KeepassXC kann eins für Sie generieren.&lt;/p&gt;</translation>
</message>
<message>
<source>Passwords do not match.</source>
@ -3943,7 +3915,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Password Quality: %1</source>
<translation>Passwort Qualität: %1</translation>
<translation>Passwort-Qualität: %1</translation>
</message>
<message>
<source>Poor</source>
@ -4215,7 +4187,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Prompt for the entry&apos;s password.</source>
<translation>Nach dem Passwort des Eintrags fragen</translation>
<translation>Nach dem Passwort des Eintrags fragen.</translation>
</message>
<message>
<source>Generate a password for the entry.</source>
@ -4260,11 +4232,11 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins
</message>
<message>
<source>Path of the entry to edit.</source>
<translation>Pfad des zu bearbeitenden Eintrags</translation>
<translation>Pfad des zu bearbeitenden Eintrags.</translation>
</message>
<message>
<source>Estimate the entropy of a password.</source>
<translation>Entropy des Passworts abschätzen</translation>
<translation>Entropie des Passworts abschätzen.</translation>
</message>
<message>
<source>Password for which to estimate the entropy.</source>
@ -4445,7 +4417,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>Invalid value for password length %1.</source>
<translation>Passwortlänge ungültig %1</translation>
<translation>Ungültiger Wert für Passwortlänge %1.</translation>
</message>
<message>
<source>Could not create entry with path %1.</source>
@ -4506,7 +4478,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>Invalid value for password length: %1</source>
<translation>Passwortlänge ungültig %1</translation>
<translation>Ungültiger Wert für Passwortlänge: %1</translation>
</message>
<message>
<source>Could not find entry with path %1.</source>
@ -4724,7 +4696,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>Show the entry&apos;s current TOTP.</source>
<translation>Zeige TOTP</translation>
<translation>Aktuelles TOTP des Eintrags zeigen.</translation>
</message>
<message>
<source>ERROR: unknown attribute %1.</source>
@ -4802,7 +4774,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>No key is set. Aborting database creation.</source>
<translation>Kein Schlüssel gewählt. Datenbankerstellung wird abgebrochen</translation>
<translation>Kein Schlüssel gewählt. Datenbankerstellung wird abgebrochen.</translation>
</message>
<message>
<source>Failed to save the database: %1.</source>
@ -4814,7 +4786,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>Insert password to encrypt database (Press enter to leave blank): </source>
<translation>Passwort zur Datenbankverschlüsselung eingeben (Enter drücken um es leer zu lassen)</translation>
<translation>Passwort zur Datenbankverschlüsselung eingeben (Enter drücken, um es leer zu lassen):</translation>
</message>
<message>
<source>Creating KeyFile %1 failed: %2</source>
@ -4880,6 +4852,10 @@ Verfügbare Kommandos:
<source>Database password: </source>
<translation>Datenbankpasswort:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5153,9 +5129,8 @@ Verfügbare Kommandos:
<translation>Das exportierte Zertifikat ist nicht das selbe wie das benutzte. Soll das aktuelle Zertifikat exportiert werden?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5172,10 +5147,6 @@ Verfügbare Kommandos:
<source>Import from container with certificate</source>
<translation>Von Container mit Zertifikat importieren</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Soll %1 mit dem Fingerabdruck %2 von %3 vertraut werden?</translation>
</message>
<message>
<source>Not this time</source>
<translation>Nicht diesmal</translation>
@ -5252,14 +5223,6 @@ Verfügbare Kommandos:
<source>Could not write export container (%1)</source>
<translation>Export-Container (%1) kann nicht gespeichert werden</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Unterschrift kann nicht eingebettet werden (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Datenbank kann nicht eingebettet werden (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Überschreiben von nicht unterzeichneten geteilten Containern nicht unterstützt. Export verhindert.</translation>
@ -5284,6 +5247,34 @@ Verfügbare Kommandos:
<source>Export to %1</source>
<translation>Export nach %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Möchten Sie %1 mit dem Fingerabdruck %2 von %3 vertrauen? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5412,7 +5403,7 @@ Verfügbare Kommandos:
</message>
<message>
<source>KeePassXC %1 is now available you have %2.</source>
<translation>Version %1 ist verfügbar, aktuell: %2.</translation>
<translation>KeepassXC %1 ist jetzt verfügbar Sie haben %2.</translation>
</message>
<message>
<source>Download it at keepassxc.org</source>

View File

@ -590,14 +590,6 @@ Please select the correct database for saving credentials.</translation>
<source>Select custom proxy location</source>
<translation>Select custom proxy location</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -619,6 +611,18 @@ Please select the correct database for saving credentials.</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Do not ask permission for HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BrowserService</name>
@ -696,12 +700,20 @@ Moved %2 keys to custom data.</translation>
<translation>KeePassXC: Legacy browser integration settings detected</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -875,6 +887,10 @@ This is necessary to maintain compatibility with the browser plugin.</translatio
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>File cannot be written as it is opened in read-only mode.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1663,6 +1679,10 @@ Disable safe saves and try again?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Database was not modified by merge operation.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2109,6 +2129,22 @@ Disable safe saves and try again?</translation>
<source>Select import/export file</source>
<translation>Select import/export file</translation>
</message>
<message>
<source>Clear</source>
<translation type="unfinished">Clear</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2600,14 +2636,6 @@ This may cause the affected plugins to malfunction.</translation>
<translation>[empty]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3202,6 +3230,22 @@ Line %2, column %3</translation>
<source>Synchronize with</source>
<translation>Synchronize with</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3852,10 +3896,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Password cannot be empty.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Passwords do not match.</translation>
@ -4647,6 +4687,26 @@ Available commands:
<source>Failed to load key file %1: %2</source>
<translation>Failed to load key file %1: %2</translation>
</message>
<message>
<source>File %1 does not exist.</source>
<translation>File %1 does not exist.</translation>
</message>
<message>
<source>Unable to open file %1.</source>
<translation>Unable to open file %1.</translation>
</message>
<message>
<source>Error while reading the database:
%1</source>
<translation>Error while reading the database:
%1</translation>
</message>
<message>
<source>Error while parsing the database:
%1</source>
<translation>Error while parsing the database:
%1</translation>
</message>
<message>
<source>Length of the generated password</source>
<translation>Length of the generated password</translation>
@ -4876,7 +4936,7 @@ Available commands:
<translation>Database password: </translation>
</message>
<message>
<source>Unable to extract database %1</source>
<source>Cannot create new group</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -5152,9 +5212,8 @@ Available commands:
<translation>The exported certificate is not the same as the one in use. Do you want to export the current certificate?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -5247,14 +5306,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation>Could not write export container (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Could not embed signature (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Could not embed database (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Overwriting unsigned share container is not supported - export prevented</translation>
@ -5283,6 +5334,30 @@ Available commands:
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished">Do you want to trust %1 with the fingerprint of %2 from %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TotpDialog</name>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.1">
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en_US" version="2.1">
<context>
<name>AboutDialog</name>
<message>
@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copy to clipboard</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revision: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribution: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Libraries:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Enabled extensions:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Project Maintainers:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Build Type: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Auto-Type</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Browser Integration</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH Agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>None</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (signed and unsigned sharing)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (only signed sharing)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (only unsigned sharing)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Please select the correct database for saving credentials.</translation>
<source>Select custom proxy location</source>
<translation>Select custom proxy location</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Please select the correct database for saving credentials.</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Do not ask permission for HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</translation>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation>Please see special instructions for browser extension use below</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</translation>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,24 @@ Moved %2 keys to custom data.</translation>
<translation>KeePassXC: Legacy browser integration settings detected</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</translation>
<source>KeePassXC: Create a new group</source>
<translation>KeePassXC: Create a new group</translation>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</translation>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</translation>
</message>
</context>
<context>
@ -926,6 +874,10 @@ This is necessary to maintain compatibility with the browser plugin.</translatio
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>File cannot be written as it is opened in read-only mode.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation>Key not transformed. This is a bug, please report it to the developers!</translation>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1289,7 +1241,7 @@ If you keep this number, your database may be too easy to crack!</translation>
<message numerus="yes">
<source> thread(s)</source>
<comment>Threads for parallel execution (KDF settings)</comment>
<translation><numerusform> thread(s)</numerusform><numerusform> thread(s)</numerusform></translation>
<translation><numerusform> thread</numerusform><numerusform> threads</numerusform></translation>
</message>
<message numerus="yes">
<source>%1 ms</source>
@ -1519,7 +1471,7 @@ This is definitely a bug, please report it to the developers.</translation>
</message>
<message numerus="yes">
<source>Do you really want to move %n entry(s) to the recycle bin?</source>
<translation><numerusform>Do you really want to move %n entry(s) to the recycle bin?</numerusform><numerusform>Do you really want to move %n entry(s) to the recycle bin?</numerusform></translation>
<translation><numerusform>Do you really want to move %n entry to the recycle bin?</numerusform><numerusform>Do you really want to move %n entries to the recycle bin?</numerusform></translation>
</message>
<message>
<source>Execute command?</source>
@ -1581,15 +1533,15 @@ Do you want to merge your changes?</translation>
</message>
<message numerus="yes">
<source>Do you really want to delete %n entry(s) for good?</source>
<translation><numerusform>Do you really want to delete %n entry(s) for good?</numerusform><numerusform>Do you really want to delete %n entry(s) for good?</numerusform></translation>
<translation><numerusform>Do you really want to delete %n entry for good?</numerusform><numerusform>Do you really want to delete %n entries for good?</numerusform></translation>
</message>
<message numerus="yes">
<source>Delete entry(s)?</source>
<translation><numerusform>Delete entry(s)?</numerusform><numerusform>Delete entry(s)?</numerusform></translation>
<translation><numerusform>Delete entry?</numerusform><numerusform>Delete entries?</numerusform></translation>
</message>
<message numerus="yes">
<source>Move entry(s) to recycle bin?</source>
<translation><numerusform>Move entry(s) to recycle bin?</numerusform><numerusform>Move entry(s) to recycle bin?</numerusform></translation>
<translation><numerusform>Move entry to recycle bin?</numerusform><numerusform>Move entries to recycle bin?</numerusform></translation>
</message>
<message>
<source>File opened in read only mode.</source>
@ -1659,7 +1611,7 @@ Disable safe saves and try again?</translation>
</message>
<message numerus="yes">
<source>Entry &quot;%1&quot; has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway?</source>
<translation><numerusform>Entry &quot;%1&quot; has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway?</numerusform><numerusform>Entry &quot;%1&quot; has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway?</numerusform></translation>
<translation><numerusform>Entry &quot;%1&quot; has %2 reference. Do you want to overwrite references with values, skip this entry, or delete anyway?</numerusform><numerusform>Entry &quot;%1&quot; has %2 references. Do you want to overwrite references with values, skip this entry, or delete anyway?</numerusform></translation>
</message>
<message>
<source>Delete group</source>
@ -1681,6 +1633,10 @@ Disable safe saves and try again?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Database was not modified by merge operation.</translation>
</message>
<message>
<source>Shared group...</source>
<translation>Shared group...</translation>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -1762,11 +1718,11 @@ Disable safe saves and try again?</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation><numerusform>%n week(s)</numerusform><numerusform>%n week(s)</numerusform></translation>
<translation><numerusform>%n week</numerusform><numerusform>%n weeks</numerusform></translation>
</message>
<message numerus="yes">
<source>%n month(s)</source>
<translation><numerusform>%n month(s)</numerusform><numerusform>%n month(s)</numerusform></translation>
<translation><numerusform>%n month</numerusform><numerusform>%n months</numerusform></translation>
</message>
<message>
<source>Apply generated password?</source>
@ -1794,7 +1750,7 @@ Disable safe saves and try again?</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation><numerusform>%n year(s)</numerusform><numerusform>%n year(s)</numerusform></translation>
<translation><numerusform>%n year</numerusform><numerusform>%n years</numerusform></translation>
</message>
<message>
<source>Confirm Removal</source>
@ -2118,6 +2074,22 @@ Disable safe saves and try again?</translation>
<source>Select import/export file</source>
<translation>Select import/export file</translation>
</message>
<message>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation>The export container %1 is already referenced.</translation>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation>The import container %1 is already imported.</translation>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation>The container %1 imported and export by different groups.</translation>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2206,7 +2178,7 @@ Disable safe saves and try again?</translation>
</message>
<message numerus="yes">
<source>Successfully loaded %1 of %n icon(s)</source>
<translation><numerusform>Successfully loaded %1 of %n icon(s)</numerusform><numerusform>Successfully loaded %1 of %n icon(s)</numerusform></translation>
<translation><numerusform>Successfully loaded %1 of %n icon</numerusform><numerusform>Successfully loaded %1 of %n icons</numerusform></translation>
</message>
<message>
<source>No icons were loaded</source>
@ -2214,15 +2186,15 @@ Disable safe saves and try again?</translation>
</message>
<message numerus="yes">
<source>%n icon(s) already exist in the database</source>
<translation><numerusform>%n icon(s) already exist in the database</numerusform><numerusform>%n icon(s) already exist in the database</numerusform></translation>
<translation><numerusform>%n icon already exist in the database</numerusform><numerusform>%n icons already exist in the database</numerusform></translation>
</message>
<message numerus="yes">
<source>The following icon(s) failed:</source>
<translation><numerusform>The following icon(s) failed:</numerusform><numerusform>The following icon(s) failed:</numerusform></translation>
<translation><numerusform>The following icon failed:</numerusform><numerusform>The following icons failed:</numerusform></translation>
</message>
<message numerus="yes">
<source>This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it?</source>
<translation><numerusform>This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it?</numerusform><numerusform>This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it?</numerusform></translation>
<translation><numerusform>This icon is used by %n entry, and will be replaced by the default icon. Are you sure you want to delete it?</numerusform><numerusform>This icon is used by %n entries, and will be replaced by the default icon. Are you sure you want to delete it?</numerusform></translation>
</message>
</context>
<context>
@ -2316,7 +2288,7 @@ This may cause the affected plugins to malfunction.</translation>
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n attachment(s)?</source>
<translation><numerusform>Are you sure you want to remove %n attachment(s)?</numerusform><numerusform>Are you sure you want to remove %n attachment(s)?</numerusform></translation>
<translation><numerusform>Are you sure you want to remove %n attachment?</numerusform><numerusform>Are you sure you want to remove %n attachments?</numerusform></translation>
</message>
<message>
<source>Save attachments</source>
@ -2361,8 +2333,8 @@ This may cause the affected plugins to malfunction.</translation>
<message numerus="yes">
<source>Unable to open file(s):
%1</source>
<translation><numerusform>Unable to open file(s):
%1</numerusform><numerusform>Unable to open file(s):
<translation><numerusform>Unable to open file:
%1</numerusform><numerusform>Unable to open files:
%1</numerusform></translation>
</message>
</context>
@ -2591,14 +2563,6 @@ This may cause the affected plugins to malfunction.</translation>
<translation>[empty]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3193,6 +3157,22 @@ Line %2, column %3</translation>
<source>Synchronize with</source>
<translation>Synchronize with</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation>Disabled share %1</translation>
</message>
<message>
<source>Import from share %1</source>
<translation>Import from share %1</translation>
</message>
<message>
<source>Export to share %1</source>
<translation>Export to share %1</translation>
</message>
<message>
<source>Synchronize with share %1</source>
<translation>Synchronize with share %1</translation>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3843,10 +3823,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Password cannot be empty.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Passwords do not match.</translation>
@ -4492,7 +4468,7 @@ Available commands:
</message>
<message numerus="yes">
<source>Clearing the clipboard in %1 second(s)...</source>
<translation><numerusform>Clearing the clipboard in %1 second(s)...</numerusform><numerusform>Clearing the clipboard in %1 second(s)...</numerusform></translation>
<translation><numerusform>Clearing the clipboard in %1 second...</numerusform><numerusform>Clearing the clipboard in %1 seconds...</numerusform></translation>
</message>
<message>
<source>Clipboard cleared!</source>
@ -4883,6 +4859,10 @@ Available commands:
<source>Database password: </source>
<translation>Database password: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation>Cannot create new group</translation>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5156,9 +5136,8 @@ Available commands:
<translation>The exported certificate is not the same as the one in use. Do you want to export the current certificate?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation>Signer:</translation>
</message>
</context>
<context>
@ -5175,10 +5154,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation>Import from container with certificate</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Do you want to trust %1 with the fingerprint of %2 from %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Not this time</translation>
@ -5255,14 +5230,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation>Could not write export container (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Could not embed signature (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Could not embed database (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Overwriting unsigned share container is not supported - export prevented</translation>
@ -5287,6 +5254,34 @@ Available commands:
<source>Export to %1</source>
<translation>Export to %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Do you want to trust %1 with the fingerprint of %2 from %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation>Multiple import source path to %1 in %2</translation>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation>Conflicting export target path %1 in %2</translation>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation>Could not embed signature: Could not open file to write (%1)</translation>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation>Could not embed signature: Could not write file (%1)</translation>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation>Could not embed database: Could not open file to write (%1)</translation>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation>Could not embed database: Could not write file (%1)</translation>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5304,7 +5299,7 @@ Available commands:
</message>
<message numerus="yes">
<source>Expires in &lt;b&gt;%n&lt;/b&gt; second(s)</source>
<translation><numerusform>Expires in &lt;b&gt;%n&lt;/b&gt; second(s)</numerusform><numerusform>Expires in &lt;b&gt;%n&lt;/b&gt; second(s)</numerusform></translation>
<translation><numerusform>Expires in &lt;b&gt;%n&lt;/b&gt; second</numerusform><numerusform>Expires in &lt;b&gt;%n&lt;/b&gt; seconds</numerusform></translation>
</message>
</context>
<context>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copiar al portapapeles</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisión: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribución: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotecas:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operativo: %1
Arquitectura de CPU: %2
Núcleo: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensiones habilitadas:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Mantenedores del proyecto:</translation>
@ -69,50 +45,6 @@ Núcleo: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>El equipo de KeePassXC quiere agradecer de manera especial el trabajo de debfx por la creación de KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versión %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipo de Compilación: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Auto-Escritura</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integración con Navegadores</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agente de SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Ninguno</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (compartir firmado y sin firmar)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (compartir solo firmado)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (compartir solo sin firmar)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Por favor, seleccione la base de datos correcta para guardar las credenciales.</
<source>Select custom proxy location</source>
<translation>Elegir una ubicación de proxy personalizada</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Lo sentimos, pero KeePassXC-Browser no está soportado en las versiones Snap por el momento.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser es necesario para que la integración con el navegador funcione. Descárguelo para %1 y %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Navegador &amp;Tor</translation>
@ -685,6 +609,18 @@ Por favor, seleccione la base de datos correcta para guardar las credenciales.</
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>No pedir permiso para Autenticación HTTP &amp;Básica</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -760,12 +696,20 @@ Movió %2 claves a datos personalizados.</translation>
<translation>KeePassXC: detectada configuración de integración del navegador heredada </translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Se han detectado configuraciones de integración del navegador heredadas.
¿Desea actualizar la configuración al último estándar?
Esto es necesario para mantener la compatibilidad con el complemento del navegador.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -927,6 +871,10 @@ Esto es necesario para mantener la compatibilidad con el complemento del navegad
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>El archivo no se puede escribir, ya que se ha abierto en modo de solo lectura.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation>La base de datos no fue modificada por la operación de unir</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2118,6 +2070,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation>Seleccione el archivo de importación/exportación</translation>
</message>
<message>
<source>Clear</source>
<translation>Limpiar</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2591,14 +2559,6 @@ Esto puede causar un mal funcionamiento de los complementos afectados.</translat
<translation>[vacío]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3193,6 +3153,22 @@ Linea %2, columna %3</translation>
<source>Synchronize with</source>
<translation>Sincronizar con</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3843,10 +3819,6 @@ Espere algunos errores y problemas menores, esta versión no está destinada par
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;La contraseña es el método principal para asegurar su base de datos.&lt;p&gt;&lt;p&gt;Las contraseñas buenas son largas y únicas. KeePassXC puede generar una para usted.&lt;p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>La contraseña no puede ser vacía.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Las contraseñas no coinciden.</translation>
@ -4883,6 +4855,10 @@ Comandos disponibles:
<source>Database password: </source>
<translation>Contraseña de la Base de Datos:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5156,9 +5132,8 @@ Comandos disponibles:
<translation>El certificado exportado no es lo mismo que el que está en uso. ¿Desea exportar el certificado actual?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5175,10 +5150,6 @@ Comandos disponibles:
<source>Import from container with certificate</source>
<translation>Importar desde contenedor con certificado</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>¿Desea confiar en %1 con la huella digital de %2 desde %3?</translation>
</message>
<message>
<source>Not this time</source>
<translation>No esta vez</translation>
@ -5255,14 +5226,6 @@ Comandos disponibles:
<source>Could not write export container (%1)</source>
<translation>No podría escribir el contenedor de exportación (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>No puede incrustar la firma (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>No se puede incrustar la base de datos (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>No se soporta la sobrescritura de contenedor compartido sin firmar - exportación prevenida</translation>
@ -5287,6 +5250,34 @@ Comandos disponibles:
<source>Export to %1</source>
<translation>Exportar a %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>¿Desea confiar a %1 con la huella digital de %2 de %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopioi leikepöydälle</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisio: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Jakelu: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Kirjastot:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Käyttöjärjestelmä: %1
Suoritinarkkitehtuuri: %2
Ydin: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Käytössä olevat laajennukset:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projektin ylläpitäjät:</translation>
@ -69,50 +45,6 @@ Ydin: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>KeePassXC-tiimi antaa erityiskiitokset KeePassX-ohjelman alkuperäiselle luojalle debfx:lle</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versio %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Ohjelmiston tyyppi</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Automaattisyöttö</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Selainintegraatio</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH-agentti</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Ei mitään</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (allekirjoitettu ja allekirjoittamaton jakaminen)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (vain allekirjoitettu jakaminen)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (vain allekirjoittamaton jakaminen)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Valitse oikea tietokanta tietueen tallentamiseksi</translation>
<source>Select custom proxy location</source>
<translation>Valitse mukautettu välitysohjelma</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Valitettavasti KeePassXC-Browser ei tällä hetkellä tue Snap-julkaisuja.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser tarvitaan selainintegraation toimimiseksi. &lt;br /&gt;Lataa se selaimille %1 ja %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor-selain</translation>
@ -685,6 +609,18 @@ Valitse oikea tietokanta tietueen tallentamiseksi</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Ä kysy lupaa HTTP-autentikointiin</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -758,12 +694,20 @@ Siirrettiin %2 avainta mukautettuihin tietoihin.</translation>
<translation>KeePassXC: Vanhoja selainintegraatioasetuksia havaittu</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Vanhoja selainintegraatioasetuksia on havaittu.
Haluatko päivittää tiedot uuteen muotoon?
Tämä on välttämätöntä selainintegraation yhteensopivuuden takaamiseksi.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -925,6 +869,10 @@ Tämä on välttämätöntä selainintegraation yhteensopivuuden takaamiseksi.</
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Tiedostoa ei voitu tallentaa, sillä se on avattu vain lukuoikeuksin.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1680,6 +1628,10 @@ Ota turvallinen tallennus pois käytöstä ja yritä uudelleen?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Tietokannan sisältö ei muuttunut yhdistämisen yhteydessä.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2117,6 +2069,22 @@ Ota turvallinen tallennus pois käytöstä ja yritä uudelleen?</translation>
<source>Select import/export file</source>
<translation>Valitse tuonti-/vientitiedosto</translation>
</message>
<message>
<source>Clear</source>
<translation>Tyhjennä</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2590,14 +2558,6 @@ Tämä voi vikaannuttaa tietoa käyttävän liitännäisen.</translation>
<translation>[tyhjä]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3192,6 +3152,22 @@ Rivi %2, sarake %3</translation>
<source>Synchronize with</source>
<translation>Synkronoi</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3841,10 +3817,6 @@ Bugeja ja ongelmia voi esiintyä. Tämä versio ei ole tarkoitettu päivittäise
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Salasana on kaikkein tärkein asia tietokannan suojauksessa.&lt;/p&gt;&lt;p&gt;Hyvät salasanat ovat pitkiä ja uniikkeja. KeePassXC voi luoda sellaisen sinulle.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Salasana ei voi olla tyhjä.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Salasanat eivät ole samoja.</translation>
@ -4881,6 +4853,10 @@ Käytettävissä olevat komennot:
<source>Database password: </source>
<translation>Tietokannan salasana:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5154,9 +5130,8 @@ Käytettävissä olevat komennot:
<translation>Viety sertifikaatti ei ole sama kuin käytössä oleva. Haluatko viedä tämän hetkisen sertifikaatin?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5173,10 +5148,6 @@ Käytettävissä olevat komennot:
<source>Import from container with certificate</source>
<translation>Tuo säiliöstä sertifikaatin kanssa</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Haluatko luottaa kohteeseen %1 sormenjäljen %2 kanssa, jonka lähde on %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Ei tällä kertaa</translation>
@ -5253,14 +5224,6 @@ Käytettävissä olevat komennot:
<source>Could not write export container (%1)</source>
<translation>Vietyä säiliötä ei voitu kirjoittaa (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Allekirjoitusta ei voitu sisällyttää (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Tietokantaa ei voitu sisällyttää (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Allekirjoittamattoman jaetun säiliön ylikirjoitus ei ole tuettu - vienti estettiin</translation>
@ -5285,6 +5248,34 @@ Käytettävissä olevat komennot:
<source>Export to %1</source>
<translation>Vie kohteeseen %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copier dans le presse-papiers</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Révision : %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribution : %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliothèques :</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Système dexploitation : %1
Architecture dUCT : %2
Noyau : %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensions activées :</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Mainteneurs du projet :</translation>
@ -69,50 +45,6 @@ Noyau : %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Léquipe de KeePassXC remercie tout particulièrement debfx pour la création du KeePassX original.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Type de Version : %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Saisie automatique</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Intégration aux navigateurs</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agent SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Aucun</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (partage signé et non signé)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (partage signé uniquement)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (partage non signé uniquement)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Veuillez sélectionner la base de donnée souhaitée pour enregistrer les identi
<source>Select custom proxy location</source>
<translation>Sélectionner un proxy personnalisé</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Nous sommes désolés, mais KeePassXC-Browser nest pas disponible via Snap pour le moment.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser est nécessaire pour que l&apos;intégration au navigateur fonctionne. &lt;br /&gt;Téléchargez-le pour %1 et%2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Navigateur Tor</translation>
@ -685,6 +609,18 @@ Veuillez sélectionner la base de donnée souhaitée pour enregistrer les identi
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Ne pas demander d&apos;autorisation pour l&apos;authentification HTTP &amp;Basic</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,9 +695,19 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC : Ancienne integration au navigateur détectée</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -924,6 +870,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Le fichier ne peut pas être enregistré car il est ouvert en lecture seule.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1676,6 +1626,10 @@ Désactiver les enregistrements sécurisés et ressayer?</translation>
<source>Database was not modified by merge operation.</source>
<translation>La base de données n&apos;a pas é modifiée par l&apos;opération de fusion.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2113,6 +2067,22 @@ Désactiver les enregistrements sécurisés et ressayer?</translation>
<source>Select import/export file</source>
<translation>Sélectionner le fichier d&apos;import/export</translation>
</message>
<message>
<source>Clear</source>
<translation>Effacer</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2585,14 +2555,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[vide]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3187,6 +3149,22 @@ Ligne %2, colonne %3</translation>
<source>Synchronize with</source>
<translation>Synchroniser avec</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3836,10 +3814,6 @@ Attendez-vous à des bogues et des problèmes mineurs. Cette version nest pas
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Le mot de passe est le moyen principal pour sécuriser votre base de données.&lt;/p&gt;&lt;p&gt;Un bon mot de passe est long et unique. KeePassXC peut en générer un pour vous.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Le mot de passe ne peut pas être vide.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Les mots de passe ne correspondent pas.</translation>
@ -4875,6 +4849,10 @@ Commandes disponibles :
<source>Database password: </source>
<translation>Mot de passe de la base de données :</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -4993,7 +4971,7 @@ Commandes disponibles :
</message>
<message>
<source>logical OR</source>
<translation type="unfinished"/>
<translation>OU logique</translation>
</message>
<message>
<source>Examples</source>
@ -5137,7 +5115,7 @@ Commandes disponibles :
</message>
<message>
<source>Select path</source>
<translation type="unfinished"/>
<translation>Sélectionner le chemin</translation>
</message>
<message>
<source>Exporting changed certificate</source>
@ -5148,8 +5126,7 @@ Commandes disponibles :
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5167,10 +5144,6 @@ Commandes disponibles :
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation>Pas cette fois</translation>
@ -5247,14 +5220,6 @@ Commandes disponibles :
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5279,6 +5244,34 @@ Commandes disponibles :
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Vágólapra másolás</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revízió: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Disztribúció: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Függvénykönyvtárak:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operációs rendszer: %1
CPU architektúra: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Engedélyezett kiterjesztések:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projektkarbantartók:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>A KeePassXC fejlesztőcsapata ezúton külön köszönetet mond debfx-nek az eredetei KeePassX létrehozásáért.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Verzió: %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Összeállítás típusa: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Automatikus beírás</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Böngészőintegráció</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH ügynök</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nincs</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (aláírt és nem aláírt megosztás)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (csak aláírt megoszás)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (csak nem aláírt megosztás)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Válassza ki a helyes adatbázist a hitelesítő adatok mentéséhez.</translati
<source>Select custom proxy location</source>
<translation>Egyedi proxyhely kijelölése</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Sajnáljuk, de a KeePassXC-Browser pillanatnyilag nem támogatja a Snap kiadásokat.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>A böngészőintegráció működéséhez a KeePassXC-böngészőre van szükség. &lt;br /&gt;Letölthető ezen böngészőkre: %1 és %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor böngésző</translation>
@ -685,6 +609,18 @@ Válassza ki a helyes adatbázist a hitelesítő adatok mentéséhez.</translati
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Ne kérjen engedélyt a HTTP &amp;Basic Auth számára</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -758,12 +694,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Örökölt böngészőintegrációs beállítások észlelve</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Örökölt böngészőintegrációs beállítások észlelve
Frissíti a beállításokat a legfrissebb szabványra?
Ez szükséges a böngészőbővítménnyel történő kompatibilitáshoz.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -925,6 +869,10 @@ Ez szükséges a böngészőbővítménnyel történő kompatibilitáshoz.</tran
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>A fájlba nem lehet írni, mert csak olvasható módban van megnyitva.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1679,6 +1627,10 @@ Letiltható a biztonságos mentés és úgy megkísérelhető a mentés?</transl
<source>Database was not modified by merge operation.</source>
<translation>Az adatbázis nem változott az összeolvasztási művelet során.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2116,6 +2068,22 @@ Letiltható a biztonságos mentés és úgy megkísérelhető a mentés?</transl
<source>Select import/export file</source>
<translation>Importálási vagy exportálási fájl kijelölése</translation>
</message>
<message>
<source>Clear</source>
<translation>Törlés</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2589,14 +2557,6 @@ Ez a kijelölt bővítmény hibás működését eredményezheti.</translation>
<translation>[üres]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3191,6 +3151,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation>Szinkronizálás ezzel</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3839,10 +3815,6 @@ Néhány hiba és kisebb nehézségek várhatóak, ezért ez a verzió nem aján
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;A jelszó az adatbázis biztonságban tartásának elsődleges módja.&lt;/p&gt;&lt;p&gt;A jó jelszavak hosszúak és egyediek. A KeePassXC elő tud állítani egyet Önnek.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>A jelszó nem lehet üres.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>A jelszavak nem egyeznek</translation>
@ -4274,11 +4246,11 @@ Néhány hiba és kisebb nehézségek várhatóak, ezért ez a verzió nem aján
</message>
<message>
<source>Extract and print the content of a database.</source>
<translation>Adatbázis tartalmának kinyerése és kiírása.</translation>
<translation>Adatbázis tartalmának kibontása és kiírása.</translation>
</message>
<message>
<source>Path of the database to extract.</source>
<translation>Kinyerendő adatbázis útvonala.</translation>
<translation>Kibontandó adatbázis útvonala.</translation>
</message>
<message>
<source>Insert password to unlock %1: </source>
@ -4636,7 +4608,7 @@ Elérhető parancsok:
</message>
<message>
<source>Unable to open file %1.</source>
<translation>A(z) %1 fájl nem nyitható meg</translation>
<translation>A(z) %1 fájl nem nyitható meg.</translation>
</message>
<message>
<source>Error while reading the database:
@ -4878,6 +4850,10 @@ Elérhető parancsok:
<source>Database password: </source>
<translation>Adatbázis jelszava</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5151,9 +5127,8 @@ Elérhető parancsok:
<translation>Az exportált tanúsítvány nem egyezik meg a jelenleg használattal. Exportálható a jelenlegi?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5170,10 +5145,6 @@ Elérhető parancsok:
<source>Import from container with certificate</source>
<translation>Importálás a tárolóból aláírással</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Megbízhatónak minősíthető a(z) %1, melynek ujjlenyomata %2 / %3?</translation>
</message>
<message>
<source>Not this time</source>
<translation>Most nem</translation>
@ -5250,14 +5221,6 @@ Elérhető parancsok:
<source>Could not write export container (%1)</source>
<translation>Nem írható az exportálási tároló (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Az aláírás nem beágyazható (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Az adatbázis nem beágyazható (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>A nem aláírt tárolók felülírása nem támogatott az exportálás megakadályozva</translation>
@ -5282,6 +5245,34 @@ Elérhető parancsok:
<source>Export to %1</source>
<translation>Exportálás: %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Megbízhatónak minősíthető a(z) %1, melynek ujjlenyomata %2 / %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Salin ke papan klip</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisi: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribusi: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Pustaka:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistem operasi: %1
Arsitektur CPU: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Ekstensi aktif:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Pengelola Proyek:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Terima kasih dari tim KeePassXC kepada debfx yang telah membuat KeepassX original.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versi %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipe Build: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Ketik-Otomatis</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integrasi Peramban</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH Agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nihil</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Pilih lokasi proksi khusus</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Maaf, KeePassXC-Browser saat ini tidak mendukung rilisan Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Membutuhkan KeePassXC-Browser agar integrasi peramban bisa bekerja. &lt;br /&gt;Unduh di %1 dan %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Peramban &amp;Tor</translation>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -757,9 +693,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -921,6 +867,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1663,6 +1613,10 @@ Nonaktifkan penyimpanan aman dan coba lagi?</translation>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2100,6 +2054,22 @@ Nonaktifkan penyimpanan aman dan coba lagi?</translation>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Bersihkan</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2571,14 +2541,6 @@ Ini mungkin akan menyebabkan plugin terkait tidak berfungsi.</translation>
<translation>[kosong]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3173,6 +3135,22 @@ Baris %2, kolom %3</translation>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3818,10 +3796,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Sandi tidak boleh kosong.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Sandi tidak sama.</translation>
@ -4855,6 +4829,10 @@ Perintah yang tersedia:
<source>Database password: </source>
<translation>Sandi basis data:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5128,8 +5106,7 @@ Perintah yang tersedia:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5147,10 +5124,6 @@ Perintah yang tersedia:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5227,14 +5200,6 @@ Perintah yang tersedia:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5259,6 +5224,34 @@ Perintah yang tersedia:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copia negli appunti</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisione: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribuzione: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Librerie:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operativo: %1
Architettura CPU: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Estensioni abilitate:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Responsabili del progetto:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Uno speciale ringraziamento dal team di KeePassXC va a debfx per la creazione del KeePassX originale.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versione %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipo di compilazione: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Completamento automatico</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integrazione con i browser</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agente SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nessuno</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Selezionare una posizione personalizzata per il proxy</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Siamo spiacenti, ma KeePassXC-Browser non è supportato per i rilasci di Snap al momento.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser è necessario per far funzionare l&apos;integrazione con il browser. &lt; br / &gt; scaricarlo per %1 e %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -756,9 +692,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -920,6 +866,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Il file non può essere scritto perché aperto in modalità di sola lettura.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1664,6 +1614,10 @@ Disabilitare i salvataggi sicuri e riprovare?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Il database non è stato modificato dall&apos;operazione di unione.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2101,6 +2055,22 @@ Disabilitare i salvataggi sicuri e riprovare?</translation>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Azzera</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2574,14 +2544,6 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati.</translation>
<translation>[vuoto]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3176,6 +3138,22 @@ Riga %2, colonna %3</translation>
<source>Synchronize with</source>
<translation>Sincronizza con</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3822,10 +3800,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>La password non può essere vuota.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Le password non corrispondono.</translation>
@ -4859,6 +4833,10 @@ Comandi disponibili:
<source>Database password: </source>
<translation>Password del database: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5132,8 +5110,7 @@ Comandi disponibili:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5151,10 +5128,6 @@ Comandi disponibili:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5231,14 +5204,6 @@ Comandi disponibili:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5263,6 +5228,34 @@ Comandi disponibili:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation></translation>
</message>
<message>
<source>Revision: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>: %1
CPU : %2
: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>:</translation>
@ -69,50 +45,6 @@ CPU アーキテクチャー: %2
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>KeePassXC KeePassX debfx </translation>
</message>
<message>
<source>Version %1</source>
<translation> %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation></translation>
</message>
<message>
<source>Browser Integration</source>
<translation></translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH </translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation></translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare ()</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare ()</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare ()</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation></translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation> KeePassXC-Browser Snap </translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation> KeePassXC-Browser &lt;br /&gt;KeePassXC-Browser %1 %2 2</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Tor Browser(&amp;T)</translation>
@ -685,6 +609,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>HTTP (&amp;B)</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: レガシーなブラウザー統合の設定が検出されました</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>
</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation></translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation></translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2118,6 +2070,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation>/</translation>
</message>
<message>
<source>Clear</source>
<translation></translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2590,14 +2558,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3192,6 +3152,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation></translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3842,10 +3818,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;/p&gt;&lt;p&gt;KeePassXC &lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation></translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation></translation>
@ -4882,6 +4854,10 @@ Available commands:
<source>Database password: </source>
<translation>: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5155,9 +5131,8 @@ Available commands:
<translation>使</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5174,10 +5149,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation></translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>%3 %1 ( %2) </translation>
</message>
<message>
<source>Not this time</source>
<translation></translation>
@ -5254,14 +5225,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation> - </translation>
@ -5286,6 +5249,34 @@ Available commands:
<source>Export to %1</source>
<translation>%1 </translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>%3 %1 ( %2) {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation> </translation>
</message>
<message>
<source>Revision: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation> : %1
CPU : %2
: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation> :</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation> :</translation>
@ -69,50 +45,6 @@ CPU 아키텍처: %2
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Version %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Build Type: %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Auto-Type</source>
<translation> </translation>
</message>
<message>
<source>Browser Integration</source>
<translation> </translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH </translation>
</message>
<message>
<source>YubiKey</source>
<translation type="unfinished"/>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation> </translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation type="unfinished"/>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -757,9 +693,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -921,6 +867,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1663,6 +1613,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2100,6 +2054,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation></translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2570,14 +2540,6 @@ This may cause the affected plugins to malfunction.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3170,6 +3132,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3814,10 +3792,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4850,6 +4824,10 @@ Available commands:
<source>Database password: </source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5123,8 +5101,7 @@ Available commands:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5142,10 +5119,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5222,14 +5195,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5254,6 +5219,34 @@ Available commands:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopijuoti į iškarpinę</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Poversijis: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Platinimas: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotekos:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operacinė sistema: %1
Procesoriaus architektūra: %2
Branduolys: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Įjungti plėtiniai:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projektą prižiūri:</translation>
@ -69,50 +45,6 @@ Branduolys: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Ypatinga padėka nuo KeePassXC komandos yra skiriama debfx pradinės KeePassX programos sukūrimą.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versija %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Darinio tipas: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Automatinis rinkimas</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Naršyklės integracija</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH agentas</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nėra</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Prisijungimo duomenų įrašymui, pasirinkite teisingą duomenų bazę.</transla
<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>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Prisijungimo duomenų įrašymui, pasirinkite teisingą duomenų bazę.</transla
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -756,9 +692,19 @@ Perkelta %2 raktų į tinkintus duomenis.</translation>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -920,6 +866,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Failas negali būti įrašytas, nes jis atvertas tik skaitymo veiksenoje.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1658,6 +1608,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2095,6 +2049,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Išvalyti</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2565,14 +2535,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[tuščia]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3167,6 +3129,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3809,10 +3787,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Slaptažodis negali būti tuščias.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Slaptažodžiai nesutampa.</translation>
@ -4843,6 +4817,10 @@ Prieinamos komandos:
<source>Database password: </source>
<translation>Duomenų bazės slaptažodis: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5116,9 +5094,8 @@ Prieinamos komandos:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5135,10 +5112,6 @@ Prieinamos komandos:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation>Ne šį kartą</translation>
@ -5215,14 +5188,6 @@ Prieinamos komandos:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5247,6 +5212,34 @@ Prieinamos komandos:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopier til utklippstavle</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisjon: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribusjon: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Biblioteker:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operativsystem: %1
CPU arkitektur: %2
Kjerne: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Aktive utvidelser:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Prosjektets vedlikeholdere:</translation>
@ -69,50 +45,6 @@ Kjerne: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>En spesiell takk fra KeePassXC-laget går til debfx, utvikler av programmet KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versjon %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Byggetype: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Autoskriv</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Nettlesertillegg</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH-agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>Berørings-id</translation>
</message>
<message>
<source>None</source>
<translation>Ingen</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Oppgi en selvvalgt mellomtjerneradresse</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Nettlesertillegget er foreløpig ikke tilgjengelig for snap-utgaver.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser er nødvendig for at nettleserintegrasjonen skal fungere. &lt;br /&gt;Last den ned for %1 og %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor nettleser</translation>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Ikke spør om tillatelse til &amp;enkel HTTP autentisering</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -756,9 +692,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -920,6 +866,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1662,6 +1612,10 @@ Deaktivere sikker lagring og prøve igjen?</translation>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2099,6 +2053,22 @@ Deaktivere sikker lagring og prøve igjen?</translation>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Tøm</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2570,14 +2540,6 @@ Dette kan føre til feil for de berørte programtilleggene.</translation>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3170,6 +3132,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3815,10 +3793,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4851,6 +4825,10 @@ Tilgjengelige kommandoer:
<source>Database password: </source>
<translation>Databasepassord: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5124,9 +5102,8 @@ Tilgjengelige kommandoer:
<translation>Eksportert sertifikat er ikke det samme som det som er i bruk. Vil du eksportere gjeldende sertifikat?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5143,10 +5120,6 @@ Tilgjengelige kommandoer:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5223,14 +5196,6 @@ Tilgjengelige kommandoer:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5255,6 +5220,34 @@ Tilgjengelige kommandoer:
<source>Export to %1</source>
<translation>Eksporter til %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Naar klembord kopiëren</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisie: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distributie: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotheken:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Besturingssysteem: %1
CPU-architectuur: %2
Kernelversie: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Geactiveerde extensies:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projectbeheerders:</translation>
@ -69,50 +45,6 @@ Kernelversie: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Een extra dank-je-wel van het KeePassXC-team gaat naar debfx voor het creëren van het oorspronkelijke KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versie %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Bouwtype: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Auto-type</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Browserintegratie</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH-agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Geen</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (getekend en ongetekend delen)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (alleen ondertekend delen)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (alleen niet-ondertekend delen)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -297,7 +229,7 @@ Kernelversie: %3 %4</translation>
</message>
<message>
<source>Auto-Type start delay</source>
<translation>Auto-type start vertraging</translation>
<translation>Auto-type startvertraging</translation>
</message>
<message>
<source>Check for updates at application startup</source>
@ -313,7 +245,7 @@ Kernelversie: %3 %4</translation>
</message>
<message>
<source>Button style</source>
<translation>Knop stijl</translation>
<translation>Knopstijl</translation>
</message>
</context>
<context>
@ -361,7 +293,7 @@ Kernelversie: %3 %4</translation>
</message>
<message>
<source>Re-lock previously locked database after performing Auto-Type</source>
<translation>Vergrendelde database na Auto-type weer vergrendelen.</translation>
<translation>Vergrendelde database na Auto-type weer vergrendelen</translation>
</message>
<message>
<source>Don&apos;t require password repeat when it is visible</source>
@ -489,7 +421,7 @@ Kernelversie: %3 %4</translation>
<message>
<source>%1 has requested access to passwords for the following item(s).
Please select whether you want to allow access.</source>
<translation>%1 vraagt toegang tot jouw wachtwoorden voor het volgende).
<translation>%1 vraagt toegang tot jouw wachtwoorden voor het volgende.
Geef aan of je toegang wilt verlenen of niet.</translation>
</message>
</context>
@ -656,22 +588,13 @@ Selecteer de database voor het opslaan van de inloggegevens.</translation>
<source>Select custom proxy location</source>
<translation>Selecteer aangepaste proxy-locatie</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Het spijt ons, maar KeePassXC-Browser wordt momenteel niet ondersteund voor Snap releases.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePaasXC-Browser is nodig voor de browser integratie.
Download hem voor %1 en %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor browser</translation>
</message>
<message>
<source>&lt;b&gt;Warning&lt;/b&gt;, the keepassxc-proxy application was not found!&lt;br /&gt;Please check the KeePassXC installation directory or confirm the custom path in advanced options.&lt;br /&gt;Browser integration WILL NOT WORK without the proxy application.&lt;br /&gt;Expected Path: </source>
<translation>&lt;b&gt;Waarschuwing&lt;/b&gt;, de keepassxc-proxy applicatie is niet gevonden!&lt;br /&gt;Controleer de installatie directory van KeePassXC of bevestig het aangepaste pad in geavanceerde opties.&lt;br /&gt;De browser integratie zal NIET WERKEN zonder de proxy application.&lt;br /&gt;Verwacht pad: </translation>
<translation>&lt;b&gt;Waarschuwing&lt;/b&gt;, de keepassxc-proxy-applicatie is niet gevonden!&lt;br /&gt;Controleer de installatiemap van KeePassXC of bevestig het aangepaste pad in geavanceerde opties.&lt;br /&gt;De browserintegratie zal NIET WERKEN zonder de proxy-applicatie.&lt;br /&gt;Verwacht pad: </translation>
</message>
<message>
<source>Executable Files</source>
@ -686,6 +609,18 @@ Download hem voor %1 en %2.</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Vraag geen toestemming voor HTTP en Basis Authentificatie</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -760,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: instellingen voor oudere browserintegratie gedetecteerd</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Instellingen voor oudere browserintegratie gedetecteerd.
Wil je de instellingen veranderen naar de nieuwste standaard?
Dit is nodig om compatibiliteit met de browser plugin te behouden.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -927,6 +870,10 @@ Dit is nodig om compatibiliteit met de browser plugin te behouden.</translation>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Bestand kan niet worden geschreven omdat het in de alleen-lezen modus is geopend.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1680,6 +1627,10 @@ Veilig opslaan afschakelen en opnieuw proberen?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Database werd niet gewijzigd door het samenvoegen.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2117,6 +2068,22 @@ Veilig opslaan afschakelen en opnieuw proberen?</translation>
<source>Select import/export file</source>
<translation>Selecteer import/export bestand</translation>
</message>
<message>
<source>Clear</source>
<translation>Wissen</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2588,14 +2555,6 @@ Hierdoor werken de plugins mogelijk niet meer goed.</translation>
<translation>[leeg]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3190,6 +3149,22 @@ Lijn %2, kolom %3</translation>
<source>Synchronize with</source>
<translation>Synchroniseren met</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3715,7 +3690,7 @@ Verwacht een aantal bugs en kleine problemen, deze versie is niet bedoeld voor p
<name>NewDatabaseWizardPageMetaData</name>
<message>
<source>General Database Information</source>
<translation>Algemene databaseinformatie</translation>
<translation>Algemene database-informatie</translation>
</message>
<message>
<source>Please fill in the display name and an optional description for your new database:</source>
@ -3839,10 +3814,6 @@ Verwacht een aantal bugs en kleine problemen, deze versie is niet bedoeld voor p
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Een wachtwoord is de primaire methode voor het beveiligen van een database.&lt;/p&gt; &lt;p&gt;Goede wachtwoorden zijn lang en uniek. KeePassXC kan er een voor je genereren.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Wachtwoord mag niet leeg zijn.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Wachtwoorden komen niet overeen.</translation>
@ -4878,6 +4849,10 @@ Beschikbare opdrachten:
<source>Database password: </source>
<translation>Databasewachtwoord: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5151,9 +5126,8 @@ Beschikbare opdrachten:
<translation>Het geëxporteerde certificaat is niet hetzelfde als die in gebruik is. Wilt u het huidige certificaat exporteren?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1. %2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5170,10 +5144,6 @@ Beschikbare opdrachten:
<source>Import from container with certificate</source>
<translation>Importeren uit de container met certificaat</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Wil je %1 met de vingerafdruk van %2 van %3 vertrouwen?</translation>
</message>
<message>
<source>Not this time</source>
<translation>Deze keer niet</translation>
@ -5250,14 +5220,6 @@ Beschikbare opdrachten:
<source>Could not write export container (%1)</source>
<translation>Kan geen export container schrijven (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Kon ondertekening niet opnemen in zip bestand (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Kon database niet opnemen in zip bestand (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Overschrijven van een niet-ondertekende deel-container wordt niet ondersteund - export is voorkomen</translation>
@ -5282,6 +5244,34 @@ Beschikbare opdrachten:
<source>Export to %1</source>
<translation>Exporteer naar %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Wilt u %1 met de vingerafdruk van %2 vanaf %3 vertrouwen? {1 ?} {2 ?} </translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5402,7 +5392,7 @@ Beschikbare opdrachten:
</message>
<message>
<source>Software Update</source>
<translation>Software update</translation>
<translation>Software-update</translation>
</message>
<message>
<source>A new version of KeePassXC is available!</source>
@ -5472,7 +5462,7 @@ Beschikbare opdrachten:
</message>
<message>
<source>No YubiKey detected, please ensure it&apos;s plugged in.</source>
<translation>Geen YubiKey gedetecteerd, plug deze aub in.</translation>
<translation>Geen YubiKey gedetecteerd, plug deze a.u.b. in.</translation>
</message>
<message>
<source>No YubiKey inserted.</source>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Skopiuj do schowka</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Rewizja: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Dystrybucja: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Biblioteki:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>System operacyjny: %1
Architektura procesora: %2
Jądro: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Włączone rozszerzenia:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Opiekunowie projektu:</translation>
@ -69,50 +45,6 @@ Jądro: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Specjalne podziękowania od zespołu KeePassXC dla debfx za stworzenie oryginalnego KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Wersja %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Typ kompilacji: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Autowpisywanie</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integracja z przeglądarką</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agent SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Żaden</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (podpisane i niepodpisane udostępnianie)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (tylko podpisane udostępnianie)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (tylko niepodpisane udostępnianie)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Wybierz właściwą bazę danych do zapisania danych uwierzytelniających.</tran
<source>Select custom proxy location</source>
<translation>Wybierz niestandardową lokalizację proxy</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Przykro nam, ale KeePassXC-Browser obecnie nie obsługuje wydań Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser jest potrzebny, aby działała integracja z przeglądarką. &lt;br /&gt;Pobierz go dla %1 oraz %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Wybierz właściwą bazę danych do zapisania danych uwierzytelniających.</tran
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Nie pytaj o uprawnienie dla HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Przeniesiono %2 klucze do niestandardowych danych.</translation>
<translation>KeePassXC: Wykryto ustawienia przestarzałej integracji z przeglądarką</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Wykryto ustawienia przestarzałej integracji z przeglądarką.
Czy chcesz uaktualnić ustawienia do najnowszego standardu?
Jest to konieczne, aby zachować zgodność z wtyczką przeglądarki.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ Jest to konieczne, aby zachować zgodność z wtyczką przeglądarki.</translati
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Plik nie może zostać zapisany, ponieważ jest otwarty w trybie tylko do odczytu.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Wyłączyć bezpieczne zapisywanie i spróbować ponownie?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Baza danych nie została zmodyfikowana operacją scalania.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2118,6 +2070,22 @@ Wyłączyć bezpieczne zapisywanie i spróbować ponownie?</translation>
<source>Select import/export file</source>
<translation>Wybierz plik importu/eksportu</translation>
</message>
<message>
<source>Clear</source>
<translation>Wyczyść</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2593,14 +2561,6 @@ Może to spowodować nieprawidłowe działanie wtyczek.</translation>
<translation>[pusty]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3195,6 +3155,22 @@ Wiersz %2, kolumna %3</translation>
<source>Synchronize with</source>
<translation>Synchronizuj z</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3844,10 +3820,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Hasło jest podstawową metodą zabezpieczania bazy danych.&lt;/p&gt;&lt;p&gt;Dobre hasła są długie i niepowtarzalne. KeePassXC może je wygenerować dla ciebie.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Hasło nie może być puste.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Hasła nie pasują do siebie.</translation>
@ -4884,6 +4856,10 @@ Dostępne polecenia:
<source>Database password: </source>
<translation>Hasło bazy danych: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5157,9 +5133,8 @@ Dostępne polecenia:
<translation>Wyeksportowany certyfikat nie jest tym samym, co używany. Czy chcesz wyeksportować bieżący certyfikat?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5176,10 +5151,6 @@ Dostępne polecenia:
<source>Import from container with certificate</source>
<translation>Importuj z kontenera z certyfikatem</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Czy chcesz zaufać %1 z odciskiem palca %2 z %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Nie tym razem</translation>
@ -5256,14 +5227,6 @@ Dostępne polecenia:
<source>Could not write export container (%1)</source>
<translation>Nie można zapisać kontenera eksportu (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Nie można osadzić podpisu (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Nie można osadzić bazy danych (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Zastąpienie niepodpisanego kontenera udostępniania nie jest obsługiwane - eksport został zablokowany</translation>
@ -5288,6 +5251,34 @@ Dostępne polecenia:
<source>Export to %1</source>
<translation>Eksportuj do %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Czy chcesz zaufać %1 z odciskiem palca %2 z %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copiar para a área de transferência</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisão: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribuição: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotecas:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operativo: %1
Arquitetura do CPU: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensões ativas:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Manutenção do projeto:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Um agradecimento especial da equipa do KeePassXC a debfx por ter criado a aplicação KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versão %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipo de compilação: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Escrita automática</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integração com o navegador</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agente SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nada</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (partilha assinada e não assinada)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (apenas partilha assinada)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (apenas partilha não assinada)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Selecione a base de dados correta para guardar as credenciais.</translation>
<source>Select custom proxy location</source>
<translation>Selecionar localização do proxy personalizado</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Lamentamos mas, de momento, o KeePassXC-Browser não tem suporte a versões Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Necessita de KeePassXC-Browser para que a integração com o navegador funcione. &lt;br /&gt;Descarregue para %1 e para %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Navegador &amp;Tor</translation>
@ -685,6 +609,18 @@ Selecione a base de dados correta para guardar as credenciais.</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Não pedir permissão para autorização &amp;básica HTTP</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Detetadas definições de integração legada com o navegador</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Detetadas definições de integração legada com o navegador.
Deseja atualizar as definições para a versão mais recente?
Esta atualização é necessária para manter a compatibilidade com o suplemento.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ Esta atualização é necessária para manter a compatibilidade com o suplemento
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Não é possível escrever no ficheiro porque este foi aberto no modo de leitura.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Desativar salvaguardas e tentar novamente?</translation>
<source>Database was not modified by merge operation.</source>
<translation>A base de dados não foi alterada pela combinação.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2119,6 +2071,22 @@ Por favor utilize %1.</translation>
<source>Select import/export file</source>
<translation>Selecione o ficheiro de importação/exportação</translation>
</message>
<message>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2592,14 +2560,6 @@ Esta ação pode implicar um funcionamento errático.</translation>
<translation>[vazia]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3194,6 +3154,22 @@ Linha %2, coluna %3</translation>
<source>Synchronize with</source>
<translation>Sincronizar com</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3844,10 +3820,6 @@ Pode encontrar erros graves e esta versão não deve ser utilizada em ambientes
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;A palavra-passe é o método primário para proteger a sua base de dados.&lt;/p&gt;&lt;p&gt;As boas palavras-passe são extensão e únicas. O KeePassXC pode gerar uma palavra-passe por si.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Palavra-passe não pode ser vazia.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Disparidade nas palavras-passe.</translation>
@ -4884,6 +4856,10 @@ Comandos disponíveis:
<source>Database password: </source>
<translation>Palavra-passe da base de dados: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5157,9 +5133,8 @@ Comandos disponíveis:
<translation>O certificado exportado não é o que está a ser utilizado. Deseja exportar o certificado atual?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5176,10 +5151,6 @@ Comandos disponíveis:
<source>Import from container with certificate</source>
<translation>Importar de um contentor com certificado</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Quer confiar %1 com a impressão digital de %2 de %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Agora não</translation>
@ -5256,14 +5227,6 @@ Comandos disponíveis:
<source>Could not write export container (%1)</source>
<translation>Não foi possível escrever contentor de exportação (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Não foi possível incorporar a assinatura (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Não foi possível incorporar a base de dados (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>A substituição de contentor de partilha assinado não é suportada - exportação evitada</translation>
@ -5288,6 +5251,34 @@ Comandos disponíveis:
<source>Export to %1</source>
<translation>Exportar para %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Deseja confiar em %1 com a impressão digital de %2 em %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copiar para a área de transferência</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisão: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribuição: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotecas:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operacional: %1
Arquitetura da CPU: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensões habilitadas:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Mantedores do Projeto:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>A equipe KeePassXC agradece especialmente a debfx pela criação do KeePassX original.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versão %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipo da Build: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Autodigitação</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integração com o Navegador</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agente SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nada</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (compartilhamento assinado e não assinado)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (somente compartilhamento assinado)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (apenas compartilhamento não assinado)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -353,7 +285,7 @@ Kernel: %3 %4</translation>
</message>
<message>
<source>Forget TouchID when session is locked or lid is closed</source>
<translation type="unfinished"/>
<translation>Esqueça o TouchID quando a sessão está bloqueada ou a tampa está fechada</translation>
</message>
<message>
<source>Lock databases after minimizing the window</source>
@ -373,7 +305,7 @@ Kernel: %3 %4</translation>
</message>
<message>
<source>Don&apos;t use placeholder for empty password fields</source>
<translation type="unfinished"/>
<translation>Não use espaço reservado para campos de senha vazios</translation>
</message>
<message>
<source>Hide passwords in the entry preview panel</source>
@ -389,7 +321,7 @@ Kernel: %3 %4</translation>
</message>
<message>
<source>Use DuckDuckGo as fallback for downloading website icons</source>
<translation type="unfinished"/>
<translation>Use DuckDuckGo como substituto para baixar ícones de sites</translation>
</message>
</context>
<context>
@ -656,21 +588,13 @@ Por favor, selecione o banco de dados correto para salvar as credenciais.</trans
<source>Select custom proxy location</source>
<translation>Selecione localização para o proxy</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Desculpe, o KeePassXC-Browser não é suportado em versões Snap no momento.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser é necessário para que a integração do navegador funcione. &lt;br /&gt;Faça o download de %1 e %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Navegador Tor</translation>
</message>
<message>
<source>&lt;b&gt;Warning&lt;/b&gt;, the keepassxc-proxy application was not found!&lt;br /&gt;Please check the KeePassXC installation directory or confirm the custom path in advanced options.&lt;br /&gt;Browser integration WILL NOT WORK without the proxy application.&lt;br /&gt;Expected Path: </source>
<translation type="unfinished"/>
<translation>&lt;b&gt;Alerta&lt;/b&gt;, o aplicativo keepassxc-proxy não foi encontrado!&lt;br /&gt;Por favor, verifique o diretório de instalação do KeePassXC ou confirme o caminho personalizado nas opções avançadas.&lt;br /&gt;A integração do navegador não funcionará sem o aplicativo proxy.&lt;br /&gt;Caminho esperado: </translation>
</message>
<message>
<source>Executable Files</source>
@ -685,6 +609,18 @@ Por favor, selecione o banco de dados correto para salvar as credenciais.</trans
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Não pedir permissão para HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -738,11 +674,12 @@ Você deseja sobrescreve-la?</translation>
<message>
<source>Successfully converted attributes from %1 entry(s).
Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
<translation>Atributos convertidos com sucesso de %1 entrada(s).
Movido %2 chaves para dados personalizados.</translation>
</message>
<message numerus="yes">
<source>Successfully moved %n keys to custom data.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Movido com sucesso %n chaves para dados personalizados.</numerusform><numerusform>Movido com sucesso %n chaves para dados personalizados.</numerusform></translation>
</message>
<message>
<source>KeePassXC: No entry with KeePassHTTP attributes found!</source>
@ -757,12 +694,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Configurações de integração do navegador herdado detectadas</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>As configurações de integração do navegador legadas foram detectadas.
Você quer atualizar as configurações para o padrão mais recente?
Isso é necessário para manter a compatibilidade com o plugin do navegador.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -914,7 +859,7 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador.</tr
</message>
<message>
<source>Error while reading the database: %1</source>
<translation type="unfinished"/>
<translation>Erro ao ler o banco de dados: %1</translation>
</message>
<message>
<source>Could not save, database has no file name.</source>
@ -922,6 +867,10 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador.</tr
</message>
<message>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>O arquivo não pode ser gravado, pois é aberto no modo somente leitura.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
@ -1071,7 +1020,8 @@ Por favor, considere-se gerar um novo arquivo de chave.</translation>
<message>
<source>Do you really want to delete the selected key?
This may prevent connection to the browser plugin.</source>
<translation type="unfinished"/>
<translation>Você realmente deseja excluir a chave selecionada?
Isso pode impedir a conexão com o plugin do navegador.</translation>
</message>
<message>
<source>Key</source>
@ -1101,7 +1051,7 @@ Isso pode impedir a conexão com o plugin do navegador.</translation>
</message>
<message>
<source>No shared encryption keys found in KeePassXC settings.</source>
<translation type="unfinished"/>
<translation>Nenhuma chave de criptografia compartilhada encontrada nas configurações do KeePassXC.</translation>
</message>
<message>
<source>KeePassXC: Removed keys from database</source>
@ -1673,6 +1623,10 @@ Deseja desabilitar salvamento seguro e tentar novamente?</translation>
<source>Database was not modified by merge operation.</source>
<translation>Banco de dados não foi modificado pela operação de mesclagem.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2110,6 +2064,22 @@ Deseja desabilitar salvamento seguro e tentar novamente?</translation>
<source>Select import/export file</source>
<translation>Selecione o arquivo de importação/exportação</translation>
</message>
<message>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2581,14 +2551,6 @@ Isto pode causar mal funcionamento dos plugins afetados.</translation>
<translation>[vazio]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -2867,7 +2829,7 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da
</message>
<message>
<source>Failed to read database file.</source>
<translation type="unfinished"/>
<translation>Falha ao ler o arquivo de banco de dados.</translation>
</message>
</context>
<context>
@ -3183,6 +3145,22 @@ Linha %2, coluna %3</translation>
<source>Synchronize with</source>
<translation>Sincronizar com</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3459,7 +3437,8 @@ Esta versão não se destina ao uso em produção.</translation>
<message>
<source>WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard!
We recommend you use the AppImage available on our downloads page.</source>
<translation type="unfinished"/>
<translation>AVISO: Sua versão do Qt pode fazer com que o KeePassXC trave com um teclado na tela!
Recomendamos que você use o AppImage disponível em nossa página de downloads.</translation>
</message>
<message>
<source>&amp;Import</source>
@ -3535,11 +3514,11 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>KeePass 1 database...</source>
<translation type="unfinished"/>
<translation>Banco de dados do KeePass 1...</translation>
</message>
<message>
<source>Import a KeePass 1 database</source>
<translation type="unfinished"/>
<translation>Importar banco de dados do KeePass 1</translation>
</message>
<message>
<source>CSV file...</source>
@ -3555,7 +3534,7 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>Show TOTP QR Code...</source>
<translation type="unfinished"/>
<translation>Exibir Código QR do TOTP...</translation>
</message>
<message>
<source>Check for Updates...</source>
@ -3568,7 +3547,8 @@ We recommend you use the AppImage available on our downloads page.</source>
<message>
<source>NOTE: You are using a pre-release version of KeePassXC!
Expect some bugs and minor issues, this version is not meant for production use.</source>
<translation type="unfinished"/>
<translation>NOTA: Você está usando uma versão de pré-lançamento do KeePassXC!
Espere alguns bugs e problemas menores, esta versão não é para uso em produção.</translation>
</message>
<message>
<source>Check for updates on startup?</source>
@ -3599,7 +3579,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>older entry merged from database &quot;%1&quot;</source>
<translation type="unfinished"/>
<translation>entrada mais antiga mesclada do banco de dados &quot;%1&quot;</translation>
</message>
<message>
<source>Adding backup for older target %1 [%2]</source>
@ -3623,7 +3603,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Synchronizing from older source %1 [%2]</source>
<translation type="unfinished"/>
<translation>Sincronizando a partir da fonte antiga %1 [%2]</translation>
</message>
<message>
<source>Deleting child %1 [%2]</source>
@ -3827,10 +3807,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Senha não pode estar vazia.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Senha não corresponde.</translation>
@ -4041,7 +4017,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Character set to exclude from generated password</source>
<translation type="unfinished"/>
<translation>Conjunto de caracteres para excluir da senha gerada</translation>
</message>
<message>
<source>Do not include:</source>
@ -4439,7 +4415,7 @@ Comandos disponíveis:
</message>
<message>
<source>Enter password for new entry: </source>
<translation type="unfinished"/>
<translation>Digite a senha para a nova entrada:</translation>
</message>
<message>
<source>Writing the database failed %1.</source>
@ -4455,11 +4431,11 @@ Comandos disponíveis:
</message>
<message>
<source>Invalid timeout value %1.</source>
<translation type="unfinished"/>
<translation>Valor de tempo limite inválido %1.</translation>
</message>
<message>
<source>Entry %1 not found.</source>
<translation type="unfinished"/>
<translation>Entrada%1 não encontrada.</translation>
</message>
<message>
<source>Entry with path %1 has no TOTP set up.</source>
@ -4483,7 +4459,7 @@ Comandos disponíveis:
</message>
<message>
<source>Silence password prompt and other secondary outputs.</source>
<translation type="unfinished"/>
<translation>Pergunta por senha em silêncio e outras saídas secundárias.</translation>
</message>
<message>
<source>count</source>
@ -4492,7 +4468,7 @@ Comandos disponíveis:
</message>
<message>
<source>Invalid value for password length: %1</source>
<translation type="unfinished"/>
<translation>Valor inválido para o tamanho da senha: %1</translation>
</message>
<message>
<source>Could not find entry with path %1.</source>
@ -4504,7 +4480,7 @@ Comandos disponíveis:
</message>
<message>
<source>Enter new password for entry: </source>
<translation type="unfinished"/>
<translation>Digite uma nova senha para entrada:</translation>
</message>
<message>
<source>Writing the database failed: %1</source>
@ -4512,7 +4488,7 @@ Comandos disponíveis:
</message>
<message>
<source>Successfully edited entry %1.</source>
<translation type="unfinished"/>
<translation>Entrada editada com sucesso %1.</translation>
</message>
<message>
<source>Length %1</source>
@ -4608,7 +4584,7 @@ Comandos disponíveis:
</message>
<message>
<source>Entropy %1 (%2)</source>
<translation type="unfinished"/>
<translation>Entropia %1 (%2)</translation>
</message>
<message>
<source>*** Password length (%1) != sum of length of parts (%2) ***</source>
@ -4658,7 +4634,7 @@ Comandos disponíveis:
</message>
<message>
<source>Use extended ASCII</source>
<translation type="unfinished"/>
<translation>Use estendido ASCII</translation>
</message>
<message>
<source>Exclude character set</source>
@ -4678,7 +4654,7 @@ Comandos disponíveis:
</message>
<message>
<source>Recursively list the elements of the group.</source>
<translation type="unfinished"/>
<translation>Listar recursivamente os elementos do grupo.</translation>
</message>
<message>
<source>Cannot find group %1.</source>
@ -4723,7 +4699,7 @@ Comandos disponíveis:
</message>
<message>
<source>file empty</source>
<translation type="unfinished"/>
<translation>arquivo vazio</translation>
</message>
<message>
<source>%1: (row, col) %2,%3</source>
@ -4769,11 +4745,11 @@ Comandos disponíveis:
</message>
<message>
<source>No groups found</source>
<translation type="unfinished"/>
<translation>Nenhum grupo encontrado</translation>
</message>
<message>
<source>Create a new database.</source>
<translation type="unfinished"/>
<translation>Criar um novo banco de dados.</translation>
</message>
<message>
<source>File %1 already exists.</source>
@ -4781,7 +4757,7 @@ Comandos disponíveis:
</message>
<message>
<source>Loading the key file failed</source>
<translation type="unfinished"/>
<translation>O carregamento do arquivo de chave falhou</translation>
</message>
<message>
<source>No key is set. Aborting database creation.</source>
@ -4789,7 +4765,7 @@ Comandos disponíveis:
</message>
<message>
<source>Failed to save the database: %1.</source>
<translation type="unfinished"/>
<translation>Falha ao salvar o banco de dados: %1.</translation>
</message>
<message>
<source>Successfully created new database.</source>
@ -4863,6 +4839,10 @@ Comandos disponíveis:
<source>Database password: </source>
<translation>Senha do banco de dados:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -4910,7 +4890,7 @@ Comandos disponíveis:
</message>
<message>
<source>No agent running, cannot add identity.</source>
<translation type="unfinished"/>
<translation>Nenhum agente em execução, não é possível adicionar identidade.</translation>
</message>
<message>
<source>No agent running, cannot remove identity.</source>
@ -4953,11 +4933,11 @@ Comandos disponíveis:
</message>
<message>
<source>exclude term from results</source>
<translation type="unfinished"/>
<translation>excluir termo dos resultados</translation>
</message>
<message>
<source>match term exactly</source>
<translation type="unfinished"/>
<translation>encontrar termo exato</translation>
</message>
<message>
<source>use regex in term</source>
@ -5136,9 +5116,8 @@ Comandos disponíveis:
<translation>O certificado exportado não é o mesmo que está em uso. Você quer exportar o certificado atual?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5155,10 +5134,6 @@ Comandos disponíveis:
<source>Import from container with certificate</source>
<translation>Importar do contêiner com certificado</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation>Não dessa vez</translation>
@ -5193,19 +5168,19 @@ Comandos disponíveis:
</message>
<message>
<source>File is not readable</source>
<translation type="unfinished"/>
<translation>Arquivo não é legível</translation>
</message>
<message>
<source>Invalid sharing container</source>
<translation type="unfinished"/>
<translation>Contêiner de compartilhamento inválido</translation>
</message>
<message>
<source>Untrusted import prevented</source>
<translation type="unfinished"/>
<translation>Importação não confiável impedida</translation>
</message>
<message>
<source>Successful signed import</source>
<translation type="unfinished"/>
<translation>Importação assinada bem-sucedida</translation>
</message>
<message>
<source>Unexpected error</source>
@ -5235,21 +5210,13 @@ Comandos disponíveis:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
<translation>A substituição de contêiner de compartilhamento não assinado não é suportada - exportação impedida</translation>
</message>
<message>
<source>Could not write export container</source>
<translation type="unfinished"/>
<translation>Não foi possível escrever o contêiner de exportação</translation>
</message>
<message>
<source>Unexpected export error occurred</source>
@ -5267,6 +5234,34 @@ Comandos disponíveis:
<source>Export to %1</source>
<translation>Exportar para %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5284,7 +5279,7 @@ Comandos disponíveis:
</message>
<message numerus="yes">
<source>Expires in &lt;b&gt;%n&lt;/b&gt; second(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Expira em &lt;b&gt;%n&lt;/b&gt; segundo(s)</numerusform><numerusform>Expira em &lt;b&gt;%n&lt;/b&gt; segundo(s)</numerusform></translation>
</message>
</context>
<context>
@ -5296,11 +5291,11 @@ Comandos disponíveis:
<message>
<source>NOTE: These TOTP settings are custom and may not work with other authenticators.</source>
<comment>TOTP QR code dialog warning</comment>
<translation type="unfinished"/>
<translation>NOTA: Essas configurações de TOTP são personalizadas e podem não funcionar com outros autenticadores.</translation>
</message>
<message>
<source>There was an error creating the QR code.</source>
<translation type="unfinished"/>
<translation>Ocorreu um erro ao criar o código QR.</translation>
</message>
<message>
<source>Closing in %1 seconds.</source>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Copiar para a área de transferência</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revisão: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribuição: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Bibliotecas:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Sistema operativo: %1
Arquitetura do CPU: %2
Kernel: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Extensões ativas:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Manutenção do projeto:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Um agradecimento especial da equipa KeePassXC a debfx por ter criado a aplicação KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Versão %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Tipo de compilação: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Escrita automática</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integração com o navegador</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agente SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Nada</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (partilha assinada e não assinada)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (apenas partilha assinada)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (apenas partilha não assinada)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Selecione a base de dados correta para guardar as credenciais.</translation>
<source>Select custom proxy location</source>
<translation>Selecionar localização do proxy personalizado</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Lamentamos mas, de momento, o KeePassXC-Browser não tem suporte a versões Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Necessita de KeePassXC-Browser para que a integração com o navegador funcione. &lt;br /&gt;Descarregue para %1 e para %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Navegador &amp;Tor</translation>
@ -685,6 +609,18 @@ Selecione a base de dados correta para guardar as credenciais.</translation>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Não pedir permissão para autorização &amp;básica HTTP</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Detetadas definições de integração legada com o navegador</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Detetadas definições de integração legada com o navegador.
Deseja atualizar as definições para a versão mais recente?
Esta atualização é necessária para manter a compatibilidade com o suplemento.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ Esta atualização é necessária para manter a compatibilidade com o suplemento
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Não é possível escrever no ficheiro porque este foi aberto no modo de leitura.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1507,7 +1455,7 @@ Existe aqui um erro que deve ser reportado aos programadores.</translation>
<name>DatabaseWidget</name>
<message>
<source>Searching...</source>
<translation>Pesquisar..</translation>
<translation>Pesquisar...</translation>
</message>
<message>
<source>Do you really want to delete the entry &quot;%1&quot; for good?</source>
@ -1681,6 +1629,10 @@ Desativar salvaguardas e tentar novamente?</translation>
<source>Database was not modified by merge operation.</source>
<translation>A base de dados não foi modificada pela combinação.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2119,6 +2071,22 @@ Por favor utilize %1.</translation>
<source>Select import/export file</source>
<translation>Selecione o ficheiro de importação/exportação</translation>
</message>
<message>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2592,14 +2560,6 @@ Esta ação pode implicar um funcionamento errático.</translation>
<translation>[vazia]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3194,6 +3154,22 @@ Linha %2, coluna %3</translation>
<source>Synchronize with</source>
<translation>Sincronizar com</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3231,7 +3207,7 @@ Linha %2, coluna %3</translation>
<message>
<source>%1 set, click to change or remove</source>
<comment>Change or remove a key component</comment>
<translation>%1 definido, clique para alterar ou remover</translation>
<translation>%1 definida, clique para alterar ou remover</translation>
</message>
</context>
<context>
@ -3250,7 +3226,7 @@ Linha %2, coluna %3</translation>
</message>
<message>
<source>&lt;p&gt;You can add a key file containing random bytes for additional security.&lt;/p&gt;&lt;p&gt;You must keep it secret and never lose it or you will be locked out!&lt;/p&gt;</source>
<translation>&lt;p&gt;Para mais segurança, pode adicionar um ficheiro-chave que contenha dados aleatórios.&lt;/p&gt;&lt;p&gt;Tem que o manter secreto e não o pode perder pois se o fizer não mais poderá abrir a base de dados.&lt;/p&gt;</translation>
<translation>&lt;p&gt;Para mais segurança, pode adicionar um ficheiro-chave que contenha dados aleatórios.&lt;/p&gt;&lt;p&gt;Tem de o manter secreto e não o pode perder pois se tal acontecer, nunca mais conseguirá abrir a base de dados.&lt;/p&gt;</translation>
</message>
<message>
<source>Legacy key file format</source>
@ -3844,10 +3820,6 @@ Pode encontrar erros graves e esta versão não deve ser utilizada em ambientes
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;A palavra-passe é o método primário para proteger a sua base de dados.&lt;/p&gt;&lt;p&gt;As boas palavras-passe são extensão e únicas. O KeePassXC pode gerar uma palavra-passe por si.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Palavra-passe não pode ser vazia.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Disparidade nas palavras-passe.</translation>
@ -4884,6 +4856,10 @@ Comandos disponíveis:
<source>Database password: </source>
<translation>Palavra-passe da base de dados: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5157,9 +5133,8 @@ Comandos disponíveis:
<translation>O certificado exportado não é o que está a ser utilizado. Deseja exportar o certificado atual?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5176,10 +5151,6 @@ Comandos disponíveis:
<source>Import from container with certificate</source>
<translation>Importar de um contentor com certificado</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Quer confiar %1 com a impressão digital de %2 de %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Agora não</translation>
@ -5256,14 +5227,6 @@ Comandos disponíveis:
<source>Could not write export container (%1)</source>
<translation>Não foi possível escrever contentor de exportação (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Não foi possível incorporar a assinatura (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Não foi possível incorporar a base de dados (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>A substituição de contentor de partilha assinado não é suportada - exportação evitada</translation>
@ -5288,6 +5251,34 @@ Comandos disponíveis:
<source>Export to %1</source>
<translation>Exportar para %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Deseja confiar em %1 com a impressão digital de %2 em %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5474,7 +5465,7 @@ Comandos disponíveis:
</message>
<message>
<source>&lt;p&gt;If you own a &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt;, you can use it for additional security.&lt;/p&gt;&lt;p&gt;The YubiKey requires one of its slots to be programmed as &lt;a href=&quot;https://www.yubico.com/products/services-software/personalization-tools/challenge-response/&quot;&gt;HMAC-SHA1 Challenge-Response&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Se você tiver uma &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt;, pode utiliza-la para obter mais segurança.&lt;/p&gt;&lt;p&gt;A YubiKey requer que uma das suas ranhuras seja programada como uma &lt;a href=&quot;https://www.yubico.com/products/services-software/personalization-tools/challenge-response/&quot;&gt;HMAC-SHA1 Challenge-Response&lt;/a&gt;.&lt;/p&gt;</translation>
<translation>&lt;p&gt;Se tiver uma &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt;, pode utilizá-la para obter mais segurança.&lt;/p&gt;&lt;p&gt;A YubiKey requer que uma das suas ranhuras seja programada como uma &lt;a href=&quot;https://www.yubico.com/products/services-software/personalization-tools/challenge-response/&quot;&gt;HMAC-SHA1 Challenge-Response&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>No YubiKey detected, please ensure it&apos;s plugged in.</source>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Скопировать в буфер обмена</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Ревизия: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Дистрибутив: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Библиотеки:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Операционная система: %1
Архитектура ЦП: %2
Ядро: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Включённые расширения:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Проект сопровождают:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</source>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Команда KeePassXC выражает особую благодарность debfx за создание оригинального KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Версия %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Тип сборки: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Автоввод</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Интеграция с браузером</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH-агент</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Нет</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (доступ с использованием подписей и без)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (доступ только с использованием подписи)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (доступ только без использованием подписи)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Выбрать другое расположение прокси</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>KeePassXC-Browser сейчас не поддерживается для выпусков Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser необходим для интеграции браузера. &lt;br /&gt; ачайте его для %1 и %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Не спрашивать разрешения для HTTP и Basic авторизации</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Устаревшая интеграция с браузером обнаружена</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Параметры устаревшей интеграции с браузерами были обнаружены. Вы хотите обновить параметры до нового стандарта?
Это необходимо для сохранения совместимости с плагином для браузера.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -925,6 +869,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Файл не может быть перезаписан, т.к. он открыт в режиме &quot;только для чтения&quot;.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -957,7 +905,7 @@ This is necessary to maintain compatibility with the browser plugin.</source>
</message>
<message>
<source>Challenge Response:</source>
<translation>Ответ на вызов:</translation>
<translation>Вызов-ответ:</translation>
</message>
<message>
<source>Legacy key file format</source>
@ -1657,7 +1605,7 @@ Disable safe saves and try again?</source>
</message>
<message numerus="yes">
<source>Entry &quot;%1&quot; has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway?</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Запись &quot;%1&quot; имеет %2 ссылку. Вы хотите переписать ссылки значениями, пропустить эту запись или удалить в любом случае?</numerusform><numerusform>Запись &quot;%1&quot; имеет %2 ссылки. Вы хотите переписать ссылки значениями, пропустить эту запись или удалить в любом случае?</numerusform><numerusform>Запись &quot;%1&quot; имеет %2 ссылок. Вы хотите переписать ссылки значениями, пропустить эту запись или удалить в любом случае?</numerusform><numerusform>Запись &quot;%1&quot; имеет %2 ссылку(ки, ок). Вы хотите переписать ссылки значениями, пропустить эту запись или удалить в любом случае?</numerusform></translation>
</message>
<message>
<source>Delete group</source>
@ -1679,6 +1627,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation>База данных не была изменена операцией слияния.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2116,6 +2068,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation>Выберите файл для импорта/экспорта</translation>
</message>
<message>
<source>Clear</source>
<translation>Очистить</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2196,7 +2164,7 @@ Disable safe saves and try again?</source>
</message>
<message>
<source>Hint: You can enable DuckDuckGo as a fallback under Tools&gt;Settings&gt;Security</source>
<translation type="unfinished"/>
<translation>Совет: Вы можете включить DuckDuckGo в качестве резерва в &quot;Инструменты&gt;Настройки&gt;Безопасность&quot;</translation>
</message>
<message>
<source>Select Image(s)</source>
@ -2204,7 +2172,7 @@ Disable safe saves and try again?</source>
</message>
<message numerus="yes">
<source>Successfully loaded %1 of %n icon(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Успешно загружено %1 из %n иконки</numerusform><numerusform>Успешно загружено %1 из %n иконок</numerusform><numerusform>Успешно загружено %1 из %n иконок</numerusform><numerusform>Успешно загружено %1 из %n иконки(ок)</numerusform></translation>
</message>
<message>
<source>No icons were loaded</source>
@ -2220,7 +2188,7 @@ Disable safe saves and try again?</source>
</message>
<message numerus="yes">
<source>This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it?</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Эта иконка используется %n записью и будет замещена иконкой по умолчанию. Вы уверены, что хотите удалить её?</numerusform><numerusform>Эта иконка используется %n записями и будет замещена иконкой по умолчанию. Вы уверены, что хотите удалить её?</numerusform><numerusform>Эта иконка используется %n записями и будет замещена иконкой по умолчанию. Вы уверены, что хотите удалить её?</numerusform><numerusform>Эта иконка используется %n записью(ями) и будет замещена иконкой по умолчанию. Вы уверены, что хотите удалить её?</numerusform></translation>
</message>
</context>
<context>
@ -2590,14 +2558,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[пустой]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -2868,7 +2828,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Invalid cipher uuid length: %1 (length=%2)</source>
<translation type="unfinished"/>
<translation>Неверная длина UUID шифра: %1 (длина=%2)</translation>
</message>
<message>
<source>Unable to parse UUID: %1</source>
@ -3171,7 +3131,7 @@ Line %2, column %3</source>
</message>
<message>
<source>unable to seek to content position</source>
<translation type="unfinished"/>
<translation>не удалось переместиться к позиции содержимого</translation>
</message>
</context>
<context>
@ -3192,6 +3152,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation>Синхронизировать с</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3248,7 +3224,7 @@ Line %2, column %3</source>
</message>
<message>
<source>&lt;p&gt;You can add a key file containing random bytes for additional security.&lt;/p&gt;&lt;p&gt;You must keep it secret and never lose it or you will be locked out!&lt;/p&gt;</source>
<translation type="unfinished"/>
<translation>&lt;p&gt;Вы можете добавить ключевой файл, содержащий случайные байты, для дополнительной безопасности.&lt;/p&gt;&lt;p&gt;Вы должны хранить его в секрете и никогда не терять, или Вы будете заблокированы!&lt;/p&gt;</translation>
</message>
<message>
<source>Legacy key file format</source>
@ -3259,12 +3235,15 @@ Line %2, column %3</source>
unsupported in the future.
Please go to the master key settings and generate a new key file.</source>
<translation type="unfinished"/>
<translation>Вы используете устаревший формат файла-ключа, который может стать не поддерживаемым в будущем.
Пожалуйста, сходите в настройки мастер ключа и сгенерируйте новый файл-ключ.</translation>
</message>
<message>
<source>Error loading the key file '%1'
Message: %2</source>
<translation type="unfinished"/>
<translation>Ошибка загрузки ключевого файла &apos;%1&apos;
Сообщение: %2</translation>
</message>
<message>
<source>Key files</source>
@ -3299,7 +3278,7 @@ Message: %2</source>
</message>
<message>
<source>&amp;Recent databases</source>
<translation>&amp;Недавние базы данных</translation>
<translation>Н&amp;едавние базы данных</translation>
</message>
<message>
<source>&amp;Help</source>
@ -3319,7 +3298,7 @@ Message: %2</source>
</message>
<message>
<source>&amp;Quit</source>
<translation>В&amp;ыход</translation>
<translation>&amp;Выход</translation>
</message>
<message>
<source>&amp;About</source>
@ -3351,7 +3330,7 @@ Message: %2</source>
</message>
<message>
<source>Sa&amp;ve database as...</source>
<translation>&amp;Сохранить базу данных как...</translation>
<translation>Со&amp;хранить базу данных как...</translation>
</message>
<message>
<source>Database settings</source>
@ -3473,19 +3452,19 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>&amp;Import</source>
<translation>&amp;Import</translation>
<translation>&amp;Импорт</translation>
</message>
<message>
<source>Copy att&amp;ribute...</source>
<translation>Копирование атрибутов...</translation>
<translation>Скопировать ат&amp;рибут...</translation>
</message>
<message>
<source>TOTP...</source>
<translation>TOTP...</translation>
<translation>&amp;TOTP...</translation>
</message>
<message>
<source>&amp;New database...</source>
<translation type="unfinished"/>
<translation>&amp;Новая база данных...</translation>
</message>
<message>
<source>Create a new database</source>
@ -3493,15 +3472,15 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>&amp;Merge from database...</source>
<translation type="unfinished"/>
<translation>Сое&amp;динить с другой базой данных...</translation>
</message>
<message>
<source>Merge from another KDBX database</source>
<translation type="unfinished"/>
<translation>Соединить с другой базой данных KDBX</translation>
</message>
<message>
<source>&amp;New entry</source>
<translation type="unfinished"/>
<translation>&amp;Новая запись</translation>
</message>
<message>
<source>Add a new entry</source>
@ -3509,7 +3488,7 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>&amp;Edit entry</source>
<translation type="unfinished"/>
<translation>&amp;Править запись</translation>
</message>
<message>
<source>View or edit entry</source>
@ -3517,7 +3496,7 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>&amp;New group</source>
<translation type="unfinished"/>
<translation>&amp;Новая группа</translation>
</message>
<message>
<source>Add a new group</source>
@ -3529,15 +3508,15 @@ We recommend you use the AppImage available on our downloads page.</source>
</message>
<message>
<source>&amp;Database settings...</source>
<translation type="unfinished"/>
<translation>&amp;Параметры базы данных...</translation>
</message>
<message>
<source>Copy &amp;password</source>
<translation>Скпировать &amp;пароль</translation>
<translation>Скопировать п&amp;ароль</translation>
</message>
<message>
<source>Perform &amp;Auto-Type</source>
<translation type="unfinished"/>
<translation>Осуществить а&amp;втоввод</translation>
</message>
<message>
<source>Open &amp;URL</source>
@ -3598,66 +3577,66 @@ Expect some bugs and minor issues, this version is not meant for production use.
<name>Merger</name>
<message>
<source>Creating missing %1 [%2]</source>
<translation type="unfinished"/>
<translation>Создание отсутствующей %1 [%2]</translation>
</message>
<message>
<source>Relocating %1 [%2]</source>
<translation type="unfinished"/>
<translation>Перемещение %1 [%2]</translation>
</message>
<message>
<source>Overwriting %1 [%2]</source>
<translation type="unfinished"/>
<translation>Перезапись %1 [%2]</translation>
</message>
<message>
<source>older entry merged from database &quot;%1&quot;</source>
<translation type="unfinished"/>
<translation>более старая запись присоединена из базы данных &quot;%1&quot;</translation>
</message>
<message>
<source>Adding backup for older target %1 [%2]</source>
<translation type="unfinished"/>
<translation>Добавление резервной копии для более старой мишени %1 [%2]</translation>
</message>
<message>
<source>Adding backup for older source %1 [%2]</source>
<translation type="unfinished"/>
<translation>Добавление резервной копии для более старого источника %1 [%2]</translation>
</message>
<message>
<source>Reapplying older target entry on top of newer source %1 [%2]</source>
<translation type="unfinished"/>
<translation>Повторное применение более старой целевой записи поверх более нового источника %1 [%2]</translation>
</message>
<message>
<source>Reapplying older source entry on top of newer target %1 [%2]</source>
<translation type="unfinished"/>
<translation>Повторное применение более старой исходной записи поверх более новой мишени %1 [%2]</translation>
</message>
<message>
<source>Synchronizing from newer source %1 [%2]</source>
<translation type="unfinished"/>
<translation>Синхронизация с более новым источником %1 [%2]</translation>
</message>
<message>
<source>Synchronizing from older source %1 [%2]</source>
<translation type="unfinished"/>
<translation>Синхронизация с более старым источником %1 [%2]</translation>
</message>
<message>
<source>Deleting child %1 [%2]</source>
<translation type="unfinished"/>
<translation>Удаление дочерней %1 [%2]</translation>
</message>
<message>
<source>Deleting orphan %1 [%2]</source>
<translation type="unfinished"/>
<translation>Удаление заброшенной %1 [%2]</translation>
</message>
<message>
<source>Changed deleted objects</source>
<translation type="unfinished"/>
<translation>Изменены удалённые объекты</translation>
</message>
<message>
<source>Adding missing icon %1</source>
<translation type="unfinished"/>
<translation>Добавление отсутствующей иконки %1</translation>
</message>
</context>
<context>
<name>NewDatabaseWizard</name>
<message>
<source>Create a new KeePassXC database...</source>
<translation type="unfinished"/>
<translation>Создать новую базу данных KeePassXC</translation>
</message>
<message>
<source>Root</source>
@ -3669,15 +3648,15 @@ Expect some bugs and minor issues, this version is not meant for production use.
<name>NewDatabaseWizardPage</name>
<message>
<source>WizardPage</source>
<translation type="unfinished"/>
<translation>СтраницаМастера</translation>
</message>
<message>
<source>En&amp;cryption Settings</source>
<translation type="unfinished"/>
<translation>Настройки шифрования</translation>
</message>
<message>
<source>Here you can adjust the database encryption settings. Don&apos;t worry, you can change them later in the database settings.</source>
<translation type="unfinished"/>
<translation>Здесь Вы можете отрегулировать настройки шифрования базы данных. Не беспокойтесь, вы сможете изменить их позже в настройках базы данных.</translation>
</message>
<message>
<source>Advanced Settings</source>
@ -3685,7 +3664,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Simple Settings</source>
<translation type="unfinished"/>
<translation>Простые настройки</translation>
</message>
</context>
<context>
@ -3696,25 +3675,25 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Here you can adjust the database encryption settings. Don&apos;t worry, you can change them later in the database settings.</source>
<translation type="unfinished"/>
<translation>Здесь Вы можете отрегулировать настройки шифрования базы данных. Не беспокойтесь, вы сможете изменить их позже в настройках базы данных.</translation>
</message>
</context>
<context>
<name>NewDatabaseWizardPageMasterKey</name>
<message>
<source>Database Master Key</source>
<translation type="unfinished"/>
<translation>Мастер-ключ базы данных</translation>
</message>
<message>
<source>A master key known only to you protects your database.</source>
<translation type="unfinished"/>
<translation>Мастер-ключ, известный только Вам, защищает Вашу базу данных.</translation>
</message>
</context>
<context>
<name>NewDatabaseWizardPageMetaData</name>
<message>
<source>General Database Information</source>
<translation type="unfinished"/>
<translation>Общая информация о базе данных</translation>
</message>
<message>
<source>Please fill in the display name and an optional description for your new database:</source>
@ -3828,7 +3807,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Confirm password:</source>
<translation type="unfinished"/>
<translation>Подтвердите пароль:</translation>
</message>
<message>
<source>Password</source>
@ -3838,10 +3817,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Пароль - первичный метод защиты Вашей базы данных.&lt;/p&gt;&lt;p&gt;Хорошие пароли длинные и уникальные. KeePassXC может сгенерировать его для Вас.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Пароль не может быть пустым.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Пароли не совпадают.</translation>
@ -4020,7 +3995,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Math</source>
<translation type="unfinished"/>
<translation>Математические</translation>
</message>
<message>
<source>&lt;*+!?=</source>
@ -4060,7 +4035,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Add non-hex letters to &quot;do not include&quot; list</source>
<translation type="unfinished"/>
<translation>Добавить не шестнадцатеричные буквы к списку &quot;не включать&quot;</translation>
</message>
<message>
<source>Hex</source>
@ -4072,7 +4047,7 @@ Expect some bugs and minor issues, this version is not meant for production use.
</message>
<message>
<source>Word Co&amp;unt:</source>
<translation type="unfinished"/>
<translation>Количество слов:</translation>
</message>
<message>
<source>Regenerate</source>
@ -4447,7 +4422,7 @@ Available commands:
</message>
<message>
<source>Could not create entry with path %1.</source>
<translation type="unfinished"/>
<translation>Не удалось создать запись с путём %1.</translation>
</message>
<message>
<source>Enter password for new entry: </source>
@ -4463,11 +4438,11 @@ Available commands:
</message>
<message>
<source>Copy the current TOTP to the clipboard.</source>
<translation type="unfinished"/>
<translation>Скопировать текущий TOTP в буфер обмена.</translation>
</message>
<message>
<source>Invalid timeout value %1.</source>
<translation type="unfinished"/>
<translation>Неверное значение времени ожидания %1.</translation>
</message>
<message>
<source>Entry %1 not found.</source>
@ -4475,7 +4450,7 @@ Available commands:
</message>
<message>
<source>Entry with path %1 has no TOTP set up.</source>
<translation type="unfinished"/>
<translation>У записи с путём %1 не настроен TOTP.</translation>
</message>
<message>
<source>Entry&apos;s current TOTP copied to the clipboard!</source>
@ -4487,7 +4462,7 @@ Available commands:
</message>
<message numerus="yes">
<source>Clearing the clipboard in %1 second(s)...</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>Очищение буфера обмена через %1 секунду...</numerusform><numerusform>Очищение буфера обмена через %1 секунды..</numerusform><numerusform>Очищение буфера обмена через %1 секунд...</numerusform><numerusform>Очищение буфера обмена через %1 секунд(у, ы)...</numerusform></translation>
</message>
<message>
<source>Clipboard cleared!</source>
@ -4495,7 +4470,7 @@ Available commands:
</message>
<message>
<source>Silence password prompt and other secondary outputs.</source>
<translation type="unfinished"/>
<translation>Заглушить запрос пароля и другие второстепенные выводы.</translation>
</message>
<message>
<source>count</source>
@ -4512,7 +4487,7 @@ Available commands:
</message>
<message>
<source>Not changing any field for entry %1.</source>
<translation type="unfinished"/>
<translation>Не меняются какие-либо поля для записи %1.</translation>
</message>
<message>
<source>Enter new password for entry: </source>
@ -4536,11 +4511,11 @@ Available commands:
</message>
<message>
<source>Log10 %1</source>
<translation type="unfinished"/>
<translation>Log10 %1</translation>
</message>
<message>
<source>Multi-word extra bits %1</source>
<translation type="unfinished"/>
<translation>Дополнительные биты мультислова %1</translation>
</message>
<message>
<source>Type: Bruteforce</source>
@ -4624,7 +4599,7 @@ Available commands:
</message>
<message>
<source>*** Password length (%1) != sum of length of parts (%2) ***</source>
<translation type="unfinished"/>
<translation>*** Длина пароля (%1) != сумма длин частей (%2) ***</translation>
</message>
<message>
<source>Failed to load key file %1: %2</source>
@ -4701,7 +4676,8 @@ Available commands:
<message>
<source>Error reading merge file:
%1</source>
<translation type="unfinished"/>
<translation>Ошибка при чтении файла слияния:
%1</translation>
</message>
<message>
<source>Unable to save database to file : %1</source>
@ -4729,7 +4705,7 @@ Available commands:
</message>
<message>
<source>No program defined for clipboard manipulation</source>
<translation type="unfinished"/>
<translation>Не задана программа для манипуляции буфером обмена</translation>
</message>
<message>
<source>Unable to start program %1</source>
@ -4815,11 +4791,11 @@ Available commands:
</message>
<message>
<source>Creating KeyFile %1 failed: %2</source>
<translation type="unfinished"/>
<translation>Создание ключевого файла %1 не удалось: %2</translation>
</message>
<message>
<source>Loading KeyFile %1 failed: %2</source>
<translation type="unfinished"/>
<translation>Загрузка ключевого файла %1 не удалась: %2</translation>
</message>
<message>
<source>Remove an entry from the database.</source>
@ -4877,6 +4853,10 @@ Available commands:
<source>Database password: </source>
<translation>Пароль базы данных: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -4951,15 +4931,15 @@ Available commands:
<name>SearchHelpWidget</name>
<message>
<source>Search Help</source>
<translation type="unfinished"/>
<translation>Искать в справке</translation>
</message>
<message>
<source>Search terms are as follows: [modifiers][field:][&quot;]term[&quot;]</source>
<translation type="unfinished"/>
<translation>Поисковые выражения выглядят следующим образом: [модификаторы][поле:][&quot;]выражение[&quot;]</translation>
</message>
<message>
<source>Every search term must match (ie, logical AND)</source>
<translation type="unfinished"/>
<translation>Каждое поисковое выражение должно иметь соответствие (т.е. логическое И)</translation>
</message>
<message>
<source>Modifiers</source>
@ -4967,15 +4947,15 @@ Available commands:
</message>
<message>
<source>exclude term from results</source>
<translation type="unfinished"/>
<translation>исключить выражение из результатов</translation>
</message>
<message>
<source>match term exactly</source>
<translation type="unfinished"/>
<translation>соответствовать выражению в точности</translation>
</message>
<message>
<source>use regex in term</source>
<translation type="unfinished"/>
<translation>использовать регулярные выражения в поисковых</translation>
</message>
<message>
<source>Fields</source>
@ -4983,19 +4963,19 @@ Available commands:
</message>
<message>
<source>Term Wildcards</source>
<translation type="unfinished"/>
<translation>Шаблоны для выражений</translation>
</message>
<message>
<source>match anything</source>
<translation type="unfinished"/>
<translation>соответствие всему</translation>
</message>
<message>
<source>match one</source>
<translation type="unfinished"/>
<translation>соответствие одному</translation>
</message>
<message>
<source>logical OR</source>
<translation type="unfinished"/>
<translation>логическое ИЛИ</translation>
</message>
<message>
<source>Examples</source>
@ -5018,12 +4998,12 @@ Available commands:
</message>
<message>
<source>Search Help</source>
<translation type="unfinished"/>
<translation>Искать в справке</translation>
</message>
<message>
<source>Search (%1)...</source>
<comment>Search placeholder text, %1 is the keyboard shortcut</comment>
<translation type="unfinished"/>
<translation>Поиск (%1)...</translation>
</message>
<message>
<source>Case sensitive</source>
@ -5034,23 +5014,23 @@ Available commands:
<name>SettingsWidgetKeeShare</name>
<message>
<source>Active</source>
<translation type="unfinished"/>
<translation>Активный</translation>
</message>
<message>
<source>Allow export</source>
<translation type="unfinished"/>
<translation>Разрешить экспорт</translation>
</message>
<message>
<source>Allow import</source>
<translation type="unfinished"/>
<translation>Разрешить импорт</translation>
</message>
<message>
<source>Own certificate</source>
<translation type="unfinished"/>
<translation>Собственный сертификат</translation>
</message>
<message>
<source>Fingerprint:</source>
<translation type="unfinished"/>
<translation>Отпечаток:</translation>
</message>
<message>
<source>Certificate:</source>
@ -5058,7 +5038,7 @@ Available commands:
</message>
<message>
<source>Signer</source>
<translation type="unfinished"/>
<translation>Подписчик</translation>
</message>
<message>
<source>Key:</source>
@ -5070,27 +5050,27 @@ Available commands:
</message>
<message>
<source>Import</source>
<translation>Импорт</translation>
<translation>Импортировать</translation>
</message>
<message>
<source>Export</source>
<translation type="unfinished"/>
<translation>Экспортировать</translation>
</message>
<message>
<source>Imported certificates</source>
<translation type="unfinished"/>
<translation>Импортированные сертификаты</translation>
</message>
<message>
<source>Trust</source>
<translation type="unfinished"/>
<translation>Доверять</translation>
</message>
<message>
<source>Ask</source>
<translation type="unfinished"/>
<translation>Запросить</translation>
</message>
<message>
<source>Untrust</source>
<translation type="unfinished"/>
<translation>Не доверять</translation>
</message>
<message>
<source>Remove</source>
@ -5114,24 +5094,24 @@ Available commands:
</message>
<message>
<source>Trusted</source>
<translation type="unfinished"/>
<translation>Надёжный</translation>
</message>
<message>
<source>Untrusted</source>
<translation type="unfinished"/>
<translation>Ненадёжный</translation>
</message>
<message>
<source>Unknown</source>
<translation type="unfinished"/>
<translation>Неизвестен</translation>
</message>
<message>
<source>key.share</source>
<comment>Filetype for KeeShare key</comment>
<translation type="unfinished"/>
<translation>key.share</translation>
</message>
<message>
<source>KeeShare key file</source>
<translation type="unfinished"/>
<translation>Ключевой файл KeeShare</translation>
</message>
<message>
<source>All files</source>
@ -5139,19 +5119,18 @@ Available commands:
</message>
<message>
<source>Select path</source>
<translation type="unfinished"/>
<translation>Выберите путь</translation>
</message>
<message>
<source>Exporting changed certificate</source>
<translation type="unfinished"/>
<translation>Экспортирование изменённого сертификата</translation>
</message>
<message>
<source>The exported certificate is not the same as the one in use. Do you want to export the current certificate?</source>
<translation type="unfinished"/>
<translation>Экспортированный сертификат не такой же, как сертификат, который используется. Вы хотите экспортировать текущий сертификат?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5159,19 +5138,15 @@ Available commands:
<name>ShareObserver</name>
<message>
<source>Import from container without signature</source>
<translation type="unfinished"/>
<translation>Импортировать из контейнера без подписи</translation>
</message>
<message>
<source>We cannot verify the source of the shared container because it is not signed. Do you really want to import from %1?</source>
<translation type="unfinished"/>
<translation>Мы не можем проверить источник коллективного контейнера, потому что он не подписан. Вы действительно хотите импортировать из %1?</translation>
</message>
<message>
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
<translation>Импортировать из контейнера с сертификатом</translation>
</message>
<message>
<source>Not this time</source>
@ -5191,11 +5166,11 @@ Available commands:
</message>
<message>
<source>Import from %1 failed (%2)</source>
<translation type="unfinished"/>
<translation>Импорт из %1 не удался (%2)</translation>
</message>
<message>
<source>Import from %1 successful (%2)</source>
<translation type="unfinished"/>
<translation>Импорт из %1 успешен (%2)</translation>
</message>
<message>
<source>Imported from %1</source>
@ -5249,14 +5224,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation>Не удалось записать Экспорт контейнера (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Не удалось вставить подпись (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Не удалось встроить базу данных (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Перезапись неподписанного общего ресурса не поддерживается - экспорт запрещен</translation>
@ -5281,6 +5248,34 @@ Available commands:
<source>Export to %1</source>
<translation>Экспорт в %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>Вы хотите довериться %1 с отпечатком %2 из %3? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>
@ -5467,7 +5462,7 @@ Available commands:
</message>
<message>
<source>&lt;p&gt;If you own a &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt;, you can use it for additional security.&lt;/p&gt;&lt;p&gt;The YubiKey requires one of its slots to be programmed as &lt;a href=&quot;https://www.yubico.com/products/services-software/personalization-tools/challenge-response/&quot;&gt;HMAC-SHA1 Challenge-Response&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
<translation>&lt;p&gt;Если Вы владееете &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt;, Вы можете использовать его для дополнительной безопасности.&lt;/p&gt;&lt;p&gt;YubiKey требует, чтобы один из его слотов был запрограммирован как &lt;a href=&quot;https://www.yubico.com/products/services-software/personalization-tools/challenge-response/&quot;&gt; вызов-ответ HMAC-SHA1&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>No YubiKey detected, please ensure it&apos;s plugged in.</source>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopírovať do schránky</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Revízia %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Distribúcia %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Knižnice:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operačný systém: %1
Architektúra CPU: %2
Jadro: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Zapnuté rozšírenia:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Správcovia projektu:</translation>
@ -69,50 +45,6 @@ Jadro: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Špeciálne poďakovanie od tímu KeePassXC patrí debfx za vytvorenie pôvodného KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Verzia %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Typ zostavenia: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Automatické vypĺňanie</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Integrácia prehliadača</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Agent SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation>Žiadny</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (podpísané a nepodpísané zdieľanie)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (len podpísané zdieľanie)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (len nepodpísané zdieľanie)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Prosím, vyberte správnu databázu na uloženie prihlasovacích údajov.</trans
<source>Select custom proxy location</source>
<translation>Zvoliť vlastné umiestnenie proxy</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Prepáčte, ale KeePassXC-Prehliadač nie je v súčasnosti podporovaný pre vydania Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Aby fungovala integrácia do prehliadača, je potrebný KeePassXC-Browser. &lt;br /&gt;Stiahnuť pre %1 a %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -685,6 +609,18 @@ Prosím, vyberte správnu databázu na uloženie prihlasovacích údajov.</trans
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Nepýtať povolenie na HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -758,9 +694,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -922,6 +868,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1667,6 +1617,10 @@ Vypnúť bezpečné ukladanie a skúsiť znova?</translation>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2104,6 +2058,22 @@ Vypnúť bezpečné ukladanie a skúsiť znova?</translation>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation>Vymazať</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2575,14 +2545,6 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov.</translation
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3176,6 +3138,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3821,10 +3799,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4858,6 +4832,10 @@ Dostupné príkazy:
<source>Database password: </source>
<translation>Heslo databázy:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5131,8 +5109,7 @@ Dostupné príkazy:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5150,10 +5127,6 @@ Dostupné príkazy:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5230,14 +5203,6 @@ Dostupné príkazy:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5262,6 +5227,34 @@ Dostupné príkazy:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Kopiera till urklipp</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Ändring: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Utdelning: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Arkiv:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Operativsystem: %1
Processorarkitektur: %2
Kärna: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Aktiverade tillägg:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Projekt Ansvariga:</translation>
@ -69,50 +45,6 @@ Kärna: %3 %4</translation>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Ett särskilt tack från teamet bakom KeePassXC riktas till debfx som skapade den ursprungliga KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Build Type: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Autoskriv</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Webbläsarintegration</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH Agent</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Ingen</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (signerad och osignerad delning)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (endast signerad delning)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (endast osignerad delning)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<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>
<translation>Vi ber om ursäkt, KeePassXC-Browser stödjer inte Snap-releaser för tillfället.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Browser</translation>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -753,9 +689,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -918,6 +864,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1654,6 +1604,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2091,6 +2045,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation>Välj fil för import/export</translation>
</message>
<message>
<source>Clear</source>
<translation>Rensa</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2560,14 +2530,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[tom]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3157,6 +3119,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3799,10 +3777,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4832,6 +4806,10 @@ Tillgängliga kommandon:
<source>Database password: </source>
<translation>Databaslösenord:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5105,8 +5083,7 @@ Tillgängliga kommandon:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5124,10 +5101,6 @@ Tillgängliga kommandon:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation>Inte denna gång</translation>
@ -5204,14 +5177,6 @@ Tillgängliga kommandon:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5236,6 +5201,34 @@ Tillgängliga kommandon:
<source>Export to %1</source>
<translation>Exportera till %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Panoya kopyala</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Düzeltme: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Dağıtım: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Kütüphaneler:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>İşletim sistemi: %1
MİB mimarisi: %2
Çekirdek: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Etkin eklentiler:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Proje Sahipleri:</translation>
@ -69,50 +45,6 @@ MİB mimarisi: %2
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>KeePassXC ekibinden özel teşekkürler, özgün KeePassX&apos;i yaptığı için debfx&apos;e gider.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Sürüm %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Yapı: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Oto-Yazım</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Tarayıcı Bütünleşmesi</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH Aracısı</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Yok</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (imzalı ve imzasız paylaşım)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (sadece imzalanmış paylaşım)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (sadece imzasız paylaşım)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç.</translat
<source>Select custom proxy location</source>
<translation>Özel proxy konumunu seçin</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Üzgünüz, ancak şu anda Snap yayınları için KeePassXC-Tarayıcı desteklenmiyor.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Tarayıcı tarayıcı entegrasyonunun çalışması için gereklidir. &lt;br /&gt; Şunları indirin %1 ve %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor Tarayıcı</translation>
@ -685,6 +609,18 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç.</translat
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>HTTP ve Temel Kimlik Doğrulama için izin isteme</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: Eski tarayıcı entegrasyon ayarları tespit edildi</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Eski tarayıcı bütünleşmesi ayarları tespit edildi.
Ayarları en son standarda yükseltmek ister misiniz?
Tarayıcı eklentisiyle uyumluluğu korumak için bu gereklidir.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ Tarayıcı eklentisiyle uyumluluğu korumak için bu gereklidir.</translation>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Dosya salt okunur kipinde ıldığı için yazılamıyor.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi?</translatio
<source>Database was not modified by merge operation.</source>
<translation>Veritabanı birleştirme işlemi tarafından değiştirilmedi.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2118,6 +2070,22 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi?</translatio
<source>Select import/export file</source>
<translation>Aktarma dosyasını seç içe/dışa</translation>
</message>
<message>
<source>Clear</source>
<translation>Temizle</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2592,14 +2560,6 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir.</translation>
<translation>[boş]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3195,6 +3155,22 @@ Satır %2, sütun %3</translation>
<source>Synchronize with</source>
<translation>Şununla eşitle</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3845,10 +3821,6 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Parola, veritabanınızın güvenliğini sağlamak için birincil yöntemdir.&lt;/p&gt;&lt;p&gt;Güçlü parolalar uzun ve benzersizdir. KeePassXC sizin için bir tane üretebilir.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Parola boş olamaz.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Parolalar uyuşmuyor.</translation>
@ -4885,6 +4857,10 @@ Kullanılabilir komutlar:
<source>Database password: </source>
<translation>Veritabanı parolası:</translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5158,9 +5134,8 @@ Kullanılabilir komutlar:
<translation>Aktarılan sertifika kullanılan sertifika ile aynı değil. Mevcut sertifikayı vermek aktarmak musunuz?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5177,10 +5152,6 @@ Kullanılabilir komutlar:
<source>Import from container with certificate</source>
<translation>Sertifikayı kapsayıcıdan içe aktar</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>%3&apos; ten %2 parmak iziyle %1 e güveniyor musunuz?</translation>
</message>
<message>
<source>Not this time</source>
<translation>Bu sefer değil</translation>
@ -5257,14 +5228,6 @@ Kullanılabilir komutlar:
<source>Could not write export container (%1)</source>
<translation>Dışa aktarma kapsayıcısı (%1) yazılamadı</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>İmza gömülemedi (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Veritabanı gömülemedi (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>İmzalanmamış paylaşım kapsayıcısının üzerine yazma desteklenmiyor -dışa aktarma engellendi</translation>
@ -5289,6 +5252,34 @@ Kullanılabilir komutlar:
<source>Export to %1</source>
<translation>%1&apos;e aktar</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation>%3&apos;ten %2 parmak izi ile %1&apos;e güvenmek ister misiniz? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>Скопіювати в кишеню</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>Ревізія: %1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>Розподіл: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation>Бібліотеки:</translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>Операційна система: %1
Архітектура ЦП: %2
Ядро: %3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation>Увімкнені розширення:</translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation>Супровідники проекту:</translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</source>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>Команда KeePassXC щиро дякує debfx за створення первісної версії KeePassX.</translation>
</message>
<message>
<source>Version %1</source>
<translation>Версія %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>Тип збірки: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation>Автозаповнення</translation>
</message>
<message>
<source>Browser Integration</source>
<translation>Сполучення з переглядачем</translation>
</message>
<message>
<source>SSH Agent</source>
<translation>Посередник SSH</translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation>Відсутні</translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare (підписане і непідписане спільне використання)</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare (тільки підписане спільне використання)</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare (тільки непідписане спільне використання)</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation>Вибрати власне розташування посередника</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>Вибачте, але KeePassXC-Переглядач поки що не працює у версіях Snap.</translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>Для сполучення з переглядачем необхідний KeePassXC-Browser. &lt;br /&gt;Завантажте його для %1 та %2.</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>Переглядач &amp;Tor</translation>
@ -685,6 +609,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation>Не запитувати дозвіл для HTTP &amp;Basic Auth</translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC: знайдено застаріле налаштування сполучення з переглядачами</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>Знайдено застаріле налаштування сполучення з переглядачами.
Бажаєте оновити налаштування згідно з найновішими стандартами?
Це необхідно для підтримання сумісності з модулем переглядача.</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation>Неможливо записати файл, оскільки він відкритий у режимі читання.</translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1681,6 +1629,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation>Об&apos;єднання не змінило сховище.</translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2118,6 +2070,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation>Вибрати файл імпорту/експорту</translation>
</message>
<message>
<source>Clear</source>
<translation>Очистити</translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2593,14 +2561,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[порожня]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3195,6 +3155,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation>Узгодити з</translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3844,10 +3820,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;Пароль є основним засобом для убезпечення Вашого сховища.&lt;/p&gt;&lt;p&gt;Найкращі паролі мають бути довгими та унікальними. KeePassXC може створити такий для Вас.&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation>Пароль не може бути пустим.</translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation>Паролі не збігаються.</translation>
@ -4884,6 +4856,10 @@ Available commands:
<source>Database password: </source>
<translation>Пароль сховища: </translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5157,9 +5133,8 @@ Available commands:
<translation>Експортований сертифікат не відповідає чинному сертифікатові. Бажаєте експортувати чинний сертифікат?</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5176,10 +5151,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation>Імпортування з оболонки, що має сертифікат</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation>Довірити %1, що має відбиток %2 з %3</translation>
</message>
<message>
<source>Not this time</source>
<translation>Не зараз</translation>
@ -5256,14 +5227,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation>Неможливо записати експортну оболонку (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation>Неможливо вкласти підпис (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation>Неможливо вкласти сховище (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>Перезаписування непідписаної спільної оболонки не підтримане експортування відвернуте</translation>
@ -5288,6 +5251,34 @@ Available commands:
<source>Export to %1</source>
<translation>Експортування %1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation></translation>
</message>
<message>
<source>Revision: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Libraries:</source>
<translation></translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>%1
CPU %2
%3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation></translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation></translation>
@ -69,50 +45,6 @@ CPU 架构:%2
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>KeePassXC debfx KeePassX</translation>
</message>
<message>
<source>Version %1</source>
<translation> %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation> %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation></translation>
</message>
<message>
<source>Browser Integration</source>
<translation></translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH </translation>
</message>
<message>
<source>YubiKey</source>
<translation>YubiKey</translation>
</message>
<message>
<source>TouchID</source>
<translation>TouchID</translation>
</message>
<message>
<source>None</source>
<translation></translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation>KeeShare ()</translation>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation>KeeShare ()</translation>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation>KeeShare ()</translation>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -656,14 +588,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation></translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation>KeePassXC-Browser Snap </translation>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation>KeePassXC-Browser才能工作&lt;br /&gt; %1 %2</translation>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation>&amp;Tor浏览器</translation>
@ -685,6 +609,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation> http </translation>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -759,12 +695,20 @@ Moved %2 keys to custom data.</source>
<translation>KeePassXC</translation>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<translation>
</translation>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -926,6 +870,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation></translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1680,6 +1628,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation></translation>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2117,6 +2069,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation></translation>
</message>
<message>
<source>Clear</source>
<translation></translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2588,14 +2556,6 @@ This may cause the affected plugins to malfunction.</source>
<translation>[]</translation>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3189,6 +3149,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation></translation>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3839,10 +3815,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;/p&gt;&lt;p&gt; KeePassXC&lt;/p&gt;</translation>
</message>
<message>
<source>Password cannot be empty.</source>
<translation></translation>
</message>
<message>
<source>Passwords do not match.</source>
<translation></translation>
@ -4879,6 +4851,10 @@ Available commands:
<source>Database password: </source>
<translation></translation>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5152,9 +5128,8 @@ Available commands:
<translation>使</translation>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<translation>%1.%2</translation>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
<context>
@ -5171,10 +5146,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation></translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation> %1 , %3%2</translation>
</message>
<message>
<source>Not this time</source>
<translation></translation>
@ -5251,14 +5222,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation> (%1)</translation>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation>-</translation>
@ -5283,6 +5246,34 @@ Available commands:
<source>Export to %1</source>
<translation>%1</translation>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation> %1, %3 %2 ? {1 ?} {2 ?}</translation>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -37,30 +37,6 @@
<source>Copy to clipboard</source>
<translation>簿</translation>
</message>
<message>
<source>Revision: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Distribution: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Libraries:</source>
<translation></translation>
</message>
<message>
<source>Operating system: %1
CPU architecture: %2
Kernel: %3 %4</source>
<translation>%1
%2
%3 %4</translation>
</message>
<message>
<source>Enabled extensions:</source>
<translation></translation>
</message>
<message>
<source>Project Maintainers:</source>
<translation></translation>
@ -69,50 +45,6 @@ Kernel: %3 %4</source>
<source>Special thanks from the KeePassXC team go to debfx for creating the original KeePassX.</source>
<translation>KeePassXC debfx KeePassX</translation>
</message>
<message>
<source>Version %1</source>
<translation> %1</translation>
</message>
<message>
<source>Build Type: %1</source>
<translation>: %1</translation>
</message>
<message>
<source>Auto-Type</source>
<translation></translation>
</message>
<message>
<source>Browser Integration</source>
<translation></translation>
</message>
<message>
<source>SSH Agent</source>
<translation>SSH </translation>
</message>
<message>
<source>YubiKey</source>
<translation type="unfinished"/>
</message>
<message>
<source>TouchID</source>
<translation type="unfinished"/>
</message>
<message>
<source>None</source>
<translation></translation>
</message>
<message>
<source>KeeShare (signed and unsigned sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only signed sharing)</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeeShare (only unsigned sharing)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>AgentSettingsWidget</name>
@ -655,14 +587,6 @@ Please select the correct database for saving credentials.</source>
<source>Select custom proxy location</source>
<translation></translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2.</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Tor Browser</source>
<translation type="unfinished"/>
@ -684,6 +608,18 @@ Please select the correct database for saving credentials.</source>
<extracomment>An extra HTTP Basic Auth setting</extracomment>
<translation type="unfinished"/>
</message>
<message>
<source>Due to Snap sandboxing, you must run a script to enable browser integration.&lt;br /&gt;You can obtain this script from %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Please see special instructions for browser extension use below</source>
<translation type="unfinished"/>
</message>
<message>
<source>KeePassXC-Browser is needed for the browser integration to work. &lt;br /&gt;Download it for %1 and %2. %3</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -757,9 +693,19 @@ Moved %2 keys to custom data.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Legacy browser integration settings have been detected.
Do you want to upgrade the settings to the latest standard?
This is necessary to maintain compatibility with the browser plugin.</source>
<source>KeePassXC: Create a new group</source>
<translation type="unfinished"/>
</message>
<message>
<source>A request for creating a new group &quot;%1&quot; has been received.
Do you want to create this group?
</source>
<translation type="unfinished"/>
</message>
<message>
<source>Your KeePassXC-Browser settings need to be moved into the database settings.
This is necessary to maintain your current browser connections.
Would you like to migrate your existing settings now?</source>
<translation type="unfinished"/>
</message>
</context>
@ -921,6 +867,10 @@ This is necessary to maintain compatibility with the browser plugin.</source>
<source>File cannot be written as it is opened in read-only mode.</source>
<translation></translation>
</message>
<message>
<source>Key not transformed. This is a bug, please report it to the developers!</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DatabaseOpenDialog</name>
@ -1662,6 +1612,10 @@ Disable safe saves and try again?</source>
<source>Database was not modified by merge operation.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Shared group...</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditEntryWidget</name>
@ -2099,6 +2053,22 @@ Disable safe saves and try again?</source>
<source>Select import/export file</source>
<translation type="unfinished"/>
</message>
<message>
<source>Clear</source>
<translation></translation>
</message>
<message>
<source>The export container %1 is already referenced.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The import container %1 is already imported.</source>
<translation type="unfinished"/>
</message>
<message>
<source>The container %1 imported and export by different groups.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>EditGroupWidgetMain</name>
@ -2569,14 +2539,6 @@ This may cause the affected plugins to malfunction.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GroupModel</name>
<message>
<source>%1</source>
<comment>Template for name without annotation</comment>
<translation>%1</translation>
</message>
</context>
<context>
<name>HostInstaller</name>
<message>
@ -3169,6 +3131,22 @@ Line %2, column %3</source>
<source>Synchronize with</source>
<translation type="unfinished"/>
</message>
<message>
<source>Disabled share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Import from share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Export to share %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Synchronize with share %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeyComponentWidget</name>
@ -3813,10 +3791,6 @@ Expect some bugs and minor issues, this version is not meant for production use.
<source>&lt;p&gt;A password is the primary method for securing your database.&lt;/p&gt;&lt;p&gt;Good passwords are long and unique. KeePassXC can generate one for you.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<source>Password cannot be empty.</source>
<translation type="unfinished"/>
</message>
<message>
<source>Passwords do not match.</source>
<translation type="unfinished"/>
@ -4848,6 +4822,10 @@ Available commands:
<source>Database password: </source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot create new group</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>QtIOCompressor</name>
@ -5121,8 +5099,7 @@ Available commands:
<translation type="unfinished"/>
</message>
<message>
<source>%1.%2</source>
<comment>Template for KeeShare key file</comment>
<source>Signer:</source>
<translation type="unfinished"/>
</message>
</context>
@ -5140,10 +5117,6 @@ Available commands:
<source>Import from container with certificate</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3</source>
<translation type="unfinished"/>
</message>
<message>
<source>Not this time</source>
<translation type="unfinished"/>
@ -5220,14 +5193,6 @@ Available commands:
<source>Could not write export container (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Overwriting unsigned share container is not supported - export prevented</source>
<translation type="unfinished"/>
@ -5252,6 +5217,34 @@ Available commands:
<source>Export to %1</source>
<translation type="unfinished"/>
</message>
<message>
<source>Do you want to trust %1 with the fingerprint of %2 from %3?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Multiple import source path to %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Conflicting export target path %1 in %2</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed signature: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not open file to write (%1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Could not embed database: Could not write file (%1)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>TotpDialog</name>

View File

@ -31,9 +31,10 @@ parts:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=/usr
- -DKEEPASSXC_DIST_TYPE=Snap
- -DKEEPASSXC_BUILD_TYPE=PreRelease
- -DKEEPASSXC_BUILD_TYPE=Release
- -DWITH_TESTS=OFF
- -DWITH_XC_ALL=ON
- -DWITH_XC_KEESHARE_SECURE=ON
build-packages:
- g++
- libgcrypt20-dev
@ -50,6 +51,7 @@ parts:
- libsodium-dev
- libargon2-0-dev
- libqrencode-dev
- libquazip5-dev
stage-packages:
- dbus
- qttranslations5-l10n # common translations
@ -60,6 +62,9 @@ parts:
- libxtst6
- libqt5x11extras5
- libqt5svg5
- libqrencode3
- libqt5concurrent5
- libquazip5-1
- libusb-1.0-0
- qtwayland5
override-build: |
@ -71,3 +76,24 @@ parts:
- -opt
after: [desktop-qt5]
desktop-qt5:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt5"]
build-packages:
- qtbase5-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
- ttf-ubuntu-font-family
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt5gui5
- libgdk-pixbuf2.0-0
- libqt5svg5 # for loading icon themes which are svg
- try: [appmenu-qt5] # not available on core18
- locales-all

View File

@ -21,11 +21,11 @@
#include "NativeMessagingBase.h"
#include "config-keepassx.h"
#include <QJsonDocument>
#include <QJsonParseError>
#include <sodium.h>
#include <sodium/crypto_box.h>
#include <sodium/randombytes.h>
#include <QJsonDocument>
#include <QJsonParseError>
BrowserAction::BrowserAction(BrowserService& browserService)
: m_mutex(QMutex::Recursive)
@ -88,6 +88,8 @@ QJsonObject BrowserAction::handleAction(const QJsonObject& json)
return handleLockDatabase(json, action);
} else if (action.compare("get-database-groups", Qt::CaseSensitive) == 0) {
return handleGetDatabaseGroups(json, action);
} else if (action.compare("create-new-group", Qt::CaseSensitive) == 0) {
return handleCreateNewGroup(json, action);
}
// Action was not recognized
@ -407,6 +409,42 @@ QJsonObject BrowserAction::handleGetDatabaseGroups(const QJsonObject& json, cons
return buildResponse(action, message, newNonce);
}
QJsonObject BrowserAction::handleCreateNewGroup(const QJsonObject& json, const QString& action)
{
const QString hash = getDatabaseHash();
const QString nonce = json.value("nonce").toString();
const QString encrypted = json.value("message").toString();
QMutexLocker locker(&m_mutex);
if (!m_associated) {
return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED);
}
const QJsonObject decrypted = decryptMessage(encrypted, nonce);
if (decrypted.isEmpty()) {
return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE);
}
QString command = decrypted.value("action").toString();
if (command.isEmpty() || command.compare("create-new-group", Qt::CaseSensitive) != 0) {
return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION);
}
QString group = decrypted.value("groupName").toString();
const QJsonObject newGroup = m_browserService.createNewGroup(group);
if (newGroup.isEmpty() || newGroup["name"].toString().isEmpty() || newGroup["uuid"].toString().isEmpty()) {
return getErrorReply(action, ERROR_KEEPASS_CANNOT_CREATE_NEW_GROUP);
}
const QString newNonce = incrementNonce(nonce);
QJsonObject message = buildMessage(newNonce);
message["name"] = newGroup["name"];
message["uuid"] = newGroup["uuid"];
return buildResponse(action, message, newNonce);
}
QJsonObject BrowserAction::getErrorReply(const QString& action, const int errorCode) const
{
QJsonObject response;
@ -468,6 +506,8 @@ QString BrowserAction::getErrorMessage(const int errorCode) const
return QObject::tr("No logins found");
case ERROR_KEEPASS_NO_GROUPS_FOUND:
return QObject::tr("No groups found");
case ERROR_KEEPASS_CANNOT_CREATE_NEW_GROUP:
return QObject::tr("Cannot create new group");
default:
return QObject::tr("Unknown error");
}

View File

@ -46,7 +46,8 @@ class BrowserAction : public QObject
ERROR_KEEPASS_EMPTY_MESSAGE_RECEIVED = 13,
ERROR_KEEPASS_NO_URL_PROVIDED = 14,
ERROR_KEEPASS_NO_LOGINS_FOUND = 15,
ERROR_KEEPASS_NO_GROUPS_FOUND = 16
ERROR_KEEPASS_NO_GROUPS_FOUND = 16,
ERROR_KEEPASS_CANNOT_CREATE_NEW_GROUP = 17
};
public:
@ -66,6 +67,7 @@ private:
QJsonObject handleSetLogin(const QJsonObject& json, const QString& action);
QJsonObject handleLockDatabase(const QJsonObject& json, const QString& action);
QJsonObject handleGetDatabaseGroups(const QJsonObject& json, const QString& action);
QJsonObject handleCreateNewGroup(const QJsonObject& json, const QString& action);
QJsonObject buildMessage(const QString& nonce) const;
QJsonObject buildResponse(const QString& action, const QJsonObject& message, const QString& nonce);

View File

@ -32,13 +32,24 @@ BrowserOptionDialog::BrowserOptionDialog(QWidget* parent)
{
m_ui->setupUi(this);
// clang-format off
QString snapInstructions;
#if defined(KEEPASSXC_DIST_SNAP)
snapInstructions = "<br /><br />" +
tr("Due to Snap sandboxing, you must run a script to enable browser integration."
"<br />"
"You can obtain this script from %1")
.arg("<a href=\"https://keepassxc.org/download#linux\">https://keepassxc.org</a>");
#endif
m_ui->extensionLabel->setOpenExternalLinks(true);
m_ui->extensionLabel->setText(
tr("KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2.")
tr("KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3")
.arg("<a href=\"https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/\">Firefox</a>",
"<a "
"href=\"https://chrome.google.com/webstore/detail/keepassxc-browser/"
"oboonakemofpalcgghocfoadofidjkkk\">Google Chrome / Chromium / Vivaldi</a>"));
"<a href=\"https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk\">"
"Google Chrome / Chromium / Vivaldi</a>",
snapInstructions));
// clang-format on
m_ui->scriptWarningWidget->setVisible(false);
m_ui->scriptWarningWidget->setAutoHideTimeout(-1);
@ -119,11 +130,18 @@ void BrowserOptionDialog::loadSettings()
m_ui->supportBrowserProxy->setChecked(true);
m_ui->supportBrowserProxy->setEnabled(false);
#elif defined(KEEPASSXC_DIST_SNAP)
m_ui->enableBrowserSupport->setChecked(false);
m_ui->enableBrowserSupport->setEnabled(false);
m_ui->browserGlobalWarningWidget->showMessage(
tr("We're sorry, but KeePassXC-Browser is not supported for Snap releases at the moment."),
MessageWidget::Warning);
// Disable settings that will not work
m_ui->supportBrowserProxy->setChecked(true);
m_ui->supportBrowserProxy->setEnabled(false);
m_ui->useCustomProxy->setChecked(false);
m_ui->useCustomProxy->setEnabled(false);
m_ui->browsersGroupBox->setVisible(false);
m_ui->browsersGroupBox->setEnabled(false);
m_ui->updateBinaryPath->setChecked(false);
m_ui->updateBinaryPath->setEnabled(false);
// Show notice to user
m_ui->browserGlobalWarningWidget->showMessage(tr("Please see special instructions for browser extension use below"),
MessageWidget::Warning);
m_ui->browserGlobalWarningWidget->setCloseButtonVisible(false);
m_ui->browserGlobalWarningWidget->setAutoHideTimeout(-1);
#endif

View File

@ -150,7 +150,7 @@ QString BrowserService::getDatabaseRecycleBinUuid()
return recycleBin->uuidToHex();
}
QJsonArray BrowserService::addChildrenToGroup(Group* group)
QJsonArray BrowserService::getChildrenFromGroup(Group* group)
{
QJsonArray groupList;
@ -166,7 +166,7 @@ QJsonArray BrowserService::addChildrenToGroup(Group* group)
QJsonObject jsonGroup;
jsonGroup["name"] = c->name();
jsonGroup["uuid"] = Tools::uuidToHex(c->uuid());
jsonGroup["children"] = addChildrenToGroup(c);
jsonGroup["children"] = getChildrenFromGroup(c);
groupList.push_back(jsonGroup);
}
return groupList;
@ -187,7 +187,7 @@ QJsonObject BrowserService::getDatabaseGroups()
QJsonObject root;
root["name"] = rootGroup->name();
root["uuid"] = Tools::uuidToHex(rootGroup->uuid());
root["children"] = addChildrenToGroup(rootGroup);
root["children"] = getChildrenFromGroup(rootGroup);
QJsonArray groups;
groups.push_back(root);
@ -198,6 +198,84 @@ QJsonObject BrowserService::getDatabaseGroups()
return result;
}
QJsonObject BrowserService::createNewGroup(const QString& groupName)
{
QJsonObject result;
if (thread() != QThread::currentThread()) {
QMetaObject::invokeMethod(this,
"createNewGroup",
Qt::BlockingQueuedConnection,
Q_RETURN_ARG(QJsonObject, result),
Q_ARG(QString, groupName));
return result;
}
auto db = getDatabase();
if (!db) {
return {};
}
Group* rootGroup = db->rootGroup();
if (!rootGroup) {
return {};
}
auto group = rootGroup->findGroupByPath(groupName);
// Group already exists
if (group) {
result["name"] = group->name();
result["uuid"] = Tools::uuidToHex(group->uuid());
return result;
}
auto dialogResult = MessageBox::warning(nullptr,
tr("KeePassXC: Create a new group"),
tr("A request for creating a new group \"%1\" has been received.\n"
"Do you want to create this group?\n")
.arg(groupName),
MessageBox::Yes | MessageBox::No);
if (dialogResult != MessageBox::Yes) {
return result;
}
QString name, uuid;
Group* previousGroup = rootGroup;
auto groups = groupName.split("/");
// Returns the group name based on depth
auto getGroupName = [&](int depth) {
QString gName;
for (int i = 0; i < depth + 1; ++i) {
gName.append((i == 0 ? "" : "/") + groups[i]);
}
return gName;
};
// Create new group(s) always when the path is not found
for (int i = 0; i < groups.length(); ++i) {
QString gName = getGroupName(i);
auto tempGroup = rootGroup->findGroupByPath(gName);
if (!tempGroup) {
Group* newGroup = new Group();
newGroup->setName(groups[i]);
newGroup->setUuid(QUuid::createUuid());
newGroup->setParent(previousGroup);
name = newGroup->name();
uuid = Tools::uuidToHex(newGroup->uuid());
previousGroup = newGroup;
continue;
}
previousGroup = tempGroup;
}
result["name"] = name;
result["uuid"] = uuid;
return result;
}
QString BrowserService::storeKey(const QString& key)
{
QString id;
@ -630,7 +708,7 @@ QList<Entry*> BrowserService::sortEntries(QList<Entry*>& pwEntries, const QStrin
{
QUrl url(entryUrl);
if (url.scheme().isEmpty()) {
url.setScheme("http");
url.setScheme("https");
}
const QString submitUrl = url.toString(QUrl::StripTrailingSlash);
@ -996,12 +1074,13 @@ bool BrowserService::checkLegacySettings()
return false;
}
auto dialogResult = MessageBox::warning(nullptr,
tr("KeePassXC: Legacy browser integration settings detected"),
tr("Legacy browser integration settings have been detected.\n"
"Do you want to upgrade the settings to the latest standard?\n"
"This is necessary to maintain compatibility with the browser plugin."),
MessageBox::Yes | MessageBox::No);
auto dialogResult =
MessageBox::warning(nullptr,
tr("KeePassXC: Legacy browser integration settings detected"),
tr("Your KeePassXC-Browser settings need to be moved into the database settings.\n"
"This is necessary to maintain your current browser connections.\n"
"Would you like to migrate your existing settings now?"),
MessageBox::Yes | MessageBox::No);
return dialogResult == MessageBox::Yes;
}
@ -1034,6 +1113,8 @@ void BrowserService::raiseWindow(const bool force)
m_prevWindowState = WindowState::Minimized;
}
#ifdef Q_OS_MACOS
Q_UNUSED(force);
if (macUtils()->isHidden()) {
m_prevWindowState = WindowState::Hidden;
}

View File

@ -45,6 +45,7 @@ public:
QString getDatabaseRootUuid();
QString getDatabaseRecycleBinUuid();
QJsonObject getDatabaseGroups();
QJsonObject createNewGroup(const QString& groupName);
QString getKey(const QString& id);
void addEntry(const QString& id,
const QString& login,
@ -121,7 +122,7 @@ private:
QString baseDomain(const QString& url) const;
QSharedPointer<Database> getDatabase();
QSharedPointer<Database> selectedDatabase();
QJsonArray addChildrenToGroup(Group* group);
QJsonArray getChildrenFromGroup(Group* group);
bool moveSettingsToCustomData(Entry* entry, const QString& name) const;
int moveKeysToCustomData(Entry* entry, const QSharedPointer<Database>& db) const;
bool checkLegacySettings();

View File

@ -186,7 +186,7 @@ void BrowserSettings::setCustomProxyLocation(const QString& location)
bool BrowserSettings::updateBinaryPath()
{
return config()->get("Browser/UpdateBinaryPath", false).toBool();
return config()->get("Browser/UpdateBinaryPath", true).toBool();
}
void BrowserSettings::setUpdateBinaryPath(bool enabled)

View File

@ -65,6 +65,7 @@ void NativeMessagingBase::newNativeMessage()
EV_SET(ev, fileno(stdin), EVFILT_READ, EV_ADD, 0, 0, nullptr);
if (kevent(fd, ev, 1, nullptr, 0, &ts) == -1) {
m_notifier->setEnabled(false);
::close(fd);
return;
}
@ -81,6 +82,7 @@ void NativeMessagingBase::newNativeMessage()
event.data.fd = 0;
if (epoll_ctl(fd, EPOLL_CTL_ADD, 0, &event) != 0) {
m_notifier->setEnabled(false);
::close(fd);
return;
}
@ -135,7 +137,9 @@ void NativeMessagingBase::sendReply(const QString& reply)
QString NativeMessagingBase::getLocalServerPath() const
{
const QString serverPath = "/kpxc_server";
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
#if defined(KEEPASSXC_DIST_SNAP)
return QProcessEnvironment::systemEnvironment().value("SNAP_COMMON") + serverPath;
#elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
// Use XDG_RUNTIME_DIR instead of /tmp if it's available
QString path = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation);
return path.isEmpty() ? QStandardPaths::writableLocation(QStandardPaths::TempLocation) + serverPath

View File

@ -53,7 +53,7 @@ protected slots:
protected:
virtual void readLength() = 0;
virtual bool readStdIn(const quint32 length) = 0;
void readNativeMessages();
virtual void readNativeMessages();
QString jsonToString(const QJsonObject& json) const;
void sendReply(const QJsonObject& json);
void sendReply(const QString& reply);

View File

@ -32,7 +32,7 @@ class NativeMessagingHost : public NativeMessagingBase
public:
explicit NativeMessagingHost(DatabaseTabWidget* parent = nullptr, const bool enabled = false);
~NativeMessagingHost();
~NativeMessagingHost() override;
int init();
void run();
void stop();

View File

@ -275,6 +275,7 @@ bool Database::writeDatabase(QIODevice* device, QString* error)
return false;
}
QByteArray oldTransformedKey = m_data.transformedMasterKey;
KeePass2Writer writer;
setEmitModified(false);
writer.writeDatabase(device, this);
@ -287,6 +288,15 @@ bool Database::writeDatabase(QIODevice* device, QString* error)
return false;
}
Q_ASSERT(!m_data.transformedMasterKey.isEmpty());
Q_ASSERT(m_data.transformedMasterKey != oldTransformedKey);
if (m_data.transformedMasterKey.isEmpty() || m_data.transformedMasterKey == oldTransformedKey) {
if (error) {
*error = tr("Key not transformed. This is a bug, please report it to the developers!");
}
return false;
}
markAsClean();
return true;
}
@ -307,16 +317,18 @@ bool Database::extract(QByteArray& xmlOutput, QString* error)
/**
* Remove the old backup and replace it with a new one
* backups are named <filename>.old.kdbx
* backups are named <filename>.old.<extension>
*
* @param filePath Path to the file to backup
* @return true on success
*/
bool Database::backupDatabase(const QString& filePath)
{
QString backupFilePath = filePath;
auto re = QRegularExpression("\\.kdbx$|(?<!\\.kdbx)$", QRegularExpression::CaseInsensitiveOption);
backupFilePath.replace(re, ".old.kdbx");
static auto re = QRegularExpression("(\\.[^.]+)$");
auto match = re.match(filePath);
auto backupFilePath = filePath;
backupFilePath = backupFilePath.replace(re, "") + ".old" + match.captured(1);
QFile::remove(backupFilePath);
return QFile::copy(filePath, backupFilePath);
}
@ -512,9 +524,13 @@ void Database::setCompressionAlgorithm(Database::CompressionAlgorithm algo)
* @param key key to set and transform or nullptr to reset the key
* @param updateChangedTime true to update database change time
* @param updateTransformSalt true to update the transform salt
* @param transformKey trigger the KDF after setting the key
* @return true on success
*/
bool Database::setKey(const QSharedPointer<const CompositeKey>& key, bool updateChangedTime, bool updateTransformSalt)
bool Database::setKey(const QSharedPointer<const CompositeKey>& key,
bool updateChangedTime,
bool updateTransformSalt,
bool transformKey)
{
Q_ASSERT(!m_data.isReadOnly);
@ -532,7 +548,9 @@ bool Database::setKey(const QSharedPointer<const CompositeKey>& key, bool update
QByteArray oldTransformedMasterKey = m_data.transformedMasterKey;
QByteArray transformedMasterKey;
if (!key->transform(*m_data.kdf, transformedMasterKey)) {
if (!transformKey) {
transformedMasterKey = oldTransformedMasterKey;
} else if (!key->transform(*m_data.kdf, transformedMasterKey)) {
return false;
}

View File

@ -109,7 +109,8 @@ public:
QSharedPointer<const CompositeKey> key() const;
bool setKey(const QSharedPointer<const CompositeKey>& key,
bool updateChangedTime = true,
bool updateTransformSalt = false);
bool updateTransformSalt = false,
bool transformKey = true);
QByteArray challengeResponseKey() const;
bool challengeMasterSeed(const QByteArray& masterSeed);
bool verifyKey(const QSharedPointer<CompositeKey>& key) const;

View File

@ -926,7 +926,7 @@ QString Entry::resolveReferencePlaceholderRecursive(const QString& placeholder,
Q_ASSERT(m_group);
Q_ASSERT(m_group->database());
const Entry* refEntry = m_group->findEntryBySearchTerm(searchText, searchInType);
const Entry* refEntry = m_group->database()->rootGroup()->findEntryBySearchTerm(searchText, searchInType);
if (refEntry) {
const QString wantedField = match.captured(EntryAttributes::WantedFieldGroupName);

View File

@ -67,6 +67,15 @@ QString EntryAttributes::value(const QString& key) const
return m_attributes.value(key);
}
QList<QString> EntryAttributes::values(const QList<QString>& keys) const
{
QList<QString> values;
for (const QString& key : keys) {
values.append(m_attributes.value(key));
}
return values;
}
bool EntryAttributes::contains(const QString& key) const
{
return m_attributes.contains(key);

View File

@ -36,6 +36,7 @@ public:
bool hasKey(const QString& key) const;
QList<QString> customKeys() const;
QString value(const QString& key) const;
QList<QString> values(const QList<QString>& keys) const;
bool contains(const QString& key) const;
bool containsValue(const QString& value) const;
bool isProtected(const QString& key) const;

View File

@ -28,31 +28,83 @@ EntrySearcher::EntrySearcher(bool caseSensitive)
{
}
/**
* Search group, and its children, by parsing the provided search
* string for search terms.
*
* @param searchString search terms
* @param baseGroup group to start search from, cannot be null
* @param forceSearch ignore group search settings
* @return list of entries that match the search terms
*/
QList<Entry*> EntrySearcher::search(const QString& searchString, const Group* baseGroup, bool forceSearch)
{
Q_ASSERT(baseGroup);
parseSearchTerms(searchString);
return repeat(baseGroup, forceSearch);
}
/**
* Repeat the last search starting from the given group
*
* @param baseGroup group to start search from, cannot be null
* @param forceSearch ignore group search settings
* @return list of entries that match the search terms
*/
QList<Entry*> EntrySearcher::repeat(const Group* baseGroup, bool forceSearch)
{
Q_ASSERT(baseGroup);
QList<Entry*> results;
for (const auto group : baseGroup->groupsRecursive(true)) {
if (forceSearch || group->resolveSearchingEnabled()) {
results.append(searchEntries(searchString, group->entries()));
for (auto* entry : group->entries()) {
if (searchEntryImpl(entry)) {
results.append(entry);
}
}
}
}
return results;
}
/**
* Search provided entries by parsing the search string
* for search terms.
*
* @param searchString search terms
* @param entries list of entries to include in the search
* @return list of entries that match the search terms
*/
QList<Entry*> EntrySearcher::searchEntries(const QString& searchString, const QList<Entry*>& entries)
{
parseSearchTerms(searchString);
return repeatEntries(entries);
}
/**
* Repeat the last search on the given entries
*
* @param entries list of entries to include in the search
* @return list of entries that match the search terms
*/
QList<Entry*> EntrySearcher::repeatEntries(const QList<Entry*>& entries)
{
QList<Entry*> results;
for (Entry* entry : entries) {
if (searchEntryImpl(searchString, entry)) {
for (auto* entry : entries) {
if (searchEntryImpl(entry)) {
results.append(entry);
}
}
return results;
}
/**
* Set the next search to be case sensitive or not
*
* @param state
*/
void EntrySearcher::setCaseSensitive(bool state)
{
m_caseSensitive = state;
@ -63,16 +115,15 @@ bool EntrySearcher::isCaseSensitive()
return m_caseSensitive;
}
bool EntrySearcher::searchEntryImpl(const QString& searchString, Entry* entry)
bool EntrySearcher::searchEntryImpl(Entry* entry)
{
// Pre-load in case they are needed
auto attributes = QStringList(entry->attributes()->keys());
auto attributes_keys = entry->attributes()->customKeys();
auto attributes = QStringList(attributes_keys + entry->attributes()->values(attributes_keys));
auto attachments = QStringList(entry->attachments()->keys());
bool found;
auto searchTerms = parseSearchTerms(searchString);
for (const auto& term : searchTerms) {
for (const auto& term : m_searchTerms) {
switch (term->field) {
case Field::Title:
found = term->regex.match(entry->resolvePlaceholder(entry->title())).hasMatch();
@ -112,10 +163,9 @@ bool EntrySearcher::searchEntryImpl(const QString& searchString, Entry* entry)
return true;
}
QList<QSharedPointer<EntrySearcher::SearchTerm>> EntrySearcher::parseSearchTerms(const QString& searchString)
void EntrySearcher::parseSearchTerms(const QString& searchString)
{
auto terms = QList<QSharedPointer<SearchTerm>>();
m_searchTerms.clear();
auto results = m_termParser.globalMatch(searchString);
while (results.hasNext()) {
auto result = results.next();
@ -165,8 +215,6 @@ QList<QSharedPointer<EntrySearcher::SearchTerm>> EntrySearcher::parseSearchTerms
}
}
terms.append(term);
m_searchTerms.append(term);
}
return terms;
}

View File

@ -31,14 +31,15 @@ public:
explicit EntrySearcher(bool caseSensitive = false);
QList<Entry*> search(const QString& searchString, const Group* baseGroup, bool forceSearch = false);
QList<Entry*> repeat(const Group* baseGroup, bool forceSearch = false);
QList<Entry*> searchEntries(const QString& searchString, const QList<Entry*>& entries);
QList<Entry*> repeatEntries(const QList<Entry*>& entries);
void setCaseSensitive(bool state);
bool isCaseSensitive();
private:
bool searchEntryImpl(const QString& searchString, Entry* entry);
enum class Field
{
Undefined,
@ -59,10 +60,12 @@ private:
bool exclude;
};
QList<QSharedPointer<SearchTerm>> parseSearchTerms(const QString& searchString);
bool searchEntryImpl(Entry* entry);
void parseSearchTerms(const QString& searchString);
bool m_caseSensitive;
QRegularExpression m_termParser;
QList<QSharedPointer<SearchTerm>> m_searchTerms;
friend class TestEntrySearcher;
};

View File

@ -123,6 +123,7 @@ BulkFileWatcher::BulkFileWatcher(QObject* parent)
connect(&m_fileWatchUnblockTimer, SIGNAL(timeout()), this, SLOT(observeFileChanges()));
connect(&m_pendingSignalsTimer, SIGNAL(timeout()), this, SLOT(emitSignals()));
m_fileWatchUnblockTimer.setSingleShot(true);
m_pendingSignalsTimer.setSingleShot(true);
}
void BulkFileWatcher::clear()

View File

@ -1,8 +1,30 @@
/*
* Copyright (C) 2013 Felix Geyer <debfx@fobos.de>
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "OSEventFilter.h"
#include <QByteArray>
#include "autotype/AutoType.h"
#include "gui/MainWindow.h"
#ifdef Q_OS_WIN
#include <windows.h>
#endif
OSEventFilter::OSEventFilter()
{
@ -15,12 +37,18 @@ bool OSEventFilter::nativeEventFilter(const QByteArray& eventType, void* message
#if defined(Q_OS_UNIX)
if (eventType == QByteArrayLiteral("xcb_generic_event_t")) {
#elif defined(Q_OS_WIN)
if (eventType == QByteArrayLiteral("windows_generic_MSG")
|| eventType == QByteArrayLiteral("windows_dispatcher_MSG")) {
auto winmsg = static_cast<MSG*>(message);
if (winmsg->message == WM_QUERYENDSESSION) {
*result = 1;
return true;
} else if (winmsg->message == WM_ENDSESSION) {
getMainWindow()->appExit();
*result = 0;
return true;
} else if (eventType == QByteArrayLiteral("windows_generic_MSG")
|| eventType == QByteArrayLiteral("windows_dispatcher_MSG")) {
#endif
int retCode = autoType()->callEventFilter(message);
return retCode == 1;
return autoType()->callEventFilter(message) == 1;
}
return false;

View File

@ -1,3 +1,21 @@
/*
* Copyright (C) 2013 Felix Geyer <debfx@fobos.de>
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef OSEVENTFILTER_H
#define OSEVENTFILTER_H
#include <QAbstractNativeEventFilter>

View File

@ -84,7 +84,8 @@ int Kdf::benchmark(int msec) const
}
Kdf::BenchmarkThread::BenchmarkThread(int msec, const Kdf* kdf)
: m_msec(msec)
: m_rounds(1)
, m_msec(msec)
, m_kdf(kdf)
{
}

View File

@ -19,12 +19,6 @@
#include "BinaryStream.h"
#include <QtEndian>
BinaryStream::BinaryStream(QObject* parent)
: QObject(parent)
, m_timeout(-1)
{
}
BinaryStream::BinaryStream(QIODevice* device)
: QObject(device)
, m_timeout(-1)
@ -36,7 +30,10 @@ BinaryStream::BinaryStream(QByteArray* ba, QObject* parent)
: QObject(parent)
, m_timeout(-1)
{
setData(ba);
m_buffer.reset(new QBuffer(ba));
m_buffer->open(QIODevice::ReadWrite);
m_device = m_buffer.data();
}
BinaryStream::~BinaryStream()
@ -53,19 +50,6 @@ QIODevice* BinaryStream::device() const
return m_device;
}
void BinaryStream::setDevice(QIODevice* device)
{
m_device = device;
}
void BinaryStream::setData(QByteArray* ba)
{
m_buffer.reset(new QBuffer(ba));
m_buffer->open(QIODevice::ReadWrite);
m_device = m_buffer.data();
}
void BinaryStream::setTimeout(int timeout)
{
m_timeout = timeout;

View File

@ -26,16 +26,14 @@
class BinaryStream : QObject
{
Q_OBJECT
Q_DISABLE_COPY(BinaryStream)
public:
BinaryStream(QObject* parent = nullptr);
BinaryStream(QIODevice* device);
BinaryStream(QByteArray* ba, QObject* parent = nullptr);
~BinaryStream();
explicit BinaryStream(QIODevice* device);
explicit BinaryStream(QByteArray* ba, QObject* parent = nullptr);
~BinaryStream() override;
const QString errorString() const;
QIODevice* device() const;
void setDevice(QIODevice* device);
void setData(QByteArray* ba);
void setTimeout(int timeout);
bool read(QByteArray& ba);

View File

@ -125,9 +125,8 @@ Application::Application(int& argc, char** argv)
break;
}
default:
qWarning() << QObject::tr("The lock file could not be created. Single-instance mode disabled.")
.toUtf8()
.constData();
qWarning()
<< QObject::tr("The lock file could not be created. Single-instance mode disabled.").toUtf8().constData();
}
}

View File

@ -176,7 +176,8 @@ void ApplicationSettingsWidget::loadSettings()
m_generalUi->minimizeOnCloseCheckBox->setChecked(config()->get("GUI/MinimizeOnClose").toBool());
m_generalUi->systrayMinimizeOnStartup->setChecked(config()->get("GUI/MinimizeOnStartup").toBool());
m_generalUi->checkForUpdatesOnStartupCheckBox->setChecked(config()->get("GUI/CheckForUpdates").toBool());
m_generalUi->checkForUpdatesIncludeBetasCheckBox->setChecked(config()->get("GUI/CheckForUpdatesIncludeBetas").toBool());
m_generalUi->checkForUpdatesIncludeBetasCheckBox->setChecked(
config()->get("GUI/CheckForUpdatesIncludeBetas").toBool());
m_generalUi->autoTypeAskCheckBox->setChecked(config()->get("security/autotypeask").toBool());
if (autoType()->isAvailable()) {

View File

@ -251,7 +251,11 @@ QSharedPointer<CompositeKey> DatabaseOpenWidget::databaseKey()
#ifdef WITH_XC_TOUCHID
// check if TouchID is available and enabled for unlocking the database
if (m_ui->checkTouchID->isChecked() && TouchID::getInstance().isAvailable() && masterKey->isEmpty()) {
if (m_ui->checkTouchID->isChecked() && TouchID::getInstance().isAvailable()
&& m_ui->editPassword->text().isEmpty()) {
// clear empty password from composite key
masterKey->clear();
// try to get, decrypt and use PasswordKey
QSharedPointer<QByteArray> passwordKey = TouchID::getInstance().getKey(m_filename);
if (passwordKey != NULL) {

View File

@ -61,8 +61,6 @@
#include "keeshare/KeeShare.h"
#include "touchid/TouchID.h"
#include "config-keepassx.h"
#ifdef Q_OS_LINUX
#include <sys/vfs.h>
#endif
@ -80,6 +78,9 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
, m_previewView(new EntryPreviewWidget(this))
, m_previewSplitter(new QSplitter(m_mainWidget))
, m_searchingLabel(new QLabel(this))
#ifdef WITH_XC_KEESHARE
, m_shareLabel(new QLabel(this))
#endif
, m_csvImportWizard(new CsvImportWizard(this))
, m_editEntryWidget(new EditEntryWidget(this))
, m_editGroupWidget(new EditGroupWidget(this))
@ -103,6 +104,9 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
auto* vbox = new QVBoxLayout();
vbox->setMargin(0);
vbox->addWidget(m_searchingLabel);
#ifdef WITH_XC_KEESHARE
vbox->addWidget(m_shareLabel);
#endif
vbox->addWidget(m_previewSplitter);
rightHandSideWidget->setLayout(vbox);
m_entryView = new EntryView(rightHandSideWidget);
@ -134,6 +138,16 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
"border-radius: 4px;");
m_searchingLabel->setVisible(false);
#ifdef WITH_XC_KEESHARE
m_shareLabel->setText(tr("Shared group..."));
m_shareLabel->setAlignment(Qt::AlignCenter);
m_shareLabel->setStyleSheet("color: rgb(0, 0, 0);"
"background-color: rgb(255, 253, 160);"
"border: 2px solid rgb(190, 190, 190);"
"border-radius: 4px;");
m_shareLabel->setVisible(false);
#endif
m_previewView->hide();
m_previewSplitter->addWidget(m_entryView);
m_previewSplitter->addWidget(m_previewView);
@ -194,6 +208,12 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
}
#endif
#ifdef WITH_XC_KEESHARE
// We need to reregister the database to allow exports
// from a newly created database
KeeShare::instance()->connectDatabase(m_db, {});
#endif
switchToMainView();
}
@ -377,6 +397,9 @@ void DatabaseWidget::replaceDatabase(QSharedPointer<Database> db)
processAutoOpen();
#if defined(WITH_XC_KEESHARE)
KeeShare::instance()->connectDatabase(m_db, oldDb);
#else
// Keep the instance active till the end of this function
Q_UNUSED(oldDb);
#endif
}
@ -765,9 +788,9 @@ void DatabaseWidget::switchToMainView(bool previousDialogAccepted)
setCurrentWidget(m_mainWidget);
if (sender() == m_entryView) {
if (sender() == m_entryView || sender() == m_editEntryWidget) {
onEntryChanged(m_entryView->currentEntry());
} else if (sender() == m_groupView) {
} else if (sender() == m_groupView || sender() == m_editGroupWidget) {
onGroupChanged(m_groupView->currentGroup());
}
}
@ -1089,6 +1112,7 @@ void DatabaseWidget::search(const QString& searchtext)
}
m_searchingLabel->setVisible(true);
m_shareLabel->setVisible(false);
emit searchModeActivated();
}
@ -1117,6 +1141,16 @@ void DatabaseWidget::onGroupChanged(Group* group)
}
m_previewView->setGroup(group);
#ifdef WITH_XC_KEESHARE
auto shareLabel = KeeShare::sharingLabel(group);
if (!shareLabel.isEmpty()) {
m_shareLabel->setText(shareLabel);
m_shareLabel->setVisible(true);
} else {
m_shareLabel->setVisible(false);
}
#endif
}
void DatabaseWidget::onDatabaseModified()
@ -1140,6 +1174,7 @@ void DatabaseWidget::endSearch()
// Show the normal entry view of the current group
m_entryView->displayGroup(currentGroup());
onGroupChanged(currentGroup());
emit listModeActivated();
}

View File

@ -29,6 +29,8 @@
#include "gui/csvImport/CsvImportWizard.h"
#include "gui/entry/EntryModel.h"
#include "config-keepassx.h"
class DatabaseOpenWidget;
class KeePass1OpenWidget;
class DatabaseSettingsDialog;
@ -233,6 +235,9 @@ private:
QPointer<EntryPreviewWidget> m_previewView;
QPointer<QSplitter> m_previewSplitter;
QPointer<QLabel> m_searchingLabel;
#ifdef WITH_XC_KEESHARE
QPointer<QLabel> m_shareLabel;
#endif
QPointer<CsvImportWizard> m_csvImportWizard;
QPointer<EditEntryWidget> m_editEntryWidget;
QPointer<EditGroupWidget> m_editGroupWidget;

View File

@ -59,6 +59,7 @@ void EditWidget::addPage(const QString& labelText, const QIcon& icon, QWidget* w
*/
auto* scrollArea = new QScrollArea(m_ui->stackedWidget);
scrollArea->setFrameShape(QFrame::NoFrame);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setWidget(widget);
scrollArea->setWidgetResizable(true);
m_ui->stackedWidget->addWidget(scrollArea);

View File

@ -30,6 +30,7 @@
#include "gui/MessageBox.h"
#ifdef WITH_XC_NETWORKING
#include <QHostInfo>
#include <QNetworkAccessManager>
#include <QtNetwork>
#endif
@ -65,7 +66,6 @@ EditWidgetIcons::EditWidgetIcons(QWidget* parent)
connect(m_ui->deleteButton, SIGNAL(clicked()), SLOT(removeCustomIcon()));
connect(m_ui->faviconButton, SIGNAL(clicked()), SLOT(downloadFavicon()));
connect(m_ui->defaultIconsRadio, SIGNAL(toggled(bool)), this, SIGNAL(widgetUpdated()));
connect(m_ui->defaultIconsRadio, SIGNAL(toggled(bool)), this, SIGNAL(widgetUpdated()));
connect(m_ui->defaultIconsView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SIGNAL(widgetUpdated()));
@ -196,13 +196,27 @@ void EditWidgetIcons::downloadFavicon()
m_urlsToTry.clear();
QString fullyQualifiedDomain = m_url.host();
QString secondLevelDomain = getSecondLevelDomain(m_url);
// Attempt to simply load the favicon.ico file
if (fullyQualifiedDomain != secondLevelDomain) {
m_urlsToTry.append(QUrl(m_url.scheme() + "://" + fullyQualifiedDomain + "/favicon.ico"));
m_urlsToTry.append(QUrl(m_url.scheme() + "://" + fullyQualifiedDomain + "/favicon.ico"));
// Determine if host portion of URL is an IP address by resolving it and
// searching for a match with the returned address(es).
bool hostIsIp = false;
QList<QHostAddress> hostAddressess = QHostInfo::fromName(fullyQualifiedDomain).addresses();
for (auto addr : hostAddressess) {
if (addr.toString() == fullyQualifiedDomain) {
hostIsIp = true;
}
}
if (!hostIsIp) {
QString secondLevelDomain = getSecondLevelDomain(m_url);
// Attempt to simply load the favicon.ico file
if (fullyQualifiedDomain != secondLevelDomain) {
m_urlsToTry.append(QUrl(m_url.scheme() + "://" + secondLevelDomain + "/favicon.ico"));
}
}
m_urlsToTry.append(QUrl(m_url.scheme() + "://" + secondLevelDomain + "/favicon.ico"));
// Try to use alternative fallback URL, if enabled
if (config()->get("security/IconDownloadFallback", false).toBool()) {
@ -210,6 +224,15 @@ void EditWidgetIcons::downloadFavicon()
fallbackUrl.setPath("/ip3/" + QUrl::toPercentEncoding(fullyQualifiedDomain) + ".ico");
m_urlsToTry.append(fallbackUrl);
if (!hostIsIp) {
QString secondLevelDomain = getSecondLevelDomain(m_url);
if (fullyQualifiedDomain != secondLevelDomain) {
fallbackUrl.setPath("/ip3/" + QUrl::toPercentEncoding(secondLevelDomain) + ".ico");
m_urlsToTry.append(fallbackUrl);
}
}
}
startFetchFavicon(m_urlsToTry.takeFirst());
@ -277,7 +300,7 @@ void EditWidgetIcons::fetchFinished()
#endif
}
void EditWidgetIcons::fetchCanceled()
void EditWidgetIcons::abortRequests()
{
#ifdef WITH_XC_NETWORKING
if (m_reply) {

View File

@ -19,7 +19,6 @@
#ifndef KEEPASSX_EDITWIDGETICONS_H
#define KEEPASSX_EDITWIDGETICONS_H
#include <QSet>
#include <QUrl>
#include <QUuid>
#include <QWidget>
@ -66,6 +65,7 @@ public:
public slots:
void setUrl(const QString& url);
void abortRequests();
signals:
void messageEditEntry(QString, MessageWidget::MessageType);
@ -77,7 +77,6 @@ private slots:
void startFetchFavicon(const QUrl& url);
void fetchFinished();
void fetchReadyRead();
void fetchCanceled();
void addCustomIconFromFile();
bool addCustomIcon(const QImage& icon);
void removeCustomIcon();

View File

@ -42,9 +42,9 @@
#include "keys/PasswordKey.h"
#ifdef WITH_XC_NETWORKING
#include "updatecheck/UpdateChecker.h"
#include "gui/MessageBox.h"
#include "gui/UpdateCheckDialog.h"
#include "updatecheck/UpdateChecker.h"
#endif
#ifdef WITH_XC_SSHAGENT
@ -76,7 +76,7 @@
class BrowserPlugin : public ISettingsPage
{
public:
BrowserPlugin(DatabaseTabWidget* tabWidget)
explicit BrowserPlugin(DatabaseTabWidget* tabWidget)
{
m_nativeMessagingHost =
QSharedPointer<NativeMessagingHost>(new NativeMessagingHost(tabWidget, browserSettings()->isEnabled()));
@ -374,7 +374,9 @@ MainWindow::MainWindow()
#ifdef WITH_XC_NETWORKING
connect(m_ui->actionCheckForUpdates, SIGNAL(triggered()), SLOT(showUpdateCheckDialog()));
connect(UpdateChecker::instance(), SIGNAL(updateCheckFinished(bool, QString, bool)), SLOT(hasUpdateAvailable(bool, QString, bool)));
connect(UpdateChecker::instance(),
SIGNAL(updateCheckFinished(bool, QString, bool)),
SLOT(hasUpdateAvailable(bool, QString, bool)));
QTimer::singleShot(3000, this, SLOT(showUpdateCheckStartup()));
#else
m_ui->actionCheckForUpdates->setVisible(false);
@ -687,12 +689,13 @@ void MainWindow::showUpdateCheckStartup()
{
#ifdef WITH_XC_NETWORKING
if (!config()->get("UpdateCheckMessageShown", false).toBool()) {
auto result = MessageBox::question(this,
tr("Check for updates on startup?"),
tr("Would you like KeePassXC to check for updates on startup?") + "\n\n" +
tr("You can always check for updates manually from the application menu."),
MessageBox::Yes | MessageBox::No,
MessageBox::Yes);
auto result =
MessageBox::question(this,
tr("Check for updates on startup?"),
tr("Would you like KeePassXC to check for updates on startup?") + "\n\n"
+ tr("You can always check for updates manually from the application menu."),
MessageBox::Yes | MessageBox::No,
MessageBox::Yes);
config()->set("GUI/CheckForUpdates", (result == MessageBox::Yes));
config()->set("UpdateCheckMessageShown", true);
@ -713,6 +716,10 @@ void MainWindow::hasUpdateAvailable(bool hasUpdate, const QString& version, bool
updateCheckDialog->showUpdateCheckResponse(hasUpdate, version);
updateCheckDialog->show();
}
#else
Q_UNUSED(hasUpdate)
Q_UNUSED(version)
Q_UNUSED(isManuallyRequested)
#endif
}

View File

@ -120,6 +120,7 @@ bool SearchWidget::eventFilter(QObject* obj, QEvent* event)
void SearchWidget::connectSignals(SignalMultiplexer& mx)
{
// Connects basically only to the current DatabaseWidget, but allows to switch between instances!
mx.connect(this, SIGNAL(search(QString)), SLOT(search(QString)));
mx.connect(this, SIGNAL(caseSensitiveChanged(bool)), SLOT(setSearchCaseSensitive(bool)));
mx.connect(this, SIGNAL(limitGroupChanged(bool)), SLOT(setSearchLimitGroup(bool)));

View File

@ -16,9 +16,9 @@
*/
#include "UpdateCheckDialog.h"
#include "core/FilePath.h"
#include "ui_UpdateCheckDialog.h"
#include "updatecheck/UpdateChecker.h"
#include "core/FilePath.h"
UpdateCheckDialog::UpdateCheckDialog(QWidget* parent)
: QDialog(parent)
@ -31,35 +31,34 @@ UpdateCheckDialog::UpdateCheckDialog(QWidget* parent)
m_ui->iconLabel->setPixmap(filePath()->applicationIcon().pixmap(48));
connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(close()));
connect(UpdateChecker::instance(), SIGNAL(updateCheckFinished(bool, QString, bool)), SLOT(showUpdateCheckResponse(bool, QString)));
connect(UpdateChecker::instance(),
SIGNAL(updateCheckFinished(bool, QString, bool)),
SLOT(showUpdateCheckResponse(bool, QString)));
}
void UpdateCheckDialog::showUpdateCheckResponse(bool status, const QString& version) {
void UpdateCheckDialog::showUpdateCheckResponse(bool status, const QString& version)
{
m_ui->progressBar->setVisible(false);
m_ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Close"));
if (version == QString("error")) {
setWindowTitle(tr("Update Error!"));
m_ui->statusLabel->setText(
"<strong>" + tr("Update Error!") + "</strong><br><br>" +
tr("An error occurred in retrieving update information.") + "<br>" +
tr("Please try again later."));
m_ui->statusLabel->setText("<strong>" + tr("Update Error!") + "</strong><br><br>"
+ tr("An error occurred in retrieving update information.") + "<br>"
+ tr("Please try again later."));
return;
}
if (status) {
setWindowTitle(tr("Software Update"));
m_ui->statusLabel->setText(
"<strong>" + tr("A new version of KeePassXC is available!") + "</strong><br><br>" +
tr("KeePassXC %1 is now available — you have %2.").arg(version, KEEPASSXC_VERSION) + "<br><br>" +
"<a href='https://keepassxc.org/download/'>" +
tr("Download it at keepassxc.org") +
"</a>");
m_ui->statusLabel->setText("<strong>" + tr("A new version of KeePassXC is available!") + "</strong><br><br>"
+ tr("KeePassXC %1 is now available — you have %2.").arg(version, KEEPASSXC_VERSION)
+ "<br><br>" + "<a href='https://keepassxc.org/download/'>"
+ tr("Download it at keepassxc.org") + "</a>");
} else {
setWindowTitle(tr("You're up-to-date!"));
m_ui->statusLabel->setText(tr(
"KeePassXC %1 is currently the newest version available").arg(KEEPASSXC_VERSION));
m_ui->statusLabel->setText(tr("KeePassXC %1 is currently the newest version available").arg(KEEPASSXC_VERSION));
}
}

View File

@ -18,13 +18,13 @@
#ifndef KEEPASSXC_UPDATECHECKDIALOG_H
#define KEEPASSXC_UPDATECHECKDIALOG_H
#include <QUrl>
#include <QDialog>
#include <QScopedPointer>
#include "gui/MessageBox.h"
#include "config-keepassx.h"
#include "core/Global.h"
#include "gui/MessageBox.h"
#include "updatecheck/UpdateChecker.h"
#include <QDialog>
#include <QScopedPointer>
#include <QUrl>
namespace Ui
{
@ -33,7 +33,7 @@ namespace Ui
class UpdateCheckDialog : public QDialog
{
Q_OBJECT
Q_OBJECT
public:
explicit UpdateCheckDialog(QWidget* parent = nullptr);
@ -46,5 +46,4 @@ private:
QScopedPointer<Ui::UpdateCheckDialog> m_ui;
};
#endif //KEEPASSXC_UPDATECHECKDIALOG_H
#endif // KEEPASSXC_UPDATECHECKDIALOG_H

View File

@ -81,7 +81,7 @@ void DatabaseSettingsWidgetEncryption::initialize()
isDirty = true;
}
if (!m_db->key()) {
m_db->setKey(QSharedPointer<CompositeKey>::create());
m_db->setKey(QSharedPointer<CompositeKey>::create(), true, false, false);
m_db->setCipher(KeePass2::CIPHER_AES256);
isDirty = true;
}
@ -127,8 +127,7 @@ void DatabaseSettingsWidgetEncryption::setupAlgorithmComboBox()
{
m_ui->algorithmComboBox->clear();
for (auto& cipher : asConst(KeePass2::CIPHERS)) {
m_ui->algorithmComboBox->addItem(cipher.second.toUtf8(),
cipher.first.toByteArray());
m_ui->algorithmComboBox->addItem(cipher.second.toUtf8(), cipher.first.toByteArray());
}
int cipherIndex = m_ui->algorithmComboBox->findData(m_db->cipher().toByteArray());
if (cipherIndex > -1) {
@ -142,8 +141,7 @@ void DatabaseSettingsWidgetEncryption::setupKdfComboBox()
bool block = m_ui->kdfComboBox->blockSignals(true);
m_ui->kdfComboBox->clear();
for (auto& kdf : asConst(KeePass2::KDFS)) {
m_ui->kdfComboBox->addItem(kdf.second.toUtf8(),
kdf.first.toByteArray());
m_ui->kdfComboBox->addItem(kdf.second.toUtf8(), kdf.first.toByteArray());
}
m_ui->kdfComboBox->blockSignals(block);
}

View File

@ -136,34 +136,34 @@ bool DatabaseSettingsWidgetMasterKey::save()
auto newKey = QSharedPointer<CompositeKey>::create();
QSharedPointer<Key> passwordKey;
QSharedPointer<Key> fileKey;
QSharedPointer<ChallengeResponseKey> ykCrKey;
QSharedPointer<Key> oldPasswordKey;
QSharedPointer<Key> oldFileKey;
QSharedPointer<ChallengeResponseKey> oldChallengeResponse;
for (const auto& key : m_db->key()->keys()) {
if (key->uuid() == PasswordKey::UUID) {
passwordKey = key;
oldPasswordKey = key;
} else if (key->uuid() == FileKey::UUID) {
fileKey = key;
oldFileKey = key;
}
}
for (const auto& key : m_db->key()->challengeResponseKeys()) {
if (key->uuid() == YkChallengeResponseKey::UUID) {
ykCrKey = key;
oldChallengeResponse = key;
}
}
if (!addToCompositeKey(m_passwordEditWidget, newKey, passwordKey)) {
if (!addToCompositeKey(m_passwordEditWidget, newKey, oldPasswordKey)) {
return false;
}
if (!addToCompositeKey(m_keyFileEditWidget, newKey, fileKey)) {
if (!addToCompositeKey(m_keyFileEditWidget, newKey, oldFileKey)) {
return false;
}
#ifdef WITH_XC_YUBIKEY
if (!addToCompositeKey(m_yubiKeyEditWidget, newKey, ykCrKey)) {
if (!addToCompositeKey(m_yubiKeyEditWidget, newKey, oldChallengeResponse)) {
return false;
}
#endif
@ -177,7 +177,7 @@ bool DatabaseSettingsWidgetMasterKey::save()
return false;
}
if (m_passwordEditWidget->visiblePage() == KeyComponentWidget::AddNew) {
if (m_passwordEditWidget->isEmpty()) {
auto answer = MessageBox::warning(this,
tr("No password set"),
tr("WARNING! You have not set a password. Using a database without "
@ -190,9 +190,13 @@ bool DatabaseSettingsWidgetMasterKey::save()
}
}
m_db->setKey(newKey);
m_db->setKey(newKey, true, false, false);
emit editFinished(true);
if (m_isDirty) {
m_db->markAsModified();
}
return true;
}

View File

@ -142,6 +142,7 @@ void EditEntryWidget::setupMain()
connect(m_mainUi->togglePasswordGeneratorButton, SIGNAL(toggled(bool)), SLOT(togglePasswordGeneratorButton(bool)));
#ifdef WITH_XC_NETWORKING
connect(m_mainUi->fetchFaviconButton, SIGNAL(clicked()), m_iconsWidget, SLOT(downloadFavicon()));
connect(m_mainUi->urlEdit, SIGNAL(textChanged(QString)), m_iconsWidget, SLOT(setUrl(QString)));
#endif
connect(m_mainUi->expireCheck, SIGNAL(toggled(bool)), m_mainUi->expireDatePicker, SLOT(setEnabled(bool)));
connect(m_mainUi->notesEnabled, SIGNAL(toggled(bool)), this, SLOT(toggleHideNotes(bool)));
@ -193,6 +194,8 @@ void EditEntryWidget::setupAdvanced()
void EditEntryWidget::setupIcon()
{
addPage(tr("Icon"), FilePath::instance()->icon("apps", "preferences-desktop-icons"), m_iconsWidget);
connect(this, SIGNAL(accepted()), m_iconsWidget, SLOT(abortRequests()));
connect(this, SIGNAL(rejected()), m_iconsWidget, SLOT(abortRequests()));
}
void EditEntryWidget::setupAutoType()
@ -764,7 +767,6 @@ void EditEntryWidget::setForms(Entry* entry, bool restore)
iconStruct.uuid = entry->iconUuid();
iconStruct.number = entry->iconNumber();
m_iconsWidget->load(entry->uuid(), m_db, iconStruct, entry->webUrl());
connect(m_mainUi->urlEdit, SIGNAL(textChanged(QString)), m_iconsWidget, SLOT(setUrl(QString)));
m_autoTypeUi->enableButton->setChecked(entry->autoTypeEnabled());
if (entry->defaultAutoTypeSequence().isEmpty()) {

View File

@ -36,9 +36,9 @@ public:
{
}
void set(Group* temporaryGroup) const
void set(Group* temporaryGroup, QSharedPointer<Database> database) const
{
editPage->set(widget, temporaryGroup);
editPage->set(widget, temporaryGroup, database);
}
void assign() const
@ -133,7 +133,7 @@ void EditGroupWidget::loadGroup(Group* group, bool create, const QSharedPointer<
m_editWidgetProperties->setCustomData(m_temporaryGroup->customData());
for (const ExtraPage& page : asConst(m_extraPages)) {
page.set(m_temporaryGroup.data());
page.set(m_temporaryGroup.data(), m_db);
}
setCurrentPage(0);

View File

@ -43,7 +43,7 @@ public:
virtual QString name() = 0;
virtual QIcon icon() = 0;
virtual QWidget* createWidget() = 0;
virtual void set(QWidget* widget, Group* tempoaryGroup) = 0;
virtual void set(QWidget* widget, Group* tempoaryGroup, QSharedPointer<Database> database) = 0;
virtual void assign(QWidget* widget) = 0;
};

View File

@ -124,7 +124,7 @@ QVariant GroupModel::data(const QModelIndex& index, int role) const
Group* group = groupFromIndex(index);
if (role == Qt::DisplayRole) {
QString nameTemplate = tr("%1", "Template for name without annotation");
QString nameTemplate = "%1";
#if defined(WITH_XC_KEESHARE)
nameTemplate = KeeShare::indicatorSuffix(group, nameTemplate);
#endif

View File

@ -40,7 +40,10 @@ PasswordEditWidget::~PasswordEditWidget()
bool PasswordEditWidget::addToCompositeKey(QSharedPointer<CompositeKey> key)
{
key->addKey(QSharedPointer<PasswordKey>::create(m_compUi->enterPasswordEdit->text()));
QString pw = m_compUi->enterPasswordEdit->text();
if (!pw.isEmpty()) {
key->addKey(QSharedPointer<PasswordKey>::create(pw));
}
return true;
}
@ -60,6 +63,11 @@ bool PasswordEditWidget::isPasswordVisible() const
return m_compUi->togglePasswordButton->isChecked();
}
bool PasswordEditWidget::isEmpty() const
{
return m_compUi->enterPasswordEdit->text().isEmpty();
}
QWidget* PasswordEditWidget::componentEditWidget()
{
m_compEditWidget = new QWidget();
@ -86,11 +94,6 @@ void PasswordEditWidget::initComponentEditWidget(QWidget* widget)
bool PasswordEditWidget::validate(QString& errorMessage) const
{
if (m_compUi->enterPasswordEdit->text().isEmpty()) {
errorMessage = tr("Password cannot be empty.");
return false;
}
if (m_compUi->enterPasswordEdit->text() != m_compUi->repeatPasswordEdit->text()) {
errorMessage = tr("Passwords do not match.");
return false;

View File

@ -38,6 +38,7 @@ public:
bool addToCompositeKey(QSharedPointer<CompositeKey> key) override;
void setPasswordVisible(bool visible);
bool isPasswordVisible() const;
bool isEmpty() const;
bool validate(QString& errorMessage) const override;
protected:

View File

@ -93,7 +93,7 @@ void KeeShare::setOwn(const KeeShareSettings::Own& own)
bool KeeShare::isShared(const Group* group)
{
return group->customData()->contains(KeeShare_Reference);
return group && group->customData()->contains(KeeShare_Reference);
}
KeeShareSettings::Reference KeeShare::referenceOf(const Group* group)
@ -142,6 +142,40 @@ bool KeeShare::isEnabled(const Group* group)
return (reference.isImporting() && active.in) || (reference.isExporting() && active.out);
}
const Group* KeeShare::resolveSharedGroup(const Group* group)
{
while (group && group != group->database()->rootGroup()) {
if (isShared(group)) {
return group;
}
group = group->parentGroup();
}
return nullptr;
}
QString KeeShare::sharingLabel(const Group* group)
{
auto* share = resolveSharedGroup(group);
if (!share) {
return {};
}
const auto reference = referenceOf(share);
switch (reference.type) {
case KeeShareSettings::Inactive:
return tr("Disabled share %1").arg(reference.path);
case KeeShareSettings::ImportFrom:
return tr("Import from share %1").arg(reference.path);
case KeeShareSettings::ExportTo:
return tr("Export to share %1").arg(reference.path);
case KeeShareSettings::SynchronizeWith:
return tr("Synchronize with share %1").arg(reference.path);
}
return {};
}
QPixmap KeeShare::indicatorBadge(const Group* group, QPixmap pixmap)
{
if (!isShared(group)) {

View File

@ -43,6 +43,9 @@ public:
static bool isShared(const Group* group);
static bool isEnabled(const Group* group);
static const Group* resolveSharedGroup(const Group* group);
static QString sharingLabel(const Group* group);
static KeeShareSettings::Own own();
static KeeShareSettings::Active active();
static KeeShareSettings::Foreign foreign();

View File

@ -183,7 +183,7 @@ void SettingsWidgetKeeShare::exportCertificate()
}
const auto filetype = tr("key.share", "Filetype for KeeShare key");
const auto filters = QString("%1 (*." + filetype + ");;%2 (*)").arg(tr("KeeShare key file"), tr("All files"));
QString filename = tr("%1.%2", "Template for KeeShare key file").arg(m_own.certificate.signer).arg(filetype);
QString filename = QString("%1.%2").arg(m_own.certificate.signer).arg(filetype);
filename = fileDialog()->getSaveFileName(
this, tr("Select path"), defaultDirPath, filters, nullptr, QFileDialog::Options(0), filetype, filename);
if (filename.isEmpty()) {

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>327</width>
<height>434</height>
<width>378</width>
<height>508</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,0">
@ -82,7 +82,7 @@
<item row="2" column="0">
<widget class="QLabel" name="ownCertificateSignerLabel">
<property name="text">
<string>Signer</string>
<string>Signer:</string>
</property>
</widget>
</item>

View File

@ -25,6 +25,7 @@
#include "core/Entry.h"
#include "core/FilePath.h"
#include "core/FileWatcher.h"
#include "core/Global.h"
#include "core/Group.h"
#include "core/Merger.h"
#include "core/Metadata.h"
@ -191,7 +192,7 @@ void ShareObserver::reinitialize()
const auto active = KeeShare::active();
QList<Update> updated;
QList<Group*> groups = m_db->rootGroup()->groupsRecursive(true);
const QList<Group*> groups = m_db->rootGroup()->groupsRecursive(true);
for (Group* group : groups) {
Update couple{group, m_groupToReference.value(group), KeeShare::referenceOf(group)};
if (couple.oldReference == couple.newReference) {
@ -214,7 +215,9 @@ void ShareObserver::reinitialize()
QStringList success;
QStringList warning;
QStringList error;
for (const auto& update : updated) {
QMap<QString, QStringList> imported;
QMap<QString, QStringList> exported;
for (const auto& update : asConst(updated)) {
if (!update.oldReference.path.isEmpty()) {
m_fileWatcher->removePath(update.oldReference.path);
}
@ -222,8 +225,12 @@ void ShareObserver::reinitialize()
if (!update.newReference.path.isEmpty() && update.newReference.type != KeeShareSettings::Inactive) {
m_fileWatcher->addPath(update.newReference.path);
}
if (update.newReference.isExporting()) {
exported[update.newReference.path] << update.group->name();
}
if (update.newReference.isImporting()) {
imported[update.newReference.path] << update.group->name();
const auto result = this->importFromReferenceContainer(update.newReference.path);
if (!result.isValid()) {
// tolerable result - blocked import or missing source
@ -241,6 +248,16 @@ void ShareObserver::reinitialize()
}
}
}
for (auto it = imported.cbegin(); it != imported.cend(); ++it) {
if (it.value().count() > 1) {
warning << tr("Multiple import source path to %1 in %2").arg(it.key(), it.value().join(", "));
}
}
for (auto it = exported.cbegin(); it != exported.cend(); ++it) {
if (it.value().count() > 1) {
error << tr("Conflicting export target path %1 in %2").arg(it.key(), it.value().join(", "));
}
}
notifyAbout(success, warning, error);
}
@ -659,8 +676,10 @@ ShareObserver::Result ShareObserver::exportIntoReferenceSignedContainer(const Ke
QuaZipFile file(&zip);
const auto signatureOpened = file.open(QIODevice::WriteOnly, QuaZipNewInfo(KeeShare_Signature));
if (!signatureOpened) {
::qWarning("Embedding signature failed: %d", zip.getZipError());
return {reference.path, Result::Error, tr("Could not embed signature (%1)").arg(file.getZipError())};
::qWarning("Embedding signature failed: Could not open file to write (%d)", zip.getZipError());
return {reference.path,
Result::Error,
tr("Could not embed signature: Could not open file to write (%1)").arg(file.getZipError())};
}
QTextStream stream(&file);
KeeShareSettings::Sign sign;
@ -672,8 +691,10 @@ ShareObserver::Result ShareObserver::exportIntoReferenceSignedContainer(const Ke
stream << KeeShareSettings::Sign::serialize(sign);
stream.flush();
if (file.getZipError() != ZIP_OK) {
::qWarning("Embedding signature failed: %d", zip.getZipError());
return {reference.path, Result::Error, tr("Could not embed signature (%1)").arg(file.getZipError())};
::qWarning("Embedding signature failed: Could not write file (%d)", zip.getZipError());
return {reference.path,
Result::Error,
tr("Could not embed signature: Could not write file (%1)").arg(file.getZipError())};
}
file.close();
}
@ -681,14 +702,18 @@ ShareObserver::Result ShareObserver::exportIntoReferenceSignedContainer(const Ke
QuaZipFile file(&zip);
const auto dbOpened = file.open(QIODevice::WriteOnly, QuaZipNewInfo(KeeShare_Container));
if (!dbOpened) {
::qWarning("Embedding database failed: %d", zip.getZipError());
return {reference.path, Result::Error, tr("Could not embed database (%1)").arg(file.getZipError())};
}
if (file.getZipError() != ZIP_OK) {
::qWarning("Embedding database failed: %d", zip.getZipError());
return {reference.path, Result::Error, tr("Could not embed database (%1)").arg(file.getZipError())};
::qWarning("Embedding database failed: Could not open file to write (%d)", zip.getZipError());
return {reference.path,
Result::Error,
tr("Could not embed database: Could not open file to write (%1)").arg(file.getZipError())};
}
file.write(bytes);
if (file.getZipError() != ZIP_OK) {
::qWarning("Embedding database failed: Could not write file (%d)", zip.getZipError());
return {reference.path,
Result::Error,
tr("Could not embed database: Could not write file (%1)").arg(file.getZipError())};
}
file.close();
}
zip.close();
@ -725,28 +750,55 @@ ShareObserver::Result ShareObserver::exportIntoReferenceUnsignedContainer(const
QList<ShareObserver::Result> ShareObserver::exportIntoReferenceContainers()
{
QList<Result> results;
struct Reference
{
KeeShareSettings::Reference config;
const Group* group;
};
QMap<QString, QList<Reference>> references;
const auto groups = m_db->rootGroup()->groupsRecursive(true);
for (const auto* group : groups) {
const auto reference = KeeShare::referenceOf(group);
if (!reference.isExporting()) {
continue;
}
references[reference.path] << Reference{reference, group};
}
m_fileWatcher->ignoreFileChanges(reference.path);
QScopedPointer<Database> targetDb(exportIntoContainer(reference, group));
QFileInfo info(reference.path);
for (auto it = references.cbegin(); it != references.cend(); ++it) {
if (it.value().count() != 1) {
const auto path = it.value().first().config.path;
QStringList groups;
for (const auto& reference : it.value()) {
groups << reference.group->name();
}
results << Result{
path, Result::Error, tr("Conflicting export target path %1 in %2").arg(path, groups.join(", "))};
}
}
if (!results.isEmpty()) {
// We need to block export due to config
return results;
}
for (auto it = references.cbegin(); it != references.cend(); ++it) {
const auto& reference = it.value().first();
m_fileWatcher->ignoreFileChanges(reference.config.path);
QScopedPointer<Database> targetDb(exportIntoContainer(reference.config, reference.group));
QFileInfo info(reference.config.path);
if (isOfExportType(info, KeeShare::signedContainerFileType())) {
results << exportIntoReferenceSignedContainer(reference, targetDb.data());
results << exportIntoReferenceSignedContainer(reference.config, targetDb.data());
m_fileWatcher->observeFileChanges(true);
continue;
}
if (isOfExportType(info, KeeShare::unsignedContainerFileType())) {
results << exportIntoReferenceUnsignedContainer(reference, targetDb.data());
results << exportIntoReferenceUnsignedContainer(reference.config, targetDb.data());
m_fileWatcher->observeFileChanges(true);
continue;
}
Q_ASSERT(false);
results << Result{reference.path, Result::Error, tr("Unexpected export error occurred")};
results << Result{reference.config.path, Result::Error, tr("Unexpected export error occurred")};
}
return results;
}
@ -759,6 +811,7 @@ void ShareObserver::handleDatabaseSaved()
QStringList error;
QStringList warning;
QStringList success;
const auto results = exportIntoReferenceContainers();
for (const Result& result : results) {
if (!result.isValid()) {
@ -787,7 +840,7 @@ ShareObserver::Result::Result(const QString& path, ShareObserver::Result::Type t
bool ShareObserver::Result::isValid() const
{
return !path.isEmpty() || !message.isEmpty() || !message.isEmpty() || !message.isEmpty();
return !path.isEmpty() || !message.isEmpty();
}
bool ShareObserver::Result::isError() const

View File

@ -42,10 +42,10 @@ QWidget* EditGroupPageKeeShare::createWidget()
return new EditGroupWidgetKeeShare();
}
void EditGroupPageKeeShare::set(QWidget* widget, Group* temporaryGroup)
void EditGroupPageKeeShare::set(QWidget* widget, Group* temporaryGroup, QSharedPointer<Database> database)
{
EditGroupWidgetKeeShare* settingsWidget = reinterpret_cast<EditGroupWidgetKeeShare*>(widget);
settingsWidget->setGroup(temporaryGroup);
settingsWidget->setGroup(temporaryGroup, database);
}
void EditGroupPageKeeShare::assign(QWidget* widget)

View File

@ -30,7 +30,7 @@ public:
QString name() override;
QIcon icon() override;
QWidget* createWidget() override;
void set(QWidget* widget, Group* temporaryGroup) override;
void set(QWidget* widget, Group* temporaryGroup, QSharedPointer<Database> database) override;
void assign(QWidget* widget) override;
};

View File

@ -54,6 +54,7 @@ EditGroupWidgetKeeShare::EditGroupWidgetKeeShare(QWidget* parent)
connect(m_ui->pathEdit, SIGNAL(editingFinished()), SLOT(selectPath()));
connect(m_ui->pathSelectionButton, SIGNAL(pressed()), SLOT(launchPathSelectionDialog()));
connect(m_ui->typeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(selectType()));
connect(m_ui->clearButton, SIGNAL(clicked(bool)), SLOT(clearInputs()));
connect(KeeShare::instance(), SIGNAL(activeChanged()), SLOT(showSharingState()));
@ -84,12 +85,13 @@ EditGroupWidgetKeeShare::~EditGroupWidgetKeeShare()
{
}
void EditGroupWidgetKeeShare::setGroup(Group* temporaryGroup)
void EditGroupWidgetKeeShare::setGroup(Group* temporaryGroup, QSharedPointer<Database> database)
{
if (m_temporaryGroup) {
m_temporaryGroup->disconnect(this);
}
m_database = database;
m_temporaryGroup = temporaryGroup;
if (m_temporaryGroup) {
@ -127,9 +129,43 @@ void EditGroupWidgetKeeShare::showSharingState()
.arg(supportedExtensions.join(", ")),
MessageWidget::Warning);
return;
} else {
m_ui->messageWidget->hide();
}
const auto groups = m_database->rootGroup()->groupsRecursive(true);
bool conflictExport = false;
bool multipleImport = false;
bool cycleImportExport = false;
for (const auto* group : groups) {
if (group->uuid() == m_temporaryGroup->uuid()) {
continue;
}
const auto other = KeeShare::referenceOf(group);
if (other.path != reference.path) {
continue;
}
multipleImport |= other.isImporting() && reference.isImporting();
conflictExport |= other.isExporting() && reference.isExporting();
cycleImportExport |=
(other.isImporting() && reference.isExporting()) || (other.isExporting() && reference.isImporting());
}
if (conflictExport) {
m_ui->messageWidget->showMessage(tr("The export container %1 is already referenced.").arg(reference.path),
MessageWidget::Error);
return;
}
if (multipleImport) {
m_ui->messageWidget->showMessage(tr("The import container %1 is already imported.").arg(reference.path),
MessageWidget::Warning);
return;
}
if (cycleImportExport) {
m_ui->messageWidget->showMessage(
tr("The container %1 imported and export by different groups.").arg(reference.path),
MessageWidget::Warning);
return;
}
m_ui->messageWidget->hide();
}
const auto active = KeeShare::active();
if (!active.in && !active.out) {
@ -166,6 +202,17 @@ void EditGroupWidgetKeeShare::update()
m_ui->togglePasswordButton->setChecked(false);
}
void EditGroupWidgetKeeShare::clearInputs()
{
if (m_temporaryGroup) {
KeeShare::setReferenceTo(m_temporaryGroup, KeeShareSettings::Reference());
}
m_ui->passwordEdit->clear();
m_ui->pathEdit->clear();
m_ui->typeComboBox->setCurrentIndex(KeeShareSettings::Inactive);
m_ui->passwordGenerator->setVisible(false);
}
void EditGroupWidgetKeeShare::togglePasswordGeneratorButton(bool checked)
{
m_ui->passwordGenerator->regeneratePassword();

View File

@ -37,13 +37,14 @@ public:
explicit EditGroupWidgetKeeShare(QWidget* parent = nullptr);
~EditGroupWidgetKeeShare();
void setGroup(Group* temporaryGroup);
void setGroup(Group* temporaryGroup, QSharedPointer<Database> database);
private slots:
void showSharingState();
private slots:
void update();
void clearInputs();
void selectType();
void selectPassword();
void launchPathSelectionDialog();
@ -54,6 +55,7 @@ private slots:
private:
QScopedPointer<Ui::EditGroupWidgetKeeShare> m_ui;
QPointer<Group> m_temporaryGroup;
QSharedPointer<Database> m_database;
};
#endif // KEEPASSXC_EDITGROUPWIDGETKEESHARE_H

View File

@ -97,6 +97,13 @@
<item row="5" column="1">
<widget class="PasswordGeneratorWidget" name="passwordGenerator" native="true"/>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="clearButton">
<property name="text">
<string>Clear</string>
</property>
</widget>
</item>
</layout>
</item>
<item>

View File

@ -67,19 +67,13 @@ int main(int argc, char** argv)
Bootstrap::bootstrapApplication();
QCommandLineParser parser;
parser.setApplicationDescription(
QObject::tr("KeePassXC - cross-platform password manager"));
parser.setApplicationDescription(QObject::tr("KeePassXC - cross-platform password manager"));
parser.addPositionalArgument(
"filename",
QObject::tr("filenames of the password databases to open (*.kdbx)"),
"[filename(s)]");
"filename", QObject::tr("filenames of the password databases to open (*.kdbx)"), "[filename(s)]");
QCommandLineOption configOption(
"config", QObject::tr("path to a custom config file"), "config");
QCommandLineOption keyfileOption(
"keyfile", QObject::tr("key file of the database"), "keyfile");
QCommandLineOption pwstdinOption("pw-stdin",
QObject::tr("read password of the database from stdin"));
QCommandLineOption configOption("config", QObject::tr("path to a custom config file"), "config");
QCommandLineOption keyfileOption("keyfile", QObject::tr("key file of the database"), "keyfile");
QCommandLineOption pwstdinOption("pw-stdin", QObject::tr("read password of the database from stdin"));
// This is needed under Windows where clients send --parent-window parameter with Native Messaging connect method
QCommandLineOption parentWindowOption(QStringList() << "pw"
<< "parent-window",
@ -106,9 +100,7 @@ int main(int argc, char** argv)
if (!fileNames.isEmpty()) {
app.sendFileNamesToRunningInstance(fileNames);
}
qWarning() << QObject::tr("Another instance of KeePassXC is already running.")
.toUtf8()
.constData();
qWarning() << QObject::tr("Another instance of KeePassXC is already running.").toUtf8().constData();
return 0;
}

View File

@ -19,7 +19,7 @@
#include <QCoreApplication>
#ifdef Q_OS_WIN
#include <Winsock2.h>
#include <winsock2.h>
#endif
NativeMessagingHost::NativeMessagingHost()
@ -36,14 +36,12 @@ NativeMessagingHost::NativeMessagingHost()
}
#ifdef Q_OS_WIN
m_running.store(true);
m_future =
QtConcurrent::run(this, static_cast<void (NativeMessagingHost::*)()>(&NativeMessagingHost::readNativeMessages));
m_future = QtConcurrent::run(this, &NativeMessagingHost::readNativeMessages);
#endif
connect(m_localSocket, SIGNAL(readyRead()), this, SLOT(newLocalMessage()));
connect(m_localSocket, SIGNAL(disconnected()), this, SLOT(deleteSocket()));
connect(m_localSocket,
SIGNAL(stateChanged(QLocalSocket::LocalSocketState)),
this,
SLOT(socketStateChanged(QLocalSocket::LocalSocketState)));
}

View File

@ -25,7 +25,7 @@ class NativeMessagingHost : public NativeMessagingBase
Q_OBJECT
public:
NativeMessagingHost();
~NativeMessagingHost();
~NativeMessagingHost() override;
public slots:
void newLocalMessage();
@ -33,12 +33,14 @@ public slots:
void socketStateChanged(QLocalSocket::LocalSocketState socketState);
private:
void readNativeMessages();
void readLength();
bool readStdIn(const quint32 length);
void readNativeMessages() override;
void readLength() override;
bool readStdIn(const quint32 length) override;
private:
QLocalSocket* m_localSocket;
Q_DISABLE_COPY(NativeMessagingHost)
};
#endif // NATIVEMESSAGINGHOST_H

View File

@ -55,13 +55,29 @@ void catchUnixSignals(std::initializer_list<int> quitSignals)
sigaction(sig, &sa, nullptr);
}
}
#else
#include <windows.h>
BOOL WINAPI ConsoleHandler(DWORD dwType)
{
switch (dwType) {
case CTRL_C_EVENT:
case CTRL_SHUTDOWN_EVENT:
case CTRL_LOGOFF_EVENT:
QCoreApplication::quit();
break;
}
return TRUE;
}
#endif
int main(int argc, char* argv[])
{
QCoreApplication a(argc, argv);
#if defined(Q_OS_UNIX) || defined(Q_OS_LINUX)
#ifndef Q_OS_WIN
catchUnixSignals({SIGQUIT, SIGINT, SIGTERM, SIGHUP});
#else
SetConsoleCtrlHandler(static_cast<PHANDLER_ROUTINE>(ConsoleHandler), TRUE);
#endif
NativeMessagingHost host;
return a.exec();

View File

@ -28,6 +28,7 @@ SymmetricCipherStream::SymmetricCipherStream(QIODevice* baseDevice,
, m_error(false)
, m_isInitialized(false)
, m_dataWritten(false)
, m_streamCipher(false)
{
}

View File

@ -16,11 +16,11 @@
*/
#include "UpdateChecker.h"
#include "core/Config.h"
#include "config-keepassx.h"
#include "core/Config.h"
#include <QJsonObject>
#include <QtNetwork>
#include <QNetworkAccessManager>
#include <QtNetwork>
UpdateChecker* UpdateChecker::m_instance(nullptr);
@ -28,6 +28,7 @@ UpdateChecker::UpdateChecker(QObject* parent)
: QObject(parent)
, m_netMgr(new QNetworkAccessManager(this))
, m_reply(nullptr)
, m_isManuallyRequested(false)
{
}

View File

@ -17,8 +17,8 @@
#ifndef KEEPASSXC_UPDATECHECK_H
#define KEEPASSXC_UPDATECHECK_H
#include <QString>
#include <QObject>
#include <QString>
class QNetworkAccessManager;
class QNetworkReply;
@ -57,4 +57,4 @@ inline UpdateChecker* updateCheck()
return UpdateChecker::instance();
}
#endif //KEEPASSXC_UPDATECHECK_H
#endif // KEEPASSXC_UPDATECHECK_H

View File

@ -177,8 +177,8 @@ void TestEntrySearcher::testAllAttributesAreSearched()
void TestEntrySearcher::testSearchTermParser()
{
// Test standard search terms
auto terms =
m_entrySearcher.parseSearchTerms("-test \"quoted \\\"string\\\"\" user:user pass:\"test me\" noquote ");
m_entrySearcher.parseSearchTerms("-test \"quoted \\\"string\\\"\" user:user pass:\"test me\" noquote ");
auto terms = m_entrySearcher.m_searchTerms;
QCOMPARE(terms.length(), 5);
@ -200,7 +200,8 @@ void TestEntrySearcher::testSearchTermParser()
QCOMPARE(terms[4]->word, QString("noquote"));
// Test wildcard and regex search terms
terms = m_entrySearcher.parseSearchTerms("+url:*.google.com *user:\\d+\\w{2}");
m_entrySearcher.parseSearchTerms("+url:*.google.com *user:\\d+\\w{2}");
terms = m_entrySearcher.m_searchTerms;
QCOMPARE(terms.length(), 2);

View File

@ -811,7 +811,6 @@ void TestGroup::testCopyDataFrom()
group3->setName("TestGroup3");
group3->customData()->set("testKey", "value");
QSignalSpy spyGroupModified(group.data(), SIGNAL(groupModified()));
QSignalSpy spyGroupDataChanged(group.data(), SIGNAL(groupDataChanged(Group*)));

View File

@ -17,8 +17,8 @@
#include "TestUpdateCheck.h"
#include "TestGlobal.h"
#include "updatecheck/UpdateChecker.h"
#include "crypto/Crypto.h"
#include "updatecheck/UpdateChecker.h"
QTEST_GUILESS_MAIN(TestUpdateCheck)
@ -29,7 +29,7 @@ void TestUpdateCheck::initTestCase()
void TestUpdateCheck::testCompareVersion()
{
// Remote Version , Installed Version
// Remote Version , Installed Version
QCOMPARE(UpdateChecker::compareVersions(QString("2.4.0"), QString("2.3.4")), true);
QCOMPARE(UpdateChecker::compareVersions(QString("2.3.0"), QString("2.4.0")), false);
QCOMPARE(UpdateChecker::compareVersions(QString("2.3.0"), QString("2.3.0")), false);

View File

@ -22,7 +22,7 @@
class TestUpdateCheck : public QObject
{
Q_OBJECT
Q_OBJECT
private slots:
void initTestCase();

142
utils/keepassxc-snap-helper.sh Executable file
View File

@ -0,0 +1,142 @@
#!/usr/bin/env bash
#
# KeePassXC Browser Extension Native Messaging Installer Tool
# Copyright (C) 2017 KeePassXC team <https://keepassxc.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -e
DEBUG=false
JSON_BASE=$(cat << EOF
{
"name": "org.keepassxc.keepassxc_browser",
"description": "KeePassXC integration with native messaging support",
"path": "/snap/bin/keepassxc.proxy",
"type": "stdio",
__EXT__
}
EOF
)
JSON_FIREFOX=$(cat << EOF
"allowed_extensions": [
"keepassxc-browser@keepassxc.org"
]
EOF
)
JSON_CHROME=$(cat << EOF
"allowed_origins": [
"chrome-extension://iopaggbpplllidnfmcghoonnokmjoicf/",
"chrome-extension://oboonakemofpalcgghocfoadofidjkkk/"
]
EOF
)
JSON_OUT=""
BASE_DIR="."
INSTALL_DIR=""
INSTALL_FILE="org.keepassxc.keepassxc_browser.json"
buildJson() {
if [[ ! -z $1 ]]; then
# Insert Firefox data
JSON_OUT="${JSON_BASE/__EXT__/$JSON_FIREFOX}"
else
# Insert Chrome data
JSON_OUT="${JSON_BASE/__EXT__/$JSON_CHROME}"
fi
}
askBrowserSnap() {
if (whiptail --title "Snap Choice" --defaultno \
--yesno "Is this browser installed as a snap (usually NO)?" 8 60); then
# BASE_DIR="$1"
whiptail --title "Snap Choice" --msgbox "Sorry, browsers installed as snaps are not supported at this time" 8 50
exit 0
fi
}
setupFirefox() {
askBrowserSnap "./snap/firefox/common"
buildJson "firefox"
INSTALL_DIR="${BASE_DIR}/.mozilla/native-messaging-hosts"
}
setupChrome() {
buildJson
INSTALL_DIR="${BASE_DIR}/.config/google-chrome/NativeMessagingHosts"
}
setupChromium() {
askBrowserSnap "./snap/chromium/current"
buildJson
INSTALL_DIR="${BASE_DIR}/.config/chromium/NativeMessagingHosts"
}
setupVivaldi() {
buildJson
INSTALL_DIR="${BASE_DIR}/.config/vivaldi/NativeMessagingHosts"
}
setupTorBrowser() {
buildJson "firefox"
INSTALL_DIR="${BASE_DIR}/.tor-browser/app/Browser/TorBrowser/Data/Browser/.mozilla/native-messaging-hosts"
}
# --------------------------------
# Start of script
# --------------------------------
BROWSER=$(whiptail \
--title "Browser Selection" \
--menu "Choose a browser to integrate with KeePassXC:" \
15 60 5 \
"1" "Firefox" \
"2" "Chrome" \
"3" "Chromium" \
"4" "Vivaldi" \
"5" "Tor Browser" \
3>&1 1>&2 2>&3)
clear
exitstatus=$?
if [ $exitstatus = 0 ]; then
# Configure settings for the chosen browser
case "$BROWSER" in
1) setupFirefox ;;
2) setupChrome ;;
3) setupChromium ;;
4) setupVivaldi ;;
5) setupTorBrowser ;;
esac
# Install the JSON file
cd ~
mkdir -p "$INSTALL_DIR"
echo "$JSON_OUT" > ${INSTALL_DIR}/${INSTALL_FILE}
$DEBUG && echo "Installed to: ${INSTALL_DIR}/${INSTALL_FILE}"
whiptail \
--title "Installation Complete" \
--msgbox "You will need to restart your browser in order to connect to KeePassXC" \
8 50
else
whiptail --title "Installation Canceled" --msgbox "No changes were made to your system" 8 50
fi