Page MenuHome GnuPG

No OneTemporary

This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/localization/localization_ar_MA.ts b/localization/localization_ar_MA.ts
index 7b95099..b8aa3c1 100644
--- a/localization/localization_ar_MA.ts
+++ b/localization/localization_ar_MA.ts
@@ -1,945 +1,940 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ar_MA">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translatorcomment>Flips interface</translatorcomment>
<translation>RTL</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_ca.ts b/localization/localization_ca.ts
index e8cb0cf..34096c3 100644
--- a/localization/localization_ca.ts
+++ b/localization/localization_ca.ts
@@ -1,992 +1,991 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ca">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuració</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Paràmetres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Comportament del porta-retalls:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Utilitza la selecció primària</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Neteja automàticament després de:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>segons</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Comportament de la contrasenya:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Comportament del plafó del contingut:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Oculta el contingut</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Oculta la contrasenya</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Neteja automàticament el plafó després de:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Generació de contrasenyes:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Longitud de la contrasenya:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>caràcters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Utilitza els caràcters:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Seleccioneu el conjunt de caràcters per a la generació de la contrasenya</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Tots els caràcters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alfabètic</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alfanumèric</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Personalitzat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcçdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Utilitza pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclou les lletres en majúscula</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Inclou els símbols especials</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Genera contrasenyes fàcils de recordar però menys segures</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclou els nombres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Utilitza git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Afegeix automàticament els fitxers .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Pujada automàtica</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Baixada automàtica</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Sistema</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Utilitza la safata del sistema</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Comença minimitzat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Oculta amb el tancament</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Sempre al capdamunt</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Seleccioneu el programa d&apos;emmagatzematge de contrasenyes:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Nati&amp;u git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Utilitza pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Natiu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Perfils</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Camí</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Afegeix</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Suprimeix</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Magatzem de contrasenyes actual</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Plantilla</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Les plantilles afegeixen camps extres al diàleg de generació de contrasenyes i a la visualització de la contrasenya.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Utilitza la plantilla</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Mostra totes les línies que comencen amb una paraula seguida de dos punts com a camps als camps de la contrasenya, no només les que figuren a la llista</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Mostra tota la plantilla de camps</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; versió </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Sense porta-retalls</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Copia sempre al porta-retalls</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copia sota demanda al porta-retalls</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Cap perfil seleccionat</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>No s&apos;ha seleccionat cap perfil per suprimir</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>No s&apos;ha trobat GnuPG</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Instal·leu GnuPG al vostre sistema.&lt;br&gt;Instal·leu &lt;strong&gt;gpg&lt;/strong&gt; mitjançant el vostre gestor de paquets preferit&lt;br&gt;o &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;baixeu-ho&lt;/a&gt; de GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Voleu crear un magatzem de claus?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Voleu crear un magatzem de claus a %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>El magatzem de claus no està inicialitzat</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>La carpeta %1 no sembla ser un magatzem de claus o encara no ha estat inicialitzat.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>No es pot editar</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>No s&apos;ha pogut llegir el fitxer que s&apos;ha s&apos;utilitzar per al xifratge, falta el fitxer .gpg-id o bé no és vàlid.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>No es pot actualitzar</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Ha fallat l&apos;obriment de .gpg-id per a l&apos;escriptura.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Comproveu els usuaris seleccionats!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Cap de les tecles seleccionades té una clau secreta disponible.
Probablement no podreu desxifrar les contrasenyes afegides recentment!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-xifratge des de la carpeta %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Actualització del magatzem de contrasenyes</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Generació del parell de claus GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Genera un nou parell de claus</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Contrasenya</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Correu electrònic</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;No hi ha cap límit sobre la llargada d&apos;una contrasenya, i s&apos;ha de seleccionar acuradament. Des de la perspectiva de la seguretat, la contrasenya per desbloquejar la clau privada és un dels punts més febles de GnuPG (i altres sistemes de xifratge de clau pública), ja que és l&apos;única protecció que teniu si una altra persona obté la vostra clau privada. &lt;br/&gt;El més ideal seria que per a la contrasenya no s&apos;utilitzessin les paraules d&apos;un diccionari i s&apos;utilitzés una mescla de caràcters alfabètics i no alfabètics.&lt;br/&gt;Una bona contrasenya és crucial per a l&apos;ús segur de GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># Generador de claus GPG de QtPass
#
# primera versió de prova, si us plau, comenteu
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Fes un commit aquí, perquè puguem imprimir &quot;fet&quot; més tard :-)
%commit
%echo fet</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Per obtenir opcions d&apos;experts consulteu el &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manual de GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>El nom no és vàlid</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>El nom ha de tenir almenys 5 caràcters de longitud.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>El correu electrònic no és vàlid</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>L&apos;adreça de correu electrònic que heu escrit no és una adreça electrònica vàlida.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Aquesta operació pot trigar uns quants minuts.&lt;br /&gt;S&apos;han de generar molts bytes aleatoris. Una bona idea és realitzar alguna altra acció (teclegeu el teclat, moveu el ratolí, utilitzeu els discs) durant la generació de nombres primers; això dóna al generador de nombres aleatoris una millor oportunitat per obtenir prou entropia.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Afegeix</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Edita</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Suprimeix</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Puja</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Actualitza</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gestioneu qui pot llegir la contrasenya a la carpeta</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Usuaris</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuració</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configura</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Benvingut a QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; és una interfície gràfica per a &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, el gestor estàndard de contrasenyes d&apos;unix password.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Informeu de qualsevol &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;incidència&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; que pugueu tenir amb aquest programari.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentació&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;Codi font&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Cerca la contrasenya</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Benvingut a QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Afegeix una contrasenya</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Afegeix una carpeta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Ha fallat la connexió a WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Contrasenya de WebDAV de QtPass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Introduïu la contrasenya per connectar a WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav ha sortit inesperadament
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Ha fallat l&apos;inici de fusedav per connectar a WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Actualització del magatzem de contrasenyes</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">No es pot editar</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">No existeix el fitxer de contrasenyes seleccionat, no es pot editar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>S&apos;ha ocultat la contrasenya</translation>
+ <translation type="vanished">S&apos;ha ocultat la contrasenya</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>S&apos;ha ocultat la contingut</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Contrasenya</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>S&apos;ha netejat el porta-retalls</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>No s&apos;ha netejat el porta-retalls</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>S&apos;ha ocultat el porta-retalls i la contrasenya</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Cerca de: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Fitxer nou</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Fitxer de contrasenyes nou:
(s&apos;ubicarà a %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Suprimir la contrasenya?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Esteu segur que voleu suprimir %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Suprimir la carpeta?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Esteu segur que voleu suprimir %1%2?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> i tot el contingut</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>No es pot obtenir la llista de claus</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>No es pot obtenir la llista de claus gpg disponibles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>No s&apos;ha trobat la clau a l&apos;anell de claus</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generació del parell de claus GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>S&apos;ha canviat el perfil a %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Afegeix una carpeta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Afegeix una contrasenya</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Carpeta nova:
(s&apos;ubicarà a %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>S&apos;ha copiat al porta-retalls</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Cap caràcter triat</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>No es pot generar la contrasenya, no hi ha caràcters per triar a la configuració!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Contrasenya</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Genera</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Mostra la contrasenya</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Conjunt de caràcters:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Tots els caràcters</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alfabètics</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alfanumèrics</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Perçonalitzat</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Longitud:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation>voleu forçar la sobreescriptura?</translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation>sobreescriu %1 amb %2?</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>Mo&amp;stra</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Oculta</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>Mi&amp;nimitza</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>Ma&amp;ximitza</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Restaura</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Surt</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Usuaris d&apos;accés de lectura</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Seleccioneu quins usuaris podran desxifrar les contrasenyes emmagatzemades en aquesta carpeta.
Nota: no es modificaran els fitxers existents i conservaran els permisos anteriors fins que els editeu.
Les entrades blaves tenen disponible una clau secreta, seleccioneu una d&apos;aquestes per desxifrar.
Les entrades vermelles no són vàlides, no podreu xifrar.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Cerca usuaris</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Mostra les claus inutilitzables</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>creada</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>venç</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_cs_CZ.ts b/localization/localization_cs_CZ.ts
index 731f78d..ea4e252 100644
--- a/localization/localization_cs_CZ.ts
+++ b/localization/localization_cs_CZ.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="cs_CZ">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Konfigurace</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Nastavení</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Chování schránky:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Vymazat po:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>sekundách</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Chování hesla:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Skrýt obsah</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Skrýt heslo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Vymazat panel po:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Generování hesel:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Délka hesla:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>znaků</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Použít znaky:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Použít pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Nepoužívat VELKÁ písmena</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Používat speciální znaky</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Generovat zapamatovatelná méně bezpečná hesla</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Nepoužívat čísla</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Použít git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Automaticky přidat .gpg-id soubory</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automaticky odesílat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automaticky stahovat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Systém:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Zobrazit ikonu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Spustit skryté</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Zavřením skrýt</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Vždy navrchu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programy</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Vybrat program správce hesel:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>&amp;Výchozí git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>Po&amp;užít pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Výchozí</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profily</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Jméno</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Cesta</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Přidat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Smazat</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Aktuální úložiště hesel</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Šablona</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Šablony přidávají další pole v dialogu generování hesla a v náhledu hesla.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Použít šablonu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Zobrazit všechny řádky začínající slovem následovaným středníkem jako pole v polích hesla, nejen vypsaná</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Zobrazit všechna pole v šabloně</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; verze </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Bez schránky</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Vždy zkopírovat do schránky</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Na vyžádání zkopírovat do schránky</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Nebyl vybrán profil</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Nebyl vybrán profil ke smazání</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG nenalezeno</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Nainstalujte prosím GnuPG na svůj systém.&lt;br&gt;Nainstalujte &lt;strong&gt;gpg&lt;/strong&gt; za použití upřednostňovaného správce balíků&lt;br&gt;nebo ho &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;stáhněte&lt;/a&gt; z GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Vytvořit úložiště hesel?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Chcete vytvořit úložiště hesel v %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Úložiště hesel není vytvořeno</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Adresář %1 nevypadá jako úložiště hesel, nebo ještě nebyl vytvořen.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished">Nelze upravovat</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished">Nelze načíst šifrovací klíč, .gpg-id soubor chybí nebo je neplatný.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished">Nelze aktualizovat</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished">Selhalo otevření .gpg-id pro zápis.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished">Zaškrtnout vybrané uživatele!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished">Pro žádný z vybraných klíčů není dostupný tajný klíč.
Nebudete moci dešifrovat žádná nově přidaná hesla!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished">Nově šifrováno z adresáře %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished">Aktualizace úložiště hesel</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Generovat GnuPG klíče</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Generovat nový pár klíčů</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Bezpečnostní heslo</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Jméno</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Délka bezpečnostního hesla není nijak omezena a mělo by být zvoleno s rozvahou. Z bezpečnostního pohledu je heslo odemykající privátní klíč jedním z nejslabších bodů v GnuPG (a jiných šifrovacích systémů na stejném principu) jelikož je toto jedinou ochranou v případě, že se další osoba zmocní privátního klíče. &lt;br/&gt;Ideálně by bezpečnostní heslo nemělo obsahovat slovníková hesla a naopak mělo používat mix velkých a malých znaků abecedy i další speciální znaky.&lt;br/&gt;Dobré heslo je zásadní pro bezpečné používání GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Možnosti expertního nastavení můžete nalézt v &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manuálu&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Tato operace může zabrat několik minut.&lt;br /&gt;Je třeba vygenerovat množství náhodných dat. Pro urychlení můžete pomoci (psaním na klávesnici, pohybováním myší, zapisováním na disk) s jejich generováním; toto pomůže generátoru náhodných čísel zvýšit šanci na získání dostatečné entropie.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Přidat</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Upravit</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Smazat</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Odeslat</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Stáhnout</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Správa oprávnění číst data v adresáři</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Uživatelé</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Konfigurace</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Nastavení</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Hledat heslo</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Vítejte v QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Přidat heslo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Přidat adresář</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Selhalo připojení k WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV heslo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Vložte heslo pro připojení k WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav neočekávaně skončil
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Selhalo spuštění fusedav pro připojení k WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Aktualizace úložiště hesel</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Nelze upravovat</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Vybraný soubor s heslem neexistuje, nelze upravovat</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Skryté heslo</translation>
+ <translation type="vanished">Skryté heslo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Skrytý obsah</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished">Heslo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Schránka vymazána</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Schránka nevymazána</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Skryté heslo i obsah</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Vyhledávání: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nový soubor</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Nový soubor s heslem:
(Bude uložen do %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Smazat heslo?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Opravdu chcete smazat %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Smazat adresář?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Opravdu chcete smazat %1? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Nelze získat seznam klíčů</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Nelze získat seznam dostupných gpg klíčů</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Klíč nebyl v klíčence nalezen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generování páru GPG klíčů</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil změněn na %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Přidat adresář</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Přidat heslo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nový adresář:
(Bude umístěn do %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>zkopírovat do schránky</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished">Znaky nebyly vybrány</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished">Nelze generovat heslo, v nastavení nebyla vybrána skladba znaků pro heslo!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Heslo</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generovat</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Zobrazit heslo</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>Z&amp;obrazit</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Skrýt</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>Mi&amp;nimalizovat</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>Ma&amp;ximalizovat</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>Obno&amp;vit</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>Ukonči&amp;t</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Uživatelé s právy číst</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Vyberte uživatele, kteří budou moci dešifrovat hesla uložená v tomto adresáři.
Poznámka: Existující soubory nebudou změněny a zachovají si stávající oprávnění až do té doby, než budou znovu upraveny.
Modře označené záznamy poskytují tajný klíč, vyberte jeden z nich, kterým bude možno dešifrovat.
Červeně označené záznamy nejsou platné, nebude pro ně možné šifrovat.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Hledat uživatele</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Zobrazit nepoužitelné klíče</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>vytvořen</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>vyprší</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_de_DE.ts b/localization/localization_de_DE.ts
index f44acf5..39743ba 100755
--- a/localization/localization_de_DE.ts
+++ b/localization/localization_de_DE.ts
@@ -1,971 +1,970 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativ</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;pass verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>.gpg-id Dateien automatisch hinzufügen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Sekunden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Verhalten der Zwischenablage:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Zwischenablage löschen nach:</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Passwort Anzeige:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Passwort ausblenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Anzeigezeit:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translatorcomment>Erzeugung würde auch funktionieren</translatorcomment>
<translation>Passwort Generierung:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Passwort Länge:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Verfügbare Zeichen:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Zeichensatz für Passwortgenerator auswählen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Alle Zeichen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alphanumerisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Eigene</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Großbuchstaben Ausschließen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Generiere einfach zu merkende, aber unsichere Passwörter</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Zahlen ausschließen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>System:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Zu verwendenden Passwortspeicher wählen:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Einh&amp;eimische git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; Version </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Immer im Vordergrund</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programme</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Zeichen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>pwgen verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Im System Tray anzeigen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Nur minimieren nicht beenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatisches &quot;Push&quot;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatisches &quot;Pull&quot;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Git verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Sonderzeichen zulassen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Minimiert starten</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profile</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Pfad</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>aktueller Passwort Speicher</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Templates</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Ein Template macht weitere Felder bei der Passwort Generierung und Anzeige verfügbar.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Templates verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Alle Zeilen, die mit einem Wort gefolgt von einem Doppelpunkt anfangen, als Template Element behandeln</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Alle Felder als Template benutzen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Inhalt ausblenden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG nicht gefunden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>GnuPG ist nicht installiert. &lt;br&gt;Installiere &lt;strong&gt;gpg&lt;/strong&gt; mit deinem favoriten Paket Manager&lt;br&gt;oder von GnuPG.org &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;herunterladen&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Passwort Speicher erstellen?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Soll ein Passwort Speicher in %1 erstellt werden?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Passwort Speicher nicht initialisiert</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Ordner %1 ist kein Passwort Speicher oder wurde noch nicht initialisiert.</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Kein Profil ausgewählt</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Keine Zwischenablage</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Immer in Zwischenablage kopieren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Bei Bedarf in Zwischenablage kopieren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Kein Profil zum Löschen ausgewählt</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Ändern nicht möglich</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Schlüssel nicht lesbar, .gpg-id Datei fehlt oder ist ungültig.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Update nicht möglich</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Schreibzugrif auf .gpg-id fehlgeschlagen.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Ausgewählte Benutzer prüfen!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Der Partnerschlüssel der selektierten Schlüssel fehlt.
Hiermit können keine neu hinzugefügefügten Passwörter entschlüsselt werden!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Neu-Verschlüsselung aus Ordner %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Passwort Speicher aktualisieren</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>GnuPG Schlüssel-Paar generieren</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Neues Schlüssel-Paar generieren</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Passphrase</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>E-Mail</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head /&gt;&lt;body&gt;&lt;p&gt;Es gibt keine Begrenzung für die Länge einer Passphrase und sie sollte sorgfältig ausgewählt werden. Aus der Sicht der Sicherheit, ist die Passphrase zum Entsperren des privaten Schlüssels einer der schwächsten Punkte in GnuPG (und anderen Public-Key-Verschlüsselungssystemen), da es der einzige Schutz, den Sie haben, wenn eine andere Person Ihren privaten Schlüssel bekommt. &lt;br/&gt; Idealerweise sollte die Passphrase nicht Wörter aus einem Wörterbuch sondern aus Klein- und Großbuchstaben sowie aus nicht-alphabetischen Zeichen bestehen. &lt;br/&gt; Eine gute Passphrase ist entscheidend für die sichere Nutzung von GnuPG. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Experte</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Einstellungen für Fortgeschrittene zu finden unter &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Ungültiger Name</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Name muss mindestens 5 Zeichen lang sein.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Ungültige E-Mail</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>Die eingegebene E-Mail-Adresse ist keine gültige E-Mail-Adresse.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translatorcomment>Google translate FTW</translatorcomment>
<translation>Dieser Vorgang kann einige Minuten dauern.&lt;br /&gt;Wir müssen eine Menge von zufälligen Bytes zu erzeugen. Es ist eine gute Idee während der Prim-Generierung eine andere Aktion (auf der Tastatur tippen, die Maus bewegen, Festplatten benutzen) auszuführen; Dies gibt dem Zufallszahlengenerator eine bessere Chance, genug Entropie zu gewinnen.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Ändern</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Hochladen (push)</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Aktualisieren</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Verwalten wer Passwörter im Ordner lesen kann</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Benutzer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Willkommen bei QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Passwort suchen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Passwort Speicher aktualisieren</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Zwischenablage gelöscht</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Neuer Ordner:
(Wird in %1 platziert werden)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Verbindung zu WebDAV fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Passwort Hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Ordner Hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV Passwort</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Passwort für WebDAV eingeben:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>Unerwarteter Abbruch durch fusedav</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>fusedav konnte nicht gestartet werden, WebDav Verbindung fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Passwort ausgeblendet</translation>
+ <translation type="vanished">Passwort ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Inhalt ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Zwischenablage nicht geleert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password und Inhalt ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Sind Sie sicher, dass Sie %1%2 löschen wollen? </translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> und einhalt</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>in Zwischenablage kopiert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Ordner hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Passwort hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Willkommen bei QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Suche nach: %1</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Ändern nicht möglich</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Neue Datei</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Passwort löschen?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Sind Sie sicher, dass Sie %1 löschen wollen?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Ordner löschen?</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Gewählte Passwort-Datei existiert nicht, Änderung nicht möglich</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>
Neues Passwort-Datei:
(Wird in %1 platziert werden)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Schlüssel-Liste nicht gefunden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>gpg Schlüssel-Liste konnte nicht gefunden werden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Schlüssel nicht in Keyring gefunden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>GPG Schlüssel-Paar wird generiert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil geändert zu %1</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Keine Zeichen ausgewählt</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Passwortgenerierung nicht möglich: Keine Zeichen zur Generierung ausgewählt! </translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generieren</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Passwort anzeigen</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Zeichensatz:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Alle Zeichen</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alphanumerisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Eigene</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Länge:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>&amp;Anzeigen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Verstecken</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>M&amp;inimieren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>M&amp;aximieren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Wiederherstellen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Schließen</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Benutzer mit Lese-Zugrif</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Hier die Benutzer eintragen denen Entschlüsselungszugriff für Passwörter in diesem Ordner gewährt werden soll.
Hinweis: Nachträglich hinzugefügte Nutzer müssen durch erneutes editieren des Passwort Speichers aktualisiert werden.
Die blauen Einträgen verfügen über einen gültigen Schlüssel. Zum entschlüsseln auswählen.
Die roten Einträge sind ungültig / abgelaufen und für Entschlüsselung nicht wählbar.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Benutzer suchen</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>unbrauchbare Schlüssel anzeigen</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>erstellt</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>gültig bis</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_de_LU.ts b/localization/localization_de_LU.ts
index 64372aa..6ebe7c6 100755
--- a/localization/localization_de_LU.ts
+++ b/localization/localization_de_LU.ts
@@ -1,970 +1,969 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_LU">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativ</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;pass verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>.gpg-id Dateien automatisch hinzufügen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Sekunden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Zwischenablage:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Zwischenablage löschen nach:</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Passwort Anzeige:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Passwort ausblenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Anzeigezeit:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translatorcomment>Erzeugung würde auch funktionieren</translatorcomment>
<translation>Passwort Generierung:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Passwort Länge:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Verfügbare Zeichen:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Zeichensatz für Passwortgenerator auswählen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Alle Zeichen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alphanumerisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Eigene</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Großbuchstaben Ausschließen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Generiere einfach zu merken, aber weniger sichere Passwörter</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Nummern ausschließen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>System:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Zu verwendenden Passwortspeicher wählen:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Einh&amp;eimische git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; Version </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Immer oben</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programme</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Zeichen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>pwgen verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Im System Tray anzeigen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Nur minimieren nicht beenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatisches &quot;Push&quot;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatisches &quot;Pull&quot;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Git verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Sonderzeichen zulassen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Minimiert starten</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profile</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Pfad</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>aktueller Password Store</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Templates</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Ein Template macht weitere Felder bei der Passwort Generierung und Anzeige verfügbar.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Templates verwenden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Behandle alle Zeilen, die mit einem Wort gefolgt von einem Doppelpunkt beginen, alls Template Element</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Alle Felder als Template benutzen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Inhalt ausblenden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG nicht gefunden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>GnuPG ist nicht installiert. &lt;br&gt;Installiere &lt;strong&gt;gpg&lt;/strong&gt; mit dem favoriten Package Manager&lt;br&gt;oder von GnuPG.org &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;herunterladen&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Password Store erstellen?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Soll ein Password Store in %1 erstellt werden?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password Store nicht initialisiert</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Ordner %1 ist kein Password Store oder wurde noch nicht initialisiert.</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Kein Profil ausgewählt</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Keine Zwischenablage</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Immer in Zwischenablage kopieren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Bei Bedarf in Zwischenablage kopieren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Kein Profil zum Löschen ausgewählt</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Ändern nicht möglich</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Schlüssel nicht lesbar, .gpg-id Datei fehlt oder ist ungültig.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Update nicht möglich</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Schreibzugrif auf .gpg-id fehlgeschlagen.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Ausgewählte Benutzer prüfen!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Der Partnerschlüssel der selektierten Schlüssel fehlt.
Hiermit können keine neu hinzugefügefügten Passwörter entschlüsselt werden!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Neu-Verschlüsselung aus Ordner %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Passwort Speicher aktualisieren</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>GnuPG Schlüssel-Paar generieren</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Neue Schlüssel generieren</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>E-Mail</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head /&gt;&lt;body&gt;&lt;p&gt;Es gibt keine Begrenzung für die Länge eines Passworts, und es sollte sorgfältig ausgewählt werden. Aus der Sicht der Sicherheit, um das Passwort des privaten Schlüssels entsperren ist einer der schwächsten Punkte in GnuPG (und andere Public-Key-Verschlüsselungssysteme als auch), da es der einzige Schutz, den Sie haben, wenn eine andere Person Ihren privaten Schlüssel bekommt. &lt;br/&gt; Idealerweise sollte das Passwort nicht Wörter aus einem Wörterbuch verwenden und sollte den Fall von Buchstaben mischen sowie die Verwendung nicht-alphabetische Zeichen. &lt;br/&gt; Ein gutes Passwort ist entscheidend für die sichere Nutzung von GnuPG. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Experte</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Einstellungen für Fortgeschrittene zu finden unter &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Ungültiger Name</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Der Name muss mindestens 5 Zeichen lang sein.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Ungültige Email</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>Die eingegebene Email Addresse ist ungültig.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Der Vorgang kann einige Minuten dauern. &lt;br /&gt; Das System muss Entropie für die Zufallsbytes sammeln. Führen sie in der Zwischenzeit andere Aufgaben mit dem PC durch um die Entropiegeneration zu beschleunigen.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Ändern</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Hochladen (push)</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Aktualisieren</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Ordne wer Kennworten in Ordner lesen kann</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Benutzer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Willkommen bei QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Kennwort suchen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Password Store aktualisieren</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Zwischenablage gelöscht</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Neuer Ordner:
(Wird in %1 platziert werden)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Verbindung zu WebDAV fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Kennwort Hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Ordner Hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV Passwort</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Passwort für WebDAV eingeben:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>Unerwarteter Abbruch durch fusedav</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>fusedav konnte nicht gestartet werden, WebDav Verbindung fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Passwort ausgeblendet</translation>
+ <translation type="vanished">Passwort ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Inhalt ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Zwischenablage nicht geleert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password und Inhalt ausgeblendet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Sind Sie sicher, dass Sie %1 löschen wollen? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>in Zwischenablage kopiert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Ordner hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Passwort hinzufügen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Wilkommen bei QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Suche nach: %1</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Ändern nicht möglich</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Neue Datei</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Passwort löschen?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Sind Sie sicher, dass Sie %1 löschen wollen?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Ordner löschen?</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Gewählte Passwort-Datei existiert nicht, Änderung nicht möglich</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>
Neues Passwort-Datei:
(Wird in %1 platziert werden)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Schlüssel-Liste nicht gefunden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>gpg Schlüssel-Liste konnte nicht gefunden werden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Schlüssel nicht in Keyring gefunden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>GPG Schlüssel-Paar wird generiert</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil geändert zu %1</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Keine Zeichen ausgewählt</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Passwortgenerierung nicht möglich: Keine Zeichen zur Generierung ausgewählt! </translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generieren</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Passwort anzeigen</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Zeichensatz:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Alle Zeichen</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alphanumerisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Eigene</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Länge:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>&amp;Anzeigen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Verstecken</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>M&amp;inimieren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>M&amp;aximieren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Wiederherstellen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Benutzer mit Lese-Zugrif</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Hier die Benutzer eintragen denen Entschlüsselungszugriff für Passwörter in diesem Ordner gewährt werden soll.
Hinweis: nachträglich hinzugefügte Nutzer müssen durch erneutes editieren des Password-Stores aktualisiert werden.
Die blauen Einträgen verfügen über einen gültigen Schlüssel, zum entschlüsseln auswählen.
Die roten Einträge sind ungültig / abgelaufen und für Entschlüsselung nicht wählbar.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Benutzer suchen</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>unbrauchbare Schlüssel anzeigen</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>erstellt</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>gültig bis</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_el_GR.ts b/localization/localization_el_GR.ts
index 702f16c..3a37fe0 100644
--- a/localization/localization_el_GR.ts
+++ b/localization/localization_el_GR.ts
@@ -1,944 +1,939 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="el_GR">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation type="unfinished">copied to clipboard</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_en_GB.ts b/localization/localization_en_GB.ts
index a7a3dc2..e43801b 100644
--- a/localization/localization_en_GB.ts
+++ b/localization/localization_en_GB.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_GB">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Clipboard behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Use primary selection</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Autoclear after:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Seconds</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Password Behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Content panel behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Hide content</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Hide password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Autoclear panel after:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Password Generation:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Password Length:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Characters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Use characters:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Use pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclude capital letters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Include special symbols </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Generate easy to memorise but less secure passwords</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclude numbers</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Use git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Automatically add .gpg-id files</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatically push</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatically pull</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>System:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Use TrayIcon</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Start minimized</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Hide on close</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Always on top</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programs</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Select password storage program:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Nati&amp;ve git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Use pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Native</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profiles</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Path</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Add</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Current password-store</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Templates add extra fields in the password generation dialogue and in the password view.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Use template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Show all fields templated</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>No Clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Always copy to clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>On-demand copy to clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>No profile selected</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>No profile selected to delete</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG not found</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Create password-store?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Would you like to create a password-store at %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password store not initialised</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Can not edit</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Could not read encryption key to use, .gpg-id file missing or invalid.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Cannot update</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Failed to open .gpg-id for writing.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Check selected users!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-encrypting from folder %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Updating password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Generate GnuPG keypair</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Generate a new key pair</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Passphrase</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilise the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Add</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Edit</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Update</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Manage who can read password in folder</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Users</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Config</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Welcome to QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Search Password</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Welcome to QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Add Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Add Folder</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Failed to connect WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Enter password to connect to WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav exited unexpectedly
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Failed to start fusedav to connect WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Updating password-store</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Can not edit</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Selected password file does not exist, not able to edit</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Password hidden</translation>
+ <translation type="vanished">Password hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Content hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Clipboard cleared</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Clipboard not cleared</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password and Content hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Looking for: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>New file</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>New password file:
(Will be placed in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Delete password?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Are you sure you want to delete %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Delete folder?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Are you sure you want to delete %1%2?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> and whole content</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Can not get key list</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Unable to get list of available gpg keys</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Key not found in keyring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generating GPG key pair</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profile changed to %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Add folder</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Add password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>New Folder:
(Will be placed in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copied to clipboard</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>No characters chosen</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Can&apos;t generate password, there are no characters to choose from set in the configuration!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generate</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Show password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Quit</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Read access users</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Search Users</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Show unusable keys</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>created</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expires</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_en_US.ts b/localization/localization_en_US.ts
index 785fd8b..305136a 100644
--- a/localization/localization_en_US.ts
+++ b/localization/localization_en_US.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Clipboard behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Use primary selection</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Autoclear after:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Seconds</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Password Behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Content panel behaviour:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Hide content</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Hide password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Autoclear panel after:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Password Generation:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Password Length:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Characters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Use characters:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Use pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclude capital letters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Include special symbols </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Generate easy to memorise but less secure passwords</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclude numbers</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Use git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Automatically add .gpg-id files</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatically push</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatically pull</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>System:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Use TrayIcon</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Start minimized</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Hide on close</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Always on top</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programs</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Select password storage program:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Nati&amp;ve git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Use pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Native</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profiles</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Path</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Add</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Current password-store</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Templates add extra fields in the password generation dialogue and in the password view.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Use template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Show all fields templated</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>No Clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Always copy to clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>On-demand copy to clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>No profile selected</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>No profile selected to delete</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG not found</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Create password-store?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Would you like to create a password-store at %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password store not initialised</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Can not edit</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Could not read encryption key to use, .gpg-id file missing or invalid.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Cannot update</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Failed to open .gpg-id for writing.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Check selected users!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-encrypting from folder %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Updating password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Generate GnuPG keypair</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Generate a new key pair</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Passphrase</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilise the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Add</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Edit</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Update</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Manage who can read password in folder</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Users</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Config</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Welcome to QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Search Password</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Welcome to QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Add Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Add Folder</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Failed to connect WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Enter password to connect to WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav exited unexpectedly
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Failed to start fusedav to connect WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Updating password-store</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Can not edit</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Selected password file does not exist, not able to edit</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Password hidden</translation>
+ <translation type="vanished">Password hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Content hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Clipboard cleared</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Clipboard not cleared</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password and Content hidden</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Looking for: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>New file</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>New password file:
(Will be placed in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Delete password?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Are you sure you want to delete %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Delete folder?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Are you sure you want to delete %1%2?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> and whole content</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Can not get key list</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Unable to get list of available gpg keys</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Key not found in keyring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generating GPG key pair</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profile changed to %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Add folder</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Add password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>New Folder:
(Will be placed in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>Copied to clipboard</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>No characters chosen</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Can&apos;t generate password, there are no characters to choose from set in the configuration!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generate</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Show password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Quit</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Read access users</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Search Users</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Show unusable keys</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>created</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expires</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_es_ES.ts b/localization/localization_es_ES.ts
index 5fb594f..721cd90 100644
--- a/localization/localization_es_ES.ts
+++ b/localization/localization_es_ES.ts
@@ -1,960 +1,959 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="es_ES">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuración</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>…</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Utilizar pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Añadir ficheros .gpg-id automáticamente</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Segundos</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Ocultar contraseña</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Aplicaciones</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Ajustes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caracteres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Usar pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Usar icono de bandeja</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Ocultar al cerrar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Usar git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Incluir símbolos especiales</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Iniciar minimizado</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Perfiles</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nombre</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Ruta</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Añadir</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Almacen actual de contraseñas</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Borrar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Ocultar contenido</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>No se ha encontrado GnuPG</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Instala GnuPG en su sistema. &lt;br&gt;Instalar &lt;strong&gt;gpg&lt;/strong&gt; usando su gestor de paquetes favorito&lt;br&gt; o descargarlo de &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;GnuPG.org&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Crear almacen de contraseñas?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>¿Crear almacen de contraseñas en %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Almacen de contraseñas no inicializado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>La carpeta %1 no es un almacen de contraseñas o no ha sido inicializado.</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Sin perfil seleccionado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Sin perfil seleccionado para borrar</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>No se puede editar</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>No se pudo leer la clave de cifrado, fichero gpg-id falta o no es valido.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>No se puede actualizar</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>No se pudo abrir .gpg-id para escribir.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Compruebe usuarios seleccionados!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Ninguna de las llaves seleccionadas tiene una llave secreta disponible.
Usted no será capaz de descifrar cualquier contraseña que acaba de agregar!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Actualizando password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Generar llaves GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Generar nuevo par de llaves</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Frase de contraseña</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nombre</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;No hay límite en la longitud de una frase de contraseña, y debe ser elegido con cuidado. Desde la perspectiva de la seguridad, la contraseña para desbloquear la clave privada es uno de los puntos más débiles en GnuPG (y otros sistemas de clave pública de cifrado también), ya que es la única protección que tiene si otro individuo obtiene su clave privada. &lt;br/&gt;Idealmente, la frase de contraseña no debe usar palabras de un diccionario y se debe mezclar los caracteres alfabéticos con caracteres no alfabéticos.&lt;br/&gt;Una buena frase de contraseña es crucial para el uso seguro de GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Experto</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Para las opciones avanzadas revisan el &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manual de GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Añadir</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Editar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Borrar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Actualizar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Usuarios</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuración</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configuración</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Actualizando password-store</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Portapapeles vacío</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>No se pudo conectar WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Contraseña QtPass WebDAV</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Introduzca contraseña para conectarse a WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav se ha cerrado inesperadamente</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Error al iniciar fusedav para conectar WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Contraseña oculta</translation>
+ <translation type="vanished">Contraseña oculta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contenido oculto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Portapapeles no vaciado</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Contraseña y contenido oculto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::Fallo al iniciar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Roto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Caducado</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::Error de lectura</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::Error de escritura</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::Error desconocido</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Está seguro que quiere borrar %1? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copiado en el portapapeles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Añadir carpeta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Añadir contraseña</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Bienvenido a QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Buscando %1</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">No se puede editar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nuevo fichero</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Borrar contraseña?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Está seguro que quiere borrar %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Borrar carpeta?</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Fichero de contraseñas seleccionado no existe, no se puede editar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>No se puede obtener lista de claves</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>No se puede obtener lista de llaves gpg disponibles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>La llave no se encuentra en el llavero</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generar par de claves GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Perfil cambiado a %1</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Generar</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Mostrar contraseña</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished">&amp;Salir</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Mostrar usuarios con acceso</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Seleccione los usuarios que deben ser capaces de descifrar las contraseñas almacenadas en esta carpeta.
Nota: Los archivos existentes no se modificarán y los viejos permisos se mantienen hasta que se editen.
Entradas azules tienen una clave secreta disponible, seleccione uno de estos para poder descifrar.
Entradas rojas no son válidos, usted no será capaz de cifrar a estos.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Mostrar claves no usables</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>creado</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>caduca</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_fr_BE.ts b/localization/localization_fr_BE.ts
index 952c0fd..747df34 100644
--- a/localization/localization_fr_BE.ts
+++ b/localization/localization_fr_BE.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_BE">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Gestion du presse-papiers :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Supprimer après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Secondes</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Comportement du panel de visualisation des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Cacher le contenu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Cacher le mot de passe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Cacher le contenu après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Génération des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Longueur du mot de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caractères</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Utiliser les caractères suivants :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Utiliser pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclure les majuscules</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Utiliser des symbôles spéciaux</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Générer des mots de passe plus facile à mémoriser, mais moins sécurisés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclure les chiffres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Utiliser git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Ajouter automatiquement les fichiers .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Pousser automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Récupérer automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Système :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Utiliser l&apos;icône dans la barre des tâches</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Démarrer avec la fenêtre réduite</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Cacher à la fermeture</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Toujours au dessus</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programmes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Sélectionner le programme de stockage des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Utiliser Git/GPG en &amp;natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>Utiliser le logiciel &amp;pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profils</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Chemin</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Magasin de mots de passe actuel</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Les templates ajoutent des champs supplémentaires dans la boîte de dialogue de génération de mdp et dans le panel de visualisation</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Utiliser un template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Montrer toutes les lignes qui commencent par un mot suivi de deux points en tant que champs dans les champs de mots de passe, pas uniquement ceux listés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Afficher tous les champs avec un template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>identifiant
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Ne pas copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Toujours copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copier vers le presse-papier sur demande</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Pas de profil sélectionné</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Pas de profil sélectionné à supprimer</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG n&apos;as pas été trouvé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Merci d&apos;installer GnuPG sur votre système&lt;br&gt;Installez &lt;strong&gt;gpg&lt;/strong&gt; en utilisant votre gestionnaire de paquet préféré&lt;br&gt;ou &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;téléchargez&lt;/a&gt; le depuis GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Créer le magasin de mots de passe ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Voulez-vous créer un magasin de mots de passe dans %1 ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Magasin de mots de passe pas encore initialisé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Le dossier %1 ne semble pas être un magasin de mots de passe ou n&apos;as pas encore été initialisé.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Impossible d&apos;éditer</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Impossible de lire la clé de chiffrement à utiliser, le fichier .gpg-id est manquant ou corrompu.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Impossible de mettre à jour</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Impossible d&apos;ouvrir .gpg-id en écriture.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Cocher les utilisateurs sélectionnés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Aucune des clés sélectionnées n&apos;a de clé privée disponible.
Vous ne serez pas en mesure de déchiffrer les mots de passe nouvellement ajoutés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-chiffrement depuis le dossier %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Générer une nouvelle paire de clés GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Générer une nouvelle paire de clés</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Phrase de passe</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Il n&apos;y a pas de limite de taille sur une phrase de passe, et cette dernière doit être choisie méticuleusement. D&apos;un point de vue sécurité, la phrase de passe qui permet de déverrouiller votre clé privée GnuPG est le point faible du système (comme tous les autres systèmes à base de clés asymétriques), car c&apos;est la dernière protection qu&apos;il reste si quelqu&apos;un met la main sur votre clé privée.&lt;br/&gt;Idéalement, la phrase de passe ne devrait pas utiliser de mots provenant du dictionnaire, et devrait contenir des majuscules, minuscules, et des caractères non alpha-numériques.&lt;br/&gt;Une bonne phrase de passe est cruciale à l&apos;utilisation en toute sécurité de GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Pour les options avancées, veuillez consulter le &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manuel GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Editer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Pousser</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Mettre à jour</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gérer qui peut lire les mots de passe dans le dossier</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Utilisateurs</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Config</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Bienvenue sur QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Chercher un mot de passe</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Bienvenue sur QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Ajouter mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Ajouter dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Impossible de se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Mot de passe WebDAV QtPass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Entrez un mot de passe pour vous connecter au WebDAV :</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav s&apos;est terminé de manière improviste
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Impossible de démarrer fusedav pour se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Impossible d&apos;éditer</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Le fichier de mots de passe sélectionné n&apos;existe pas, impossible de le modifier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Mot de passe caché</translation>
+ <translation type="vanished">Mot de passe caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contenu caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Presse-papiers vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Presse-papiers non vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Mot de passe et contenu cachés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Recherche de : %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nouveau fichier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Enregistrement d&apos;un nouveau mot de passe :
(Sera stocké dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Supprimer le mot de passe ?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Êtes-vous sûr de vouloir supprimer %1 ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Supprimer le dossier ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Êtes-vous sûr de vouloir supprimer %1 ? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Impossible de récupérer la liste de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Impossible d&apos;obtenir la liste des clés GPG disponibles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Clé introuvable dans le trousseau de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Génération d&apos;une paire de clés GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil changé vers %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Ajouter un dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Ajouter un mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nouveau dossier :
(Sera créé dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copié dans le presse-papiers</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Pas de caractères choisis</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Impossible de générer un mot de passe, il n&apos;y a pas de caractères utilisables définis dans la configuration !</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Générer</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Afficher le mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>GAD</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Utilisateurs avec droit de lecture</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Cochez les utilisateurs que vous autorisez à déchiffrer les MDP de ce dossier.
Remarque : Les fichiers existants ne seront pas modifiés et garderont les anciennes permissions jusqu’à ce que vous les éditiez.
Les entrées en bleu correspondent à vos propres clés, sélectionnez au moins l&apos;une d&apos;elles pour être vous-même capable de déchiffrer les MDP.
Les entrées en rouge ne sont pas marquées comme étant de confiance dans GnuPG, vous ne pourrez pas chiffrer vers celles-ci.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Chercher des utilisateurs</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Afficher les clés inutilisables</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>créé</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expire</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_fr_FR.ts b/localization/localization_fr_FR.ts
index aa54b6e..06623ff 100644
--- a/localization/localization_fr_FR.ts
+++ b/localization/localization_fr_FR.ts
@@ -1,1002 +1,1001 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_FR">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Gestion du presse-papier :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Utiliser la sélection principale</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Vider automatiquement après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Secondes</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Comportement du panneau de visualisation des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Comportement du panneau de contenu :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Cacher le contenu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Cacher le mot de passe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Cacher le contenu après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Génération des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Longueur du mot de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caractères</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Utiliser les caractères suivants :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Choisissez les caractères à utiliser pour la génération de mots de passe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Tous</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alphabétiques</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alphanumériques</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Personnalisé</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Utiliser pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclure les majuscules</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Utiliser des symboles spéciaux </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Générer des mots de passe plus facile à mémoriser, mais moins sécurisés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclure les chiffres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Utiliser git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Ajouter automatiquement les fichiers .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Pousser automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Récupérer automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Système :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Utiliser l&apos;icône dans la barre des tâches</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Démarrer avec la fenêtre réduite</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Cacher à la fermeture</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Toujours visible</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programmes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Sélectionner le programme de stockage des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Utiliser Git/GPG en &amp;natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>Utiliser le logiciel &amp;pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profils</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Chemin</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Magasin de mots de passe actuel</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Modèle</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Les modèles ajoutent des champs supplémentaires dans la boîte de dialogue de génération des mots de passe et dans le panneau de visualisation</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Utiliser un modèle</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Afficher comme champs toutes les lignes qui commencent par un mot suivi de deux points, dans les champs de mots de passe ; pas uniquement ceux qui sont listés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Afficher tous les champs avec un Modèle</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>identifiant
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>version de &lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Ne pas copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Toujours copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copier vers le presse-papier à la demande</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Aucun profil sélectionné</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Aucun profil sélectionné pour la suppression</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG n&apos;as pas été trouvé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Merci d&apos;installer GnuPG sur votre système&lt;br&gt;Installez &lt;strong&gt;gpg&lt;/strong&gt; en utilisant votre gestionnaire de paquet préféré&lt;br&gt;ou &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;téléchargez&lt;/a&gt; le depuis GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Créer le magasin de mots de passe ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Voulez-vous créer un magasin de mots de passe dans %1 ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Magasin de mots de passe non initialisé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Le dossier %1 ne semble pas être un magasin de mots de passe ou n&apos;as pas encore été initialisé.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Impossible d&apos;éditer</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Impossible de lire la clé de chiffrement à utiliser, le fichier .gpg-id est manquant ou corrompu.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Impossible de mettre à jour</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Impossible d&apos;ouvrir .gpg-id en écriture.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Cocher les utilisateurs sélectionnés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Aucune des clés sélectionnées ne dispose d&apos;une clé secrète.
Vous ne pourrez pas déchiffrer les mots de passe nouvellement ajoutés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-chiffrement depuis le dossier %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Générer une nouvelle paire de clés GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Générer une nouvelle paire de clés</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Phrase de passe</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;La phrase de passe n&apos;a pas de limite de longueur. Celle-ci devrait être choisie soigneusement. De point de vue de la sécurité, la phrase de passe servant à déverrouiller la clé secrète représente l&apos;un des plus importants points faibles de GnuPG (tout comme pour les autres systèmes de chiffrement à clé publique), puisqu&apos;il s&apos;agit de la seule protection dont vous disposez si quelqu&apos;un s&apos;empare de votre clé privée. &lt;br/&gt;Idéalement, la phrase de passe ne devrait pas utiliser des mots du dictionnaire et devrait comporter des lettres majuscules et minuscules, ainsi que des caractères non alphabétiques.&lt;br/&gt;Une bonne phase de passe est indispensable à la sécurité de GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Pour les options avancées, veuillez consulter le &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manuel de GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Nom invalide</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Le nom doit faire au moins 5 caractères</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Courrier électronique invalide</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>L&apos;adresse de courrier électronique que vous avez saisie n&apos;est pas valide.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Cette opération peut prendre quelques minutes.&lt;br /&gt;Nous devons générer beaucoup d&apos;octets aléatoires. C&apos;est une bonne idée d&apos;effectuer une autre opération pendant la génération des nombres premiers (comme taper sur le clavier ou bouger la souris ou utiliser les disques durs) ; cela augmente les chance que le générateur de nombres aléatoires récolte assez d&apos;entropie.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Editer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Pousser</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Mettre à jour</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gérer qui peut lire les mots de passe dans le dossier</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Utilisateurs</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Config.</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Bienvenu dans QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; est une interface graphique pour &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, le gestionnaire canonique unix pour mots de passe.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Veuillez signaler toute &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;difficulté&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; que vous pourriez rencontrer en utilisant ce logiciel.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;Code source&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Chercher un mot de passe</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Bienvenue sur QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Ajouter mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Ajouter dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Impossible de se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Mot de passe WebDAV QtPass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Entrez un mot de passe pour vous connecter au WebDAV :</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav a quitté inopinément
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Impossible de démarrer fusedav pour se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Impossible d&apos;éditer</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Le fichier de mots de passe sélectionné n&apos;existe pas, impossible de le modifier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Mot de passe caché</translation>
+ <translation type="vanished">Mot de passe caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contenu caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Presse-papiers vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Presse-papiers non vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Mot de passe et contenu cachés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Recherche de : %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nouveau fichier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="vanished">Enregistrement d&apos;un nouveau mot de passe :
(Placé dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Supprimer le mot de passe ?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Êtes-vous sûr de vouloir supprimer %1 ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Supprimer le dossier ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Êtes-vous certain de vouloir supprimer %1%2</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> et tout son contenu ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Impossible de récupérer la liste de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Impossible d&apos;obtenir la liste des clés GPG disponibles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Clé introuvable dans le trousseau de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Génération d&apos;une paire de clés GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil sélectionné : %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Ajouter un dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Ajouter un mot de passe</translation>
</message>
<message>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="vanished">Nouveau dossier :
(Placé dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copié dans le presse-papiers</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Aucun caractère sélectionné</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Impossible de générer un mot de passe : aucun caractère défini dans la configuration !</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Générer</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Afficher le mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Ensemble de caractères :</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Tous</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alphabétiques</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alphanumériques</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Personnalisé</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Longueur :</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>GAD</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation>forcer le remplacement ?</translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation>remplacer %1 par %2 ?</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>&amp;Afficher</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Cacher</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>&amp;Minimiser</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>Ma&amp;ximiser</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Restorer</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Utilisateurs avec droit de lecture</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Sélectionnez quels utilisateurs devraient pouvoir déchiffrer les mots de passe placés dans ce dossier.
Remarque : les fichiers existants ne seront pas modifiés et garderont leurs permissions précédentes jusqu&apos;à ce que vous les éditiez.
Les entrées bleus disposent d&apos;une clé secrète, choisissez l&apos;une de celles-ci pour pouvoir décoder.
Les entrées rouges ne sont pas valides, vous ne pourrez pas vous en servir pour décoder.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Chercher des utilisateurs</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Afficher les clés inutilisables</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>créé</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expire</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_fr_LU.ts b/localization/localization_fr_LU.ts
index 83550f1..e8585d0 100644
--- a/localization/localization_fr_LU.ts
+++ b/localization/localization_fr_LU.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_LU">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Gestion du presse-papiers :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Supprimer après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Secondes</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Comportement du panel de visualisation des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Cacher le contenu</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Cacher le mot de passe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Cacher le contenu après :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Génération des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Longueur du mot de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caractères</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Utiliser les caractères suivants :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Utiliser pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Exclure les majuscules</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Utiliser des symbôles spéciaux</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Générer des mots de passe plus facile à mémoriser, mais moins sécurisés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Exclure les chiffres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Utiliser git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Ajouter automatiquement les fichiers .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Pousser automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Récupérer automatiquement</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Système :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Utiliser l&apos;icône dans la barre des tâches</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Démarrer avec la fenêtre réduite</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Cacher à la fermeture</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Toujours au dessus</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programmes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Sélectionner le programme de stockage des mots de passe :</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Utiliser Git/GPG en &amp;natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>Utiliser le logiciel &amp;pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Natif</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profils</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Chemin</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Magasin de mots de passe actuel</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Les templates ajoutent des champs supplémentaires dans la boîte de dialogue de génération de mdp et dans le panel de visualisation</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Utiliser un template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Montrer toutes les lignes qui commencent par un mot suivi de deux points en tant que champs dans les champs de mots de passe, pas uniquement ceux listés</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Afficher tous les champs avec un template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>identifiant
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Ne pas copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Toujours copier vers le presse-papier</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copier vers le presse-papier sur demande</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Pas de profil sélectionné</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Pas de profil sélectionné à supprimer</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG n&apos;as pas été trouvé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Merci d&apos;installer GnuPG sur votre système&lt;br&gt;Installez &lt;strong&gt;gpg&lt;/strong&gt; en utilisant votre gestionnaire de paquet préféré&lt;br&gt;ou &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;téléchargez&lt;/a&gt; le depuis GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Créer le magasin de mots de passe ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Voulez-vous créer un magasin de mots de passe dans %1 ?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Magasin de mots de passe pas encore initialisé</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Le dossier %1 ne semble pas être un magasin de mots de passe ou n&apos;as pas encore été initialisé.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Impossible d&apos;éditer</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Impossible de lire la clé de chiffrement à utiliser, le fichier .gpg-id est manquant ou corrompu.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Impossible de mettre à jour</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Impossible d&apos;ouvrir .gpg-id en écriture.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Cocher les utilisateurs sélectionnés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Aucune des clés sélectionnées n&apos;a de clé privée disponible.
Vous ne serez pas en mesure de déchiffrer les mots de passe nouvellement ajoutés !</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-chiffrement depuis le dossier %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Générer une nouvelle paire de clés GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Générer une nouvelle paire de clés</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Phrase de passe</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Il n&apos;y a pas de limite de taille sur une phrase de passe, et cette dernière doit être choisie méticuleusement. D&apos;un point de vue sécurité, la phrase de passe qui permet de déverrouiller votre clé privée GnuPG est le point faible du système (comme tous les autres systèmes à base de clés asymétriques), car c&apos;est la dernière protection qu&apos;il reste si quelqu&apos;un met la main sur votre clé privée.&lt;br/&gt;Idéalement, la phrase de passe ne devrait pas utiliser de mots provenant du dictionnaire, et devrait contenir des majuscules, minuscules, et des caractères non alpha-numériques.&lt;br/&gt;Une bonne phrase de passe est cruciale à l&apos;utilisation en toute sécurité de GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Pour les options avancées, veuillez consulter le &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manuel GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Editer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Pousser</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Mettre à jour</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gérer qui peut lire les mots de passe dans le dossier</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Utilisateurs</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Config</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Bienvenue sur QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Chercher un mot de passe</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Bienvenue sur QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Ajouter mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Ajouter dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Impossible de se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Mot de passe WebDAV QtPass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Entrez un mot de passe pour vous connecter au WebDAV :</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav s&apos;est terminé de manière improviste
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Impossible de démarrer fusedav pour se connecter au WebDAV :
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Mise à jour du magasin de mots de passe</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Impossible d&apos;éditer</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Le fichier de mots de passe sélectionné n&apos;existe pas, impossible de le modifier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Mot de passe caché</translation>
+ <translation type="vanished">Mot de passe caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contenu caché</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Presse-papiers vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Presse-papiers non vidé</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Mot de passe et contenu cachés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Recherche de : %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nouveau fichier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Enregistrement d&apos;un nouveau mot de passe :
(Sera stocké dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Supprimer le mot de passe ?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Êtes-vous sûr de vouloir supprimer %1 ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Supprimer le dossier ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Êtes-vous sûr de vouloir supprimer %1 ? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Impossible de récupérer la liste de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Impossible d&apos;obtenir la liste des clés GPG disponibles</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Clé introuvable dans le trousseau de clés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Génération d&apos;une paire de clés GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil changé vers %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Ajouter un dossier</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Ajouter un mot de passe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nouveau dossier :
(Sera créé dans %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copié dans le presse-papiers</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Pas de caractères choisis</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Impossible de générer un mot de passe, il n&apos;y a pas de caractères utilisables définis dans la configuration !</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Générer</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Afficher le mot de passe</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>GAD</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Utilisateurs avec droit de lecture</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Cochez les utilisateurs que vous autorisez à déchiffrer les MDP de ce dossier.
Remarque : Les fichiers existants ne seront pas modifiés et garderont les anciennes permissions jusqu’à ce que vous les éditiez.
Les entrées en bleu correspondent à vos propres clés, sélectionnez au moins l&apos;une d&apos;elles pour être vous-même capable de déchiffrer les MDP.
Les entrées en rouge ne sont pas marquées comme étant de confiance dans GnuPG, vous ne pourrez pas chiffrer vers celles-ci.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Chercher des utilisateurs</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Afficher les clés inutilisables</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>créé</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expire</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_gl_ES.ts b/localization/localization_gl_ES.ts
index 837b591..cf274fd 100644
--- a/localization/localization_gl_ES.ts
+++ b/localization/localization_gl_ES.ts
@@ -1,1055 +1,1050 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="gl_ES">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished">Axustes</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished">Segundos</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished">Ocultar contido</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished">Ocultar contrasinal</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished">Nativo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished">...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished">Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Dialog</name>
<message>
<source>Configuration</source>
<translation type="vanished">Axustes</translation>
</message>
<message>
<source>Pass</source>
<translation type="vanished">Pass</translation>
</message>
<message>
<source>...</source>
<translation type="vanished">...</translation>
</message>
<message>
<source>Executable pass</source>
<translation type="vanished">Executable pass</translation>
</message>
<message>
<source>Native</source>
<translation type="vanished">Nativo</translation>
</message>
<message>
<source>Executable git</source>
<translation type="vanished">Executable git</translation>
</message>
<message>
<source>Executable gpg</source>
<translation type="vanished">Executable gpg</translation>
</message>
<message>
<source>Native git/gpg</source>
<translation type="vanished">git/gpg nativo</translation>
</message>
<message>
<source>Use pass</source>
<translation type="vanished">Usar pass</translation>
</message>
<message>
<source>Other</source>
<translation type="vanished">Outros</translation>
</message>
<message>
<source>Folder password-store</source>
<translation type="vanished">Cartafol da password-store</translation>
</message>
<message>
<source>Clipboard</source>
<translation type="vanished">Portapapeis</translation>
</message>
<message>
<source>Autoclear</source>
<translation type="vanished">Limpado automático</translation>
</message>
<message>
<source>Seconds</source>
<translation type="vanished">Segundos</translation>
</message>
<message>
<source>Hide password</source>
<translation type="vanished">Ocultar contrasinal</translation>
</message>
<message>
<source>Hide content</source>
<translation type="vanished">Ocultar contido</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished">Actualizando password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Actualizar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished">Axustes</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Axustes</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>X</source>
<translation type="vanished">X</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;.Helvetica Neue DeskInterface&apos;; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:16px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot;&gt;QtPass is a gui for &lt;/span&gt;&lt;a href=&quot;http://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;ALPHA release&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;TODO&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;edit&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;insert&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;gpg-id management&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:16px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;a href=&quot;http://ijhack.github.io/qtpass/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Source code&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="vanished">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;.Helvetica Neue DeskInterface&apos;; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:16px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot;&gt;QtPass is a gui for &lt;/span&gt;&lt;a href=&quot;http://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;ALPHA release&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:x-large; font-weight:600; color:#333333;&quot;&gt;TODO&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;edit&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;insert&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:16px;&quot;&gt;gpg-id management&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:16px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;a href=&quot;http://ijhack.github.io/qtpass/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:25.6px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:16px; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Source code&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; color:#333333;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Actualizando password-store</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Portapapeis baleiro</translation>
</message>
<message>
<source>Password copied to clipboard</source>
<translation type="vanished">Contrasinal copiado ao portapapeis</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contido oculto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::Fallou o inicio</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Fallou</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Caducou</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::Erro de lectura</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::Erro de escritura</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::Erro descoñecido</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Looking for: </source>
<translation type="vanished">Buscando: </translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_he_IL.ts b/localization/localization_he_IL.ts
index 70c86e4..50dc616 100644
--- a/localization/localization_he_IL.ts
+++ b/localization/localization_he_IL.ts
@@ -1,945 +1,940 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="he_IL">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translatorcomment>Flips interface</translatorcomment>
<translation>RTL</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_hu_HU.ts b/localization/localization_hu_HU.ts
index b85a872..dda97f1 100644
--- a/localization/localization_hu_HU.ts
+++ b/localization/localization_hu_HU.ts
@@ -1,944 +1,939 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="hu_HU">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Konfiguráció</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Natív</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Perc</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Jelszó elrejtése</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Oldal elrejtése</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Jelszó-tároló frissítése</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Frissítés</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Konfiguráció</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Konfig</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Jelszó-tároló frissítése</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Vágólap tiszta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Oldal elrejtve</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess:NemIndultEl</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess:Összeomlás</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess:Időtúllépés</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess:OlvasásiHiba</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>IrásHiba</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>IsmeretlenHiba</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>a vágólapra másolt</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_it_IT.ts b/localization/localization_it_IT.ts
index 40530a6..310a4e6 100644
--- a/localization/localization_it_IT.ts
+++ b/localization/localization_it_IT.ts
@@ -1,966 +1,965 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configurazione</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Comportamento appunti:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Pulisci dopo:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Secondi</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Comportamento Password:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Nascondi contenuto</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Nascondi password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Pulisci dopo:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Creazione Password:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Lunghezza Password:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caratteri</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Caratteri utilizzati:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Usa pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Escludi lettere maiuscole</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Includi simboli speciali</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Genera password semplici da memorizzare ma meno sicure</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Escludi numeri</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Usa git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Aggiungi automaticamente i file .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Push automatico</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Pull automatico</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Sistema:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Usa la TrayIcon</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Avvia minimizzato</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Nascondi alla chiusura</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Sempre visibile</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programmi</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Seleziona un programma per conservare le password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Git/gpg nativi</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Usa pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profili</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nome</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Percorso</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Aggiungi</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Elimina</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Archivio password corrente</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Modello</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>I modelli aggiungono campi extra nella generazione e nella visualizzazione password.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Usa modello</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Mostra tutti i campi del modello</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; versione</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Non copiare negli appunti</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Copia sempre negli appunti</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copia negli appunti su richiesta</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Nessun profilo selezionato</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Nessun profilo selezionato per la rimozione</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG non trovato</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Installa GnuPG nel tuo sistema.&lt;br&gt;Installa &lt;strong&gt;gpg&lt;/strong&gt; utilizzando il gestore pacchetti&lt;br&gt;o &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;scaricalo&lt;/a&gt; da GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Creare un archivio password?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Vuoi creare un archivio password in %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Archivio password non inizializzato</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>La cartella %1 non sembra essere un archivio password, oppure non è inizializzata corretamente.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Impossibile modificare</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Impossibile leggere la chiave di criptazione da utilizzare, il file .gpg-id è mancante o non valido.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Impossibile aggiornare</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Impossibile aprire .gpg-id in scrittura.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Controlla gli utenti selezionati!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Nessuna delle chiavi selezionate ha una chiave privata disponibile.
Non sarai in grado di decifrare nessuna delle nuove password create!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Esegui nuovamente la cifratura dalla cartella %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Aggiornando password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Genera una coppia di chiavi GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Genera una nuova coppia di chiavi</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Password</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nome</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Non esiste un limite nella lunghezza della password, e deve essere cautamente scelta. Dal punto di vista della sicurezza, la password per sbloccare le chiavi private è uno dei punti più deboli di GnuPG (come in altri sistemi a cifratura con chiave pubblica), dato che è la sola protezione che hai nel caso ti venga rubata la chiave privata. &lt;br/&gt;Idealmente, la password non dovrebbe utilizzare parole reperibili in un dizionari e dovrebbe includere lettere maiuscole e minuscole insieme a caratteri non alfabetici.&lt;br/&gt;Avere una buona password è cruciale nella sicurezza di GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Avanzato</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Per le opzioni avanzate, visita il &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manuale di GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Nome non valido</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Il nome deve essere lungo almeno 5 caratteri.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Email non valida</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>L&apos;indirizzo email che hai inserito non è valido.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Questa operazione potrebbe richiedere alcuni minuti.&lt;br /&gt;Bisogna generare un gran numero di byte casuali, potrebbe velocizzare il processo continuare ad utilizzare il computer (scrivere con la tastiera, muovere il mouse, utilizzare il disco) durante la fase di creazione; questo darà al generatore di numeri random una maggiore possibilità di ottenere abbastanza entropia.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Aggiungi</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Modifica</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Elimina</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Aggiorna</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gestisci chi può leggere le password nella cartella</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Utenti</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configurazione</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configura</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Benvenuto in QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Cerca Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Benvenuto in QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Aggiungi Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Aggiungi Cartella</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Impossibile connettersi a WebDAV</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Inserisci la password per connetersi a WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav si è chiuso in modo anomalo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Impossibile connettere fusedav a WebDAV</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Aggiornando password-store</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Impossibile modificare</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Il file password selezionato non esiste o non è modificabile</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Password nascosta</translation>
+ <translation type="vanished">Password nascosta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Contenuto nascosto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Appunti svuotati</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Appunti non svuotati</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password e Contenuto nascosti</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Cercando: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nuovo file</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Nuovo file password:
(Verrà posizionato in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Eliminare password?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Sei sicuro di voler eliminare %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Eliminare cartella?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Sei sicuro di voler eliminare %1? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Impossibile ottenere la lista delle chiavi</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Impossibile ottenere la lista delle chiavi gpg disponibili</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Chiave non trovata nel portachiavi</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Generando una coppia di chiavi GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profilo cambiato in %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Aggiungi cartella</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Aggiungi password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nuova cartella:
(Verrà posizionata in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>copiato negli appunti</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Nessun carattere selezionato</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Impossibile generare una password, non ci sono caratteri dai quali scegliere. Cotrolla nella finestra di configurazione!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Genera</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Mostra password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>Mo&amp;stra</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Nascondi</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>&amp;Minimizza</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>Massimiz&amp;za</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Ripristina</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Esci</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Utenti con accesso in lettura</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Seleziona quali utenti saranno in grado di decifrare le password archiviate in questa cartella.
Nota: I file esistenti non saranno modificati e manterranno i vecchi permessi sino a quando non li modificherai.
Le righe blu hanno una chiave segreta disponibile, selezionane una per utilizzarla per decifrare.
Le righe rosse non sono valide, non saranno utilizzabili per cifrare.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Cerca Utenti</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Mostra chiavi non utilizzabili</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>creato</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>scade</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_lb_LU.ts b/localization/localization_lb_LU.ts
index df214d1..b3cccc9 100644
--- a/localization/localization_lb_LU.ts
+++ b/localization/localization_lb_LU.ts
@@ -1,944 +1,939 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="lb_LU">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_nl_BE.ts b/localization/localization_nl_BE.ts
index 09b06be..d664d7c 100644
--- a/localization/localization_nl_BE.ts
+++ b/localization/localization_nl_BE.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="nl_BE">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Instellingen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Klembord gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Gebruik selectie ipv klembord</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Wissen na:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Seconden</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Wachtwoord gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Inhoudsvlak gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Verberg inhoud</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Verberg wachtwoord</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Legen na:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Wachtwoord generator:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Wachtwoord lengte:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Karakters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Gebruik karakters:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Kies tekenset voor wachtwoord generatie</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Alle tekens</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alphanumeriek</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Eigen tekenset</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Gebruik pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Gebruik hoofdletters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Speciale karakters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Genereer makkelijk te onthouden maar minder veilige wachtwoorden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Sluit nummers uit</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Gebruik git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Voeg .gpg-id bestanden automatisch toe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatisch pushen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatisch pullen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Systeem:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Systeem tray</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Start in de tray</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Verbergen in plaats van sluiten</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Altijd boven</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programma&apos;s</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Selecteer wachtwoord opslag programma&apos;s:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>&amp;Systeemeigen git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Gebruik pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Systeem eigen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profielen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Naam</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Pad</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Toevoegen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Huidige password-store</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Templates voegen velden toe aan de wachtwoord aanmaak- bewerk- en toon-schermen.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Gebruik template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Geef alle regels die beginnen met een woord, gevolgd door een dubbele punt als velden weer, niet alleen de opgegeven</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Toon alle velden getemplate</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; versie </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Geen klembord</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Altijd naar klembord kopiëren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Wanneer gewenst kopiëren naar klembord</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Geen profiel geselecteerd</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Geen profiel geselecteerd om te verwijderen</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG niet gevonden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Installeer GnuPG op je systeem.&lt;br&gt;Installeer &lt;strong&gt;gpg&lt;/strong&gt; via je favoriete package manager&lt;br&gt;of &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; op GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Maak password-store aan?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Wil je een password-store maken op %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password-store niet geïnitialiseerd</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>De map %1 lijkt geen password store te zijn of is nog niet geïnitialiseerd.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Kan niet bewerken</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Geen idee waarvoor ik moet versleutelen, .gpg-id bestand mist of bevat onzin.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Kan niet updaten</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Kon .gpg-id bestand niet openen om te schrijven.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Kontroleer geselecteerde gebruikers!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Geen van de geselecteerde keys hebben een secret key beschikbaar.
Je kan nieuw toegevoegde wachtwoorden niet lezen!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Her-encrypten vanaf map %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Vernieuwen password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Genereer GnuPG sleutelpaar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Genereer een nieuw sleutelpaar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Wachtwoord</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Naam</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Er is geen limiet aan de lengte van een wachtwoord, en het moet zorgvuldig worden gekozen. Vanuit het perspectief van de veiligheid, de passphrase om de privé-sleutel te ontsluiten is een van de zwakste punten in GnuPG private (en andere public-key encryptie systemen ook) want het is de enige bescherming die u hebben als een ander individu krijgt uw sleutel. &lt;br/&gt; Idealiter zou de passphrase niet woorden uit een woordenboek en Mocht meng het geval van alfabetische tekens alsmede het gebruik van niet-alfabetische tekens. &lt;br/&gt; Een goed wachtwoord is cruciaal voor het veilig gebruik van GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Voor expert instellingen lees de &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Ongeldige naam</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Naam dient minstens 5 karakters lang te zijn.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Ongeldig emailadres</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>Het emailadres dat u heeft ingevoerd is voldoet niet aan de email standaard.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Deze operatie kan enkele minuten duren.&lt;br /&gt;We moeten veel willekeurige bytes te genereren. Het is een goed idee om een andere actie uit te voeren (type op het toetsenbord, beweeg de muis, maak gebruik van de disks) tijdens de priemgetal generatie; dit geeft de random getalgenerator meer kans om voldoende entropie krijgen.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Toevoegen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Bewerken</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Uploaden</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Vernieuwen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Beheer wie de wachtwoordmap kan lezen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Gebruikers</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Welkom bij QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; &lt;html&gt; &lt;head&gt; &lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot;/&gt; &lt;style type=&quot;text/css&quot;&gt; p, li { white-space: pre-wrap; } &lt;/style&gt; &lt;/head&gt; &lt;body style=&quot; font-family:&apos;Noto Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is een GUI voor &lt;/span&gt;&lt;a href=&quot;http://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, de standaard unix wachtwoord beheerder.&lt;/span&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br/&gt;Meldt gaarne alle &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;problemen&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; die je eventueel ondervindt.&lt;/span&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;a href=&quot;http://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentatie&lt;/span&gt;&lt;/a&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Broncode&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;/body&gt; &lt;/html&gt;
</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Zoek wachtwoord</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Welkom bij QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Voeg wachtwoord toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Voeg map toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Verbinding mislukt met WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV wachtwoord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Voer wachtwoord in om te verbinden met WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav is stuk, hield er zomaar mee op</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Kon fusedav niet verbinden met WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Vernieuwen password-store</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Kan niet bewerken</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Geselecteerde wachtwoord bestand bestaat niet, kan niet bewerken</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Wachtwoord verborgen</translation>
+ <translation type="vanished">Wachtwoord verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Inhoud verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Wachtwoord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Klembord gewist</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Klembord niet leeg gemaakt aangezien er geen wachtwoord in stond</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Wachtwoord en inhoud verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>Proces kon niet worden gestart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>Proces is gecrashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>Proces duurde te lang</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>Lees fout met proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>Kan niet schrijven naar proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>Er ging iets raars mis met proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Op zoek naar: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nieuw bestand</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Nieuw wachtwoord bestand:
(Wordt geplaatst in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Verwijder wachtwoord?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Weet je zeker dat je %1 wil verwijderen?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Verwijder map?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Weet je zeker dat je %1%2 wil verwijderen?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> en inhoud</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Kan sleutel lijst niet verkrijgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Kan lijst van beschikbare gpg sleutels niet opvragen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Sleutel niet gevonden in keyring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Nieuw GPG sleutelpaar genereren</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profiel veranderd naar %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Voeg map toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Voeg wachtwoord toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nieuwe map:
(Wordt geplaatst in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>gekopieerd naar het klembord</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Geen karakters gekozen</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Kan wachtwoord niet genereren, er zijn geen karakters gekozen in de configuratie!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Wachtwoord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Genereren</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Toon wachtwoord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Karakterset:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Alle karakters</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alphanumeriek</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Eigen tekenset</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Lengte:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation>overschrijven afdwingen?</translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation>overschrijven van %1 met %2?</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>&amp;Tonen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Verbergen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>M&amp;inimaliseren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>M&amp;aximaliseren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Herstellen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Afsluiten</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Gebruikers met leestoegang</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Selecteer welke gebruikers moeten in staat zijn om wachtwoorden opgeslagen in deze map te decoderen.
Opmerking: Bestaande bestanden zullen niet worden gewijzigd en behouden van de oude permissies totdat je ze bewerkt.
Blauwe inzendingen hebben een geheime sleutel beschikbaar is, selecteert u één van deze te kunnen ontcijferen.
Rode inzendingen zijn niet geldig, je zult niet in staat zijn om te coderen voor deze gebruikers.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Zoek gebruikers</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Toon onbruikbare sleutels</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>aangemaakt</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>vervalt</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_nl_NL.ts b/localization/localization_nl_NL.ts
index f42820f..7032bcd 100644
--- a/localization/localization_nl_NL.ts
+++ b/localization/localization_nl_NL.ts
@@ -1,985 +1,984 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="nl_NL">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Instellingen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Klembord gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Gebruik selectie ipv klembord</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Wissen na:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Secondes</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Wachtwoord gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Inhoudsvlak gedrag:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Verberg inhoud</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Verberg wachtwoord</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Legen na:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Wachtwoord generator:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Wachtwoord lengte:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Karakters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Gebruik karakters:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Kies tekenset voor wachtwoord generatie</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Alle tekens</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alphanumeriek</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Eigen tekenset</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Gebruik pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Gebruik hoofdletters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Speciale karakters</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Genereer makkelijk te onthouden maar minder veilige wachtwoorden</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Sluit nummers uit</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Gebruik git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Voeg .gpg-id bestanden automatisch toe</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatisch pushen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatisch pullen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Systeem:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Systeem tray</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Start in de tray</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Verbergen in plaats van sluiten</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Altijd boven</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programma&apos;s</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Selecteer wachtwoord opslag programma&apos;s:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>&amp;Systeemeigen git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Gebruik pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Systeem eigen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profielen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Naam</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Pad</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Toevoegen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Huidige password-store</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Templates voegen velden toe aan de wachtwoord aanmaak- bewerk- en toon-schermen.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Gebruik template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Geef alle regels die beginnen met een woord, gevolgd door een dubbele punt als velden weer, niet alleen de opgegeven</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Toon alle velden getemplate</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; versie </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Geen klembord</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Altijd naar klembord kopiëren</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Wanneer gewenst kopiëren naar klembord</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Geen profiel geselecteerd</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Geen profiel geselecteerd om te verwijderen</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG niet gevonden</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Installeer GnuPG op je systeem.&lt;br&gt;Installeer &lt;strong&gt;gpg&lt;/strong&gt; via je favoriete package manager&lt;br&gt;of &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; op GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Maak password-store aan?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Wil je een password-store maken op %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password-store niet geïnitialiseerd</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>De map %1 lijkt geen password store te zijn of is nog niet geïnitialiseerd.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Kan niet bewerken</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Geen idee waarvoor ik moet versleutelen, .gpg-id bestand mist of bevat onzin.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Kan niet updaten</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Kon .gpg-id bestand niet openen om te schrijven.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Kontroleer geselecteerde gebruikers!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Geen van de geselecteerde keys hebben een secret key beschikbaar.
Je kan nieuw toegevoegde wachtwoorden niet lezen!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Her-encrypten vanaf map %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Vernieuwen password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Genereer GnuPG sleutelpaar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Genereer een nieuw sleutelpaar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Wachtwoord</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Naam</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Er is geen limiet aan de lengte van een wachtwoord, en het moet zorgvuldig worden gekozen. Vanuit het perspectief van de veiligheid, de passphrase om de privé-sleutel te ontsluiten is een van de zwakste punten in GnuPG private (en andere public-key encryptie systemen ook) want het is de enige bescherming die u hebben als een ander individu krijgt uw sleutel. &lt;br/&gt; Idealiter zou de passphrase niet woorden uit een woordenboek en Mocht meng het geval van alfabetische tekens alsmede het gebruik van niet-alfabetische tekens. &lt;br/&gt; Een goed wachtwoord is cruciaal voor het veilig gebruik van GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Expert</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Voor expert instellingen lees de &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Ongeldige naam</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>Naam dient minstens 5 karakters lang te zijn.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Ongeldig emailadres</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>Het emailadres dat u heeft ingevoerd is voldoet niet aan de email standaard.</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Deze operatie kan enkele minuten duren.&lt;br /&gt;We moeten veel willekeurige bytes te genereren. Het is een goed idee om een andere actie uit te voeren (type op het toetsenbord, beweeg de muis, maak gebruik van de disks) tijdens de priemgetal generatie; dit geeft de random getalgenerator meer kans om voldoende entropie krijgen.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Toevoegen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Bewerken</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Verwijderen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Uploaden</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Vernieuwen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Beheer wie de wachtwoordmap kan lezen</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Gebruikers</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Welkom bij QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; &lt;html&gt; &lt;head&gt; &lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot;/&gt; &lt;style type=&quot;text/css&quot;&gt; p, li { white-space: pre-wrap; } &lt;/style&gt; &lt;/head&gt; &lt;body style=&quot; font-family:&apos;Noto Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is een GUI voor &lt;/span&gt;&lt;a href=&quot;http://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, de standaard unix wachtwoord beheerder.&lt;/span&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br/&gt;Meldt gaarne alle &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;problemen&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; die je eventueel ondervindt.&lt;/span&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;a href=&quot;http://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentatie&lt;/span&gt;&lt;/a&gt; &lt;/p&gt; &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; &lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Broncode&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;/body&gt; &lt;/html&gt;
</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Zoek wachtwoord</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Welkom bij QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Voeg wachtwoord toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Voeg map toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Verbinding mislukt met WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV wachtwoord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Voer wachtwoord in om te verbinden met WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav is stuk, hield er zomaar mee op</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Kon fusedav niet verbinden met WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Vernieuwen password-store</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Kan niet bewerken</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Geselecteerde wachtwoord bestand bestaat niet, kan niet bewerken</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Wachtwoord verborgen</translation>
+ <translation type="vanished">Wachtwoord verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Inhoud verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Wachtwoord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Klembord gewist</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Klembord niet leeg gemaakt aangezien er geen wachtwoord in stond</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Wachtwoord en inhoud verborgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>Proces kon niet worden gestart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>Proces is gecrashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>Proces duurde te lang</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>Lees fout met proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>Kan niet schrijven naar proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>Er ging iets raars mis met proces</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Op zoek naar: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Nieuw bestand</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Nieuw wachtwoord bestand:
(Wordt geplaatst in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Verwijder wachtwoord?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Weet je zeker dat je %1 wil verwijderen?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Verwijder map?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>Weet je zeker dat je %1%2 wil verwijderen? </translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation> en inhoud</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Kan sleutel lijst niet verkrijgen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Kan lijst van beschikbare gpg sleutels niet opvragen</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Sleutel niet gevonden in keyring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Nieuw GPG sleutelpaar genereren</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profiel veranderd naar %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Voeg map toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Voeg wachtwoord toe</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nieuwe map:
(Wordt geplaatst in %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>gekopieerd naar het klembord</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Geen karakters gekozen</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Kan wachtwoord niet genereren, er zijn geen karakters gekozen in de configuratie!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Wachtwoord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Genereren</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Toon wachtwoord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Karakterset:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Alle karakters</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alphabetisch</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alphanumeriek</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Eigen tekenset</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Lengte:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation>overschrijven afdwingen?</translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation>overschrijven van %1 met %2?</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>&amp;Tonen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>&amp;Verbergen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>M&amp;inimaliseren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>M&amp;aximaliseren</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>&amp;Herstellen</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Afsluiten</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Gebruikers met leestoegang</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Selecteer welke gebruikers moeten in staat zijn om wachtwoorden opgeslagen in deze map te decoderen.
Opmerking: Bestaande bestanden zullen niet worden gewijzigd en behouden van de oude permissies totdat je ze bewerkt.
Blauwe inzendingen hebben een geheime sleutel beschikbaar is, selecteert u één van deze te kunnen ontcijferen.
Rode inzendingen zijn niet geldig, je zult niet in staat zijn om te coderen voor deze gebruikers.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Zoek gebruikers</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Toon onbruikbare sleutels</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>aangemaakt</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>vervalt</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_pl_PL.ts b/localization/localization_pl_PL.ts
index dc79fbe..9aac6b6 100644
--- a/localization/localization_pl_PL.ts
+++ b/localization/localization_pl_PL.ts
@@ -1,944 +1,939 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pl_PL">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
- <source>Password hidden</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>skopiowany do schowka</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/localization/localization_pt_PT.ts b/localization/localization_pt_PT.ts
index 2510184..a65b42d 100644
--- a/localization/localization_pt_PT.ts
+++ b/localization/localization_pt_PT.ts
@@ -1,956 +1,955 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pt_PT">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Configuração</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Configurações</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Comportamento do Clipboard:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation>Utilizar seleção principal</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Limpar automaticamente depois de:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Segundos</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation>Comportamento do painel de conteúdos:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Ocultar conteúdo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Ocultar password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Limpar painel automaticamente depois de:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Criação password:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Cumprimento password:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Caracteres</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Utilizar caracteres:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>Selecionar o tipo de caracteres para a criação de password</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>Todos os caracteres:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>Alfabético</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>Alfanumérico</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>Personalizado</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Usar pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Excluir letras maiúsculas</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Incluir símbolos especiais</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Gerir passwords fáceis de memorizar mas menos seguras</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Excluir números</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Usar git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Adicionar ficheiros .gpg-id automaticamente</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Efetuar push automaticamente</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Efetuar pull automaticamente</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Sistema:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Usar TrayIcon</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Iniciar minimizado</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Ocultar ao fechar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Sempre visível</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Programas</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Selecionar programa para armazenar passwords</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>Nativo git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>Usar pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativo</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Perfis</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Nome</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Caminho</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Adicionar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Remover</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Password-store atual</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Templates adicionam campos extra no diálogo de criaçao e vista de passwords</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Usar template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>Mostrar todas as linhas que começam com uma palavra seguida de virgula como campos, na vista de passwords e não apenas os mostrados</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Mostrar todos os campos usados no template</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Não usar clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Copiar sempre para o clipboard</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Copiar para o clipboard quando solicitado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Nenhum perfil selecionado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Nenhum perfil selecionado para ser apagado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG não encontrado</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Por favor, instale GnuPG no seu sistema. &lt;br&gt;Instale &lt;strong&gt;gpg&lt;/strong&gt; utilizando o seu gestore de pacotes favorito&lt;br&gt; ou fazendo o download de &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;GnuPG.org&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Criar password-store</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Deseja criar uma password-store em %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Password-store não foi inicializada</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>A pasta %1 não é uma password-store ou a mesma ainda não foi inicializada.</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Não pode ser editado</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Não foi possível ler a chave de encriptação a ser utilizada, o ficheiro gpg-id não existe ou é inválido.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Não foi possível atualizar</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>A abertura de .gpg-id para escrita, falhou.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Verifique os utilizadores selecionados!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Nenhuma das chaves selecionadas tem uma chave secreta disponível.
Não conseguirá desencriptar nenhuma das passwords, recentemente adicionadas!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Re-encriptar a partir da pasta %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>A atualizar a password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Gerar par de chaves GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Gerar par de chaves GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Passphrase</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Nome</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Não existe um limite no tamanho da passphrase e a mesma deve ser escolhida com cuidado. Na perspectiva de segurança, a passphrase para desbloquar a chave privada, é um dos pontos mais fracos do GnuPG (e também de outros sistemas de encriptação que usam chaves publicas) visto que é a unica proteção que tem, se alguem tem acesso à sua chave privada. &lt;br/&gt;Idealmente, a passphrase não deve ter palavras do dicionário e deve utilizar caracteres especiais e alfanuméricos.&lt;br/&gt;Uma boa passphrase é crucial para assegurar um uso seguro do GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Experiente</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Para opçőes avançadas, consulte o &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;manual do GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>Nome inválido</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>O nome deve ter pelo menos 5 caracteres</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>Email inválido</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>O endereço de email que introduziu não é válido</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>Esta operação pode demorar alguns minutos.&lt;br /&gt;É necessário gerar muitos bytes aleatórios. É aconselhado efetuar outras açőes (escrever no teclado, utilizar o rato, escrever ou ler dos discos) durante a criaçao da semente utilizada na encriptação; esta operação permite que o gerador de números aleatórios, gere entropia suficiente.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Adicionar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Editar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Remover</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Git Push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Git Pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Gerir quem pode ler a password na pasta</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Utilizadores</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Configuração</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Configuração</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Procurar password</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>Bem-vindo ao QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; é um GUI para &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, o gestor standard, de passwords em unix.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Por favor, reporte qualquer&lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt; problema&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; que encontre ao usar este software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Bem-vindo ao QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Adicionar Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Adicionar pasta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>A ligação a WebDAV falhou:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Password do QtPass WebDAV</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Introduza a password para a ligação a WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav fechou inesperadamente</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>A inicialização do fusedav, para ligar a WebDAV falhou:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>A atualizar a password-store</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Password ocultada</translation>
+ <translation type="vanished">Password ocultada</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Conteúdo oculto</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Clipboard limpo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Clipboard não limpo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Password e conteúdo ocultos</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>À procura de: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Novo ficheiro</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Novo ficheiro de password:
(Vai ser colocado em %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Remover pasta?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Remover password?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>De certeza que deseja remover %1%2?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation>e todo o seu conteúdo</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Não é possível obter a lista de chaves</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Não é possível obter a lista de chaves gpg disponíveis</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Chave não disponível no keyring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Gerar par de chaves GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Perfil mudou para %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Adicionar pasta</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Adicionar password</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Nova pasta: (Será colocada em %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>Copiado para o Clipboard</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Nenhum caracter escolhido</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Não foi possível gerar password. Não existe nenhum caracter para escolher do grupo especificado na configuração!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Gerar</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Mostrar password</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>Grupo de caracteres:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>Todos os caracteres</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>Alfabético</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>Alfanumérico</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>Personalizado</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>Cumprimento</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation>Forçar substituição?</translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation>Substituir %1 por %2?</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>Mostrar</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>Ocultar</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>Minimizar</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>Maximizar</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>Restaurar</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>Sair</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Mostrar utilizadores com permissão de leitura</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Selecione quais os utilizadores que devem ter permissões para desencriptar as passwords armazenadas nesta pasta.
Nota: Os ficheiros existentes não vão ser alterados e vão manter as permissőes antigas até que os mesmos sejam editados.
Os elementos a azul têm uma chave secreta disponível. Selecione um deles para que seja possível desencriptar.
Os elementos a vermelho não são válidos. Não será possível desencriptar utilizando os mesmos.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Procurar utilizadores</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Mostrar chaves não utilizáveis</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>criado</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>expira</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_ru_RU.ts b/localization/localization_ru_RU.ts
index 01cf25c..8e15133 100644
--- a/localization/localization_ru_RU.ts
+++ b/localization/localization_ru_RU.ts
@@ -1,984 +1,983 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Напрямую</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Использовать pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Автоматически добавлять файлы .gpg-id</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>секунд</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>Поведение буфера обмена:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>Очищать буфер через:</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">Поведение поля информации:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Скрывать пароль</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>Очищать через:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>Генерация паролей:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>Длина новых паролей:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>Использовать следующие символы:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>Не использовать заглавные буквы</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>Легко запоминающиеся менее случайные пароли</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>Не использовать цифры</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>Общие:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>Выберите способ управления паролями:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>&amp;Напрямую git/gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; версия </translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>Поверх других окон</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>login
url
email</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Программы</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>символов</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Использовать pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Значок в области уведомлений</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Скрывать по закрытию</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Автоматически отправлять изменения</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Автоматически подтягивать изменения</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Использовать git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Включить спец. символы</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Запускаться свёрнутым</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Профили</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Название</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Путь</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Добавить</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Текущее хранилище паролей</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Шаблоны</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>Шаблоны добавляют доп. поля в диалог генерации паролей и в поле отображения информации.</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Использовать шаблон</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translatorcomment>Отображать все строки, начинающиеся со слова с двоеточием, как доп. поля, а не только перечисленные здесь</translatorcomment>
<translation>Преобразовывать в доп. поля строки, начинающиеся с _любого_ слова с двоеточием, а не только начинающиеся с явно перечисленных здесь слов</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Отображать все строки как доп. поля</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Скрывать содержимое</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>GnuPG не найден</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Пожалуйста, установите GnuPG. &lt;br&gt;Установите &lt;strong&gt;gpg&lt;/strong&gt; используя Ваш любимый менеджер пакетов&lt;br&gt; или &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;скачайте&lt;/a&gt; с сайта GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Создать хранилище паролей?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Хотите создать хранилище паролей в %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Хранилище паролей не инициализировано</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>Папка %1 не похожа на хранилище паролей либо ещё не инициализирована.</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Профиль не выбран</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>Не использовать буфер обмена</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>Всегда копировать в буфер обмена</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>Копировать в буфер обмена по требованию</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Не выбран ни один профиль для удаления</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>Невозможно изменить содержимое</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>Не удалось прочитать ключ шифрования: .gpg-id файл не существует или повреждён.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>Не удалось обновить</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>Не получилось записать .gpg-id файла.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>Отметьте выбранных пользователей!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>Ни один из выбранных ключей не имеет секретного ключа.
Вы не сможете расшифровать ни один вновь добавленный пароль!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>Перешифровании из папки %1</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>Обновление password-store</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>Генерация новой пары ключей GnuPG</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Сгенерировать новую пару ключей</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Пароль для секретного ключа</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Адрес электронной почты</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Полное ммя</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ограничений на длину пароля нет, и он должен быть выбран осмотрительно. С точки зрения безопасности, пароль для разблокировки секретного ключа -- это один из самых уязвимых элементов всей системы GnuPG (и других систем шифрования с открытым ключом), так как это единственная мера защиты на случай, если кто-то завладеет Вашим секретным ключом.&lt;br/&gt;В идеале, пароль не должен использовать словарных слов и должен включать заглавные и строчные буквы и специальные символы.&lt;br/&gt;Хороший пароль критически важен для безопасного использования GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Режим эксперта</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>Подробности опций для экспертов в &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;руководстве GnuPG&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Обновить</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Поместить в репозиторий</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Добавить</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Изменить</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>Выбрать, кто может просматривать пароли в хранилище</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Пользователи</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>QtPass приветствует Вас</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>Найти пароль</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>QtPass %1 приветствует Вас</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Не удалось подключить WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>Пароль QtPass для WebDAV</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Введите пароль для подключения к WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav непредвиденно завершился
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Не удалось запустить fusedav для подключения к WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Обновление password-store</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>Новая папка:
(будет добавлена в %1)</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Пароль скрыт</translation>
+ <translation type="vanished">Пароль скрыт</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>Добавить пароль</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>Добавить папку</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Содержимое скрыто</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Буфер обмена очищен</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Буфер обмена не очищен</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Пароль и содержимое скрыто</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>QProsess::Не удалось запустить</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>QProsess::Аварийное завершение</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>QProsess::Превышено время ожидания</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>QProsess::Ошибка чтения</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>QProsess::Ошибка записи</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>QProsess::Неизвестная ошибка</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Ищем: %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Удалить папку?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Вы в самом деле хотите удалить %1? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Генерирую ключевую пару GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Профиль изменён на %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Добавить папку</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Добавить пароль</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>скопировать в буфер обмена</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Невозможно изменить содержимое</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>Новый файл для пароля:
(будет создан в %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Не удалось получить список ключей</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Не удалось получить список доступных ключей GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Ключ не найден в хранилище ключей GPG</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Новый файл</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Удалить пароль?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Вы в самом деле хотите удалить %1?</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Выбранный файл с паролем не существует</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>Ни одного символа не выбрано</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>Не могу сгенерировать пароль: набор допустимых символов задан пустым в Настройках!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Сгенерировать</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Показать пароль</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>LTR</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>&amp;Выйти</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Пользователи с доступом на чтение</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Выберите, какие пользователи должны иметь возможность расшифровывать пароли, сохранённые в данном хранилище.
Замечание: существующие файлы не будут изменены и сохранят старые права доступа до тех пор, пока вы не поменяете содержимое.
Синие пользователи -- секретный ключ доступен -- выберите одну из них, чтобы расшифровывать пароли.
Красные пользователи -- нерабочие -- вы не сможете зашифровывать для них.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>Поиск по пользователям</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Показать непригодные ключи</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>создан</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>истекает</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_sv_SE.ts b/localization/localization_sv_SE.ts
index 19d846f..541cce5 100644
--- a/localization/localization_sv_SE.ts
+++ b/localization/localization_sv_SE.ts
@@ -1,962 +1,961 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="sv_SE">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>Inställningar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>Nativ</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>&amp;Använd pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>Skapa .gpg-id filer automatiskt</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>Sekunder</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>Dölj lösenord</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>Program</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>Inställningar</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>Tecken</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>Använd pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>Använd TrayIcon</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>Dölj vid nerstängning</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>Automatisk push</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>Automatisk pull</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>Använd git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>Inkludera specialtecken</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>Starta minimerad</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>Namn</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>Sökväg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>Lägg till</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>Nuvarande lösenordsutrymme</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>Mall</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>Använd mall</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>Visa samtliga fält i mallen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>Ta bort</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>Dölj innehåll</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>Kan inte hitta GnuPG</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>Var vänlig installera GnuPG på ditt system.&lt;br&gt;Installera &lt;strong&gt;gpg&lt;/strong&gt; med din pakethanterare&lt;br&gt;eller &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;ladda ner&lt;/a&gt; från GnuPG.org</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>Skapa utrymme för lösenord?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>Vill du skapa ett lösenordsutrymme på %1?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>Lösenordsutrymme ej initliaserat</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>Ingen profil vald</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>Ingen profil vald att tas bort</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation type="unfinished">Kan inte ändra</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation type="unfinished">Kunde inte läsa krypteringsnyckel, .gpg-id fil saknas eller är ogiltig.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation type="unfinished">Kan inte uppdatera</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation type="unfinished">Kunde inte skriva till .gpg-id.</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation type="unfinished">Kolla valda användare!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation type="unfinished">Ingen av de valda nycklarna har en tillgänglig hemlig nyckel.
Du kommer inte att kunna avkryptera några nyligen tillagda lösenord!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation type="unfinished">Uppdaterar lösenordsutrymmet</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translatorcomment>Where is this field?</translatorcomment>
<translation>Skapa GnuPG nyckelpar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>Skapa nytt nyckelpar</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>Lösenord</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>Mejl</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>Namn</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ett lösenord kan vara hur långt som helst och det bör väljas noggrant. Från ett säkerhetsperspektiv är lösenordet för att låsa upp den privata nyckeln den svagaste länken i GnuPG (detta gäller även andra kryptosystem som använder publika nycklar) eftersom det är det enda skyddet du har om någon annan lyckas få tag på din privata nyckel.&lt;br/&gt;Ett lösenord ska helst inte innehålla vanliga ord och ska bestå av en blandning mellan bokstäver och icke-bokstäver.&lt;br/&gt;Ett bra lösenord är avgörande för ett säkert användande av GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>Avancerat</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>För avancerade inställningar se manualen för &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG&lt;/a&gt; </translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>Lägg till</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>Ändra</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>Ta bort</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>Push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>Uppdatera</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>Användare</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation type="unfinished">Inställningar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>Inställningar</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>Uppdaterar lösenordsutrymmet</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>Urklippet rensat</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>Kunde inte ansluta till WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV lösenord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>Mata in WebDAV lösenord:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav avslutades oväntat</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>Kunde inte starta fusedav för att ansluta till WebDAV:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>Gömt lösenord</translation>
+ <translation type="vanished">Gömt lösenord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>Gömt innehåll</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation type="unfinished">Lösenord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>Urklippet ej rensat</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>Gömt lösenord och innehåll</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation type="unfinished">Vill du verkligen ta bort %1? {1%2??}</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>kopieras till Urklipp</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>Lägg till mapp</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>Lägg till lösenord</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>Välkommen till QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>Söker efter: %1</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">Kan inte ändra</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>Ny fil</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>Ta bort lösenord?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">Vill du verkligen ta bort %1?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>Ta bort mapp?</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">Kan inte ändra då vald lösenordsfil inte finns</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>Kan inte hämta nyckellista</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>Kunde inte hämta gpgnycklar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>Kunde inte hitta nyckel i nyckelring</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>Skapar GPG nyckelpar</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>Profil ändrad till %1</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation type="unfinished">Inga valda tecken</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation type="unfinished">Kan inte skapa lösenord. Konfigurationen saknar tecken att välja från!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>Lösenord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>Skapa</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>Visa lösenord</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation></translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation type="unfinished">&amp;Avsluta</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>Användare med rättigheter att läsa</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>Välj vilka användare som ska kunna avkryptera lösenord som sparas i den här mappen.
Observera att redan existerande filer inte kommer att ändras och behåller sina rättigheter
tills du ändrar dem.
Blå betyder att en privat nyckel finns. Välj någon av dessa för att kunna avkryptera.
Röd färg betyder att nyckeln är ogiltig. Du kan inte använda någon av dessa för att kryptera.</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>Visa oanvändbara nycklar</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>skapad</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>utgår</translation>
</message>
</context>
</TS>
diff --git a/localization/localization_zh_CN.ts b/localization/localization_zh_CN.ts
index 25267d2..a8144f6 100644
--- a/localization/localization_zh_CN.ts
+++ b/localization/localization_zh_CN.ts
@@ -1,984 +1,983 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>ConfigDialog</name>
<message>
<location filename="../src/configdialog.ui" line="20"/>
<source>Configuration</source>
<translation>设置</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="42"/>
<source>Settings</source>
<translation>选项</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="68"/>
<source>Clipboard behaviour:</source>
<translation>剪贴板选项:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="87"/>
<source>Use primary selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="94"/>
<source>Autoclear after:</source>
<translation>清除剪贴板</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="111"/>
<location filename="../src/configdialog.ui" line="194"/>
<source>Seconds</source>
<translation>秒</translation>
</message>
<message>
<source>Password Behaviour:</source>
<translation type="vanished">密码显示:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="143"/>
<source>Content panel behaviour:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="155"/>
<source>Hide content</source>
<translation>隐藏内容</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="162"/>
<source>Hide password</source>
<translation>隐藏密码</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="171"/>
<source>Autoclear panel after:</source>
<translation>自动隐藏密码:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="228"/>
<source>Password Generation:</source>
<translation>密码生成选项:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="240"/>
<source>Password Length:</source>
<translation>密码长度:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="274"/>
<source>Characters</source>
<translation>位</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="302"/>
<source>Use characters:</source>
<translation>所用字符:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="320"/>
<source>Select character set for password generation</source>
<translation>选择密码所用的的字符集</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="324"/>
<source>All Characters</source>
<translation>所有字符</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="329"/>
<source>Alphabetical</source>
<translation>英文字母</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="334"/>
<source>Alphanumerical</source>
<translation>字母和数字</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="339"/>
<source>Custom</source>
<translation>自定义</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="377"/>
<source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source>
<translation>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="394"/>
<source>Use pwgen</source>
<translation>使用 pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="401"/>
<source>Exclude capital letters</source>
<translation>不包含大写字母</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="411"/>
<source>Include special symbols </source>
<translation>包含特殊符号</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="418"/>
<source>Generate easy to memorize but less secure passwords</source>
<translation>生成好记的密码(不安全)</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="425"/>
<source>Exclude numbers</source>
<translation>不包含数字</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="444"/>
<source>Git:</source>
<translation>Git选项:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="456"/>
<source>Use git</source>
<translation>使用 git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="470"/>
<source>Automatically add .gpg-id files</source>
<translation>自动添加 gpg-id 文件</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="477"/>
<source>Automatically push</source>
<translation>自动上传</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="484"/>
<source>Automatically pull</source>
<translation>自动更新合并</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="519"/>
<source>System:</source>
<translation>系统选项:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="531"/>
<source>Use TrayIcon</source>
<translation>显示托盘图标</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="538"/>
<source>Start minimized</source>
<translation>启动后隐藏窗口</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="545"/>
<source>Hide on close</source>
<translation>关闭窗口后台运行</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="552"/>
<source>Always on top</source>
<translation>始终在前</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="577"/>
<source>Programs</source>
<translation>程序</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="595"/>
<source>Select password storage program:</source>
<translation>选择管理密码的程序:</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="604"/>
<source>Nati&amp;ve git/gpg</source>
<translation>使用原生 git/gpg(推荐) (&amp;V)</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="611"/>
<source>&amp;Use pass</source>
<translation>使用 pass (&amp;U)</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="635"/>
<source>Native</source>
<translation>命令路径</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="641"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="651"/>
<location filename="../src/configdialog.ui" line="658"/>
<location filename="../src/configdialog.ui" line="685"/>
<location filename="../src/configdialog.ui" line="716"/>
<location filename="../src/configdialog.ui" line="856"/>
<source>...</source>
<translation>浏览</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="665"/>
<source>gpg</source>
<translation>gpg</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="678"/>
<source>pwgen</source>
<translation>pwgen</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="695"/>
<source>Pass</source>
<translation>Pass 路径</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="706"/>
<source>pass</source>
<translation>pass</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="725"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;www.passwordstore.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="755"/>
<source>Profiles</source>
<translation>用户</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="804"/>
<source>Name</source>
<translation>用户名</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="809"/>
<source>Path</source>
<translation>密码库路径</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="819"/>
<source>Add</source>
<translation>添加</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="834"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="849"/>
<source>Current password-store</source>
<translation>当前密码库路径</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="869"/>
<source>Template</source>
<translation>模板</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="890"/>
<source>Templates add extra fields in the password generation dialouge and in the password view.</source>
<translation>模版会以表单的形式显示在密码和编辑密码的窗口上(一行一个)</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="899"/>
<source>Use template</source>
<translation>使用模板</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="906"/>
<source>Show all lines beginning with a word followed by a colon as fields in password fields, not only the listed ones</source>
<translation>只要是密码文件中一个词或几个字加一个英文冒号的格式,都看作模版显示在密码框上,而不仅仅只显示下面列出的项目</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="909"/>
<source>Show all fields templated</source>
<translation>显示所有模板项</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="921"/>
<source>login
url
email</source>
<translation>用户名
网址
邮箱</translation>
</message>
<message>
<location filename="../src/configdialog.ui" line="936"/>
<source>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; version </source>
<translation>&lt;a href=&quot;https://QtPass.org/&quot;&gt;QtPass&lt;/a&gt; 版本 </translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="27"/>
<source>No Clipboard</source>
<translation>不使用剪贴板</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="28"/>
<source>Always copy to clipboard</source>
<translation>总是复制到剪贴板</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="29"/>
<source>On-demand copy to clipboard</source>
<translation>手动复制到剪贴板</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="516"/>
<source>No profile selected</source>
<translation>未选择用户</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="517"/>
<source>No profile selected to delete</source>
<translation>未选择用户,无法删除</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="555"/>
<source>GnuPG not found</source>
<translation>无法找到 GnuPG</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="556"/>
<source>Please install GnuPG on your system.&lt;br&gt;Install &lt;strong&gt;gpg&lt;/strong&gt; using your favorite package manager&lt;br&gt;or &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;download&lt;/a&gt; it from GnuPG.org</source>
<translation>GnuPG未安装。&lt;br&gt;可以用系统的软件包管理器来安装&lt;strong&gt;gpg&lt;/strong&gt;&lt;br&gt;或者从 GnuPG.org &lt;a href=&quot;https://www.gnupg.org/download/#sec-1-2&quot;&gt;下载&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="576"/>
<source>Create password-store?</source>
<translation>是否创建密码库?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="577"/>
<source>Would you like to create a password-store at %1?</source>
<translation>是否在 %1 创建密码库?</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="595"/>
<source>Password store not initialised</source>
<translation>密码库未初始化</translation>
</message>
<message>
<location filename="../src/configdialog.cpp" line="596"/>
<source>The folder %1 doesn&apos;t seem to be a password store or is not yet initialised.</source>
<translation>文件夹 %1 不是一个密码库或未初始化</translation>
</message>
</context>
<context>
<name>ImitatePass</name>
<message>
<location filename="../src/imitatepass.cpp" line="66"/>
<location filename="../src/imitatepass.cpp" line="266"/>
<source>Can not edit</source>
<translation>无法编辑</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="67"/>
<location filename="../src/imitatepass.cpp" line="267"/>
<source>Could not read encryption key to use, .gpg-id file missing or invalid.</source>
<translation>无法读取加密密钥,.gpg-id 文件丢失或无效</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="146"/>
<source>Cannot update</source>
<translation>无法更新</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="147"/>
<source>Failed to open .gpg-id for writing.</source>
<translation>.gpg-id 无法写入</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="160"/>
<source>Check selected users!</source>
<translation>请核对所选用户!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="161"/>
<source>None of the selected keys have a secret key available.
You will not be able to decrypt any newly added passwords!</source>
<translation>警告:所选用户都没有私钥,任何新添加的密码将无法解密!</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="212"/>
<source>Re-encrypting from folder %1</source>
<translation>重新从文件夹 %1 加密</translation>
</message>
<message>
<location filename="../src/imitatepass.cpp" line="216"/>
<location filename="../src/imitatepass.cpp" line="297"/>
<source>Updating password-store</source>
<translation>正在更新密码库...</translation>
</message>
</context>
<context>
<name>KeygenDialog</name>
<message>
<location filename="../src/keygendialog.ui" line="14"/>
<source>Generate GnuPG keypair</source>
<translation>生成 GnuPG 密钥</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="38"/>
<source>Generate a new key pair</source>
<translation>创建新的密钥对</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="84"/>
<source>Passphrase</source>
<translation>口令</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="91"/>
<source>Email</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="108"/>
<source>Name</source>
<translation>姓名</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="128"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;There is no limit on the length of a passphrase, and it should be carefully chosen. From the perspective of security, the passphrase to unlock the private key is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key. &lt;br/&gt;Ideally, the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non-alphabetic characters.&lt;br/&gt;A good passphrase is crucial to the secure use of GnuPG.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;HTML&gt; &lt;HEAD/&gt; &lt;BODY&gt; &lt;P&gt;密码的长度没有限制,但应慎重考虑。从安全的角度来看,用口令解锁密钥是GnuPG(包括其他公钥加密系统)的弱点。假如别人获取了你的私钥,口令是对其唯一的保护。&lt;BR/&gt;密码不应该是英文单词或简单数字组合,而应该混合字母和特殊符号。&lt;BR/&gt;使用 GnuPG 的过程中,选择一个安全的口令是极其重要的。&lt;/P&gt; &lt;/BODY&gt; &lt;/HTML&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="138"/>
<source>Expert</source>
<translation>专家模式</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="157"/>
<source># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</source>
<translation># QtPass GPG key generator
#
# first test version please comment
#
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real:
Name-Comment: QtPass
Name-Email:
Expire-Date: 0
%no-protection
# Do a commit here, so that we can later print &quot;done&quot; :-)
%commit
%echo done</translation>
</message>
<message>
<location filename="../src/keygendialog.ui" line="184"/>
<source>For expert options check out the &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG manual&lt;/a&gt;</source>
<translation>高级选项请查看 &lt;a href=&quot;https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html&quot;&gt;GnuPG用户手册&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="133"/>
<source>Invalid name</source>
<translation>不合法的姓名</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="134"/>
<source>Name must be at least 5 characters long.</source>
<translation>姓名至少需要5个字符。</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="144"/>
<source>Invalid email</source>
<translation>不合法的邮箱地址</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="145"/>
<source>The email address you typed is not a valid email address.</source>
<translation>您输入的邮箱不是一个合法的邮箱地址。</translation>
</message>
<message>
<location filename="../src/keygendialog.cpp" line="160"/>
<source>This operation can take some minutes.&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.</source>
<translation>密码生成需要较长时间,请耐心等待。&lt;br /&gt;程序需要收集很多随机数,在此期间使用电脑进行一些其他操作(例如敲击键盘,移动鼠标,读写硬盘等)会加快此过程,并且使随机数生成器更随机化。</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.ui" line="14"/>
<source>QtPass</source>
<translation>QtPass 密码库管理器</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="45"/>
<location filename="../src/mainwindow.ui" line="48"/>
<source>Add</source>
<translation>新建</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="72"/>
<location filename="../src/mainwindow.ui" line="75"/>
- <location filename="../src/mainwindow.cpp" line="1311"/>
+ <location filename="../src/mainwindow.cpp" line="1264"/>
<source>Edit</source>
<translation>编辑</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="90"/>
<location filename="../src/mainwindow.ui" line="93"/>
- <location filename="../src/mainwindow.cpp" line="1323"/>
+ <location filename="../src/mainwindow.cpp" line="1276"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="124"/>
<source>git push</source>
<translation>git push</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="127"/>
<source>Push</source>
<translation>上传</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="142"/>
<source>git pull</source>
<translation>git pull</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="145"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="176"/>
<source>Manage who can read password in folder</source>
<translation>选择用哪个密钥来解密保存在密码库中的密码</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="179"/>
- <location filename="../src/mainwindow.cpp" line="1305"/>
+ <location filename="../src/mainwindow.cpp" line="1258"/>
<source>Users</source>
<translation>用户</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="194"/>
<source>Configuration</source>
<translation>设置</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="197"/>
<source>Config</source>
<translation>设置</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="342"/>
<source>Welcome to QtPass</source>
<translation>欢迎使用 QtPass</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="426"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Cantarell&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; font-weight:600; color:#333333;&quot;&gt;QtPass&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; is a GUI for &lt;/span&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;pass&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;, the standard unix password manager.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt;&lt;br /&gt;Please report any &lt;/span&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass/issues&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4;&quot;&gt;issues&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; color:#333333;&quot;&gt; you might have with this software.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://qtpass.org/&quot;&gt;&lt;span style=&quot; font-family:&apos;Helvetica Neue,Helvetica,Segoe UI,Arial,freesans,sans-serif&apos;; font-size:13pt; text-decoration: underline; color:#4183c4; background-color:transparent;&quot;&gt;Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/IJHack/qtpass&quot;&gt;&lt;span style=&quot; font-family:&apos;Noto Sans&apos;; font-size:12pt; text-decoration: underline; color:#4183c4;&quot;&gt;SourceCode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="278"/>
<source>Search Password</source>
<translation>搜索密码库</translation>
</message>
<message>
<location filename="../src/mainwindow.ui" line="500"/>
<source>qtpass</source>
<translation>qtpass</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="60"/>
+ <location filename="../src/mainwindow.cpp" line="61"/>
<source>Welcome to QtPass %1</source>
<translation>欢迎使用 QtPass %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="80"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
<source>Add Password</source>
<translation>新密码</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="81"/>
+ <location filename="../src/mainwindow.cpp" line="566"/>
<source>Add Folder</source>
<translation>新文件夹</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="194"/>
+ <location filename="../src/mainwindow.cpp" line="183"/>
<source>Failed to connect WebDAV:
</source>
<translation>无法连接 WebDAV:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="207"/>
+ <location filename="../src/mainwindow.cpp" line="196"/>
<source>QtPass WebDAV password</source>
<translation>QtPass WebDAV 密码</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="208"/>
+ <location filename="../src/mainwindow.cpp" line="197"/>
<source>Enter password to connect to WebDAV:</source>
<translation>输入 WebDAV 密码以连接:</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="224"/>
+ <location filename="../src/mainwindow.cpp" line="213"/>
<source>fusedav exited unexpectedly
</source>
<translation>fusedav 意外退出
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="228"/>
+ <location filename="../src/mainwindow.cpp" line="217"/>
<source>Failed to start fusedav to connect WebDAV:
</source>
<translation>无法连接 WebDAV,fusedav无法启动:
</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="513"/>
- <location filename="../src/mainwindow.cpp" line="525"/>
+ <location filename="../src/mainwindow.cpp" line="452"/>
+ <location filename="../src/mainwindow.cpp" line="464"/>
<source>Updating password-store</source>
<translation>正在更新密码库...</translation>
</message>
<message>
<source>Can not edit</source>
<translation type="vanished">无法编辑</translation>
</message>
<message>
<source>Selected password file does not exist, not able to edit</source>
<translation type="vanished">选定的密码文件不存在,不可编辑</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="639"/>
<source>Password hidden</source>
- <translation>密码已隐藏</translation>
+ <translation type="vanished">密码已隐藏</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="643"/>
+ <location filename="../src/mainwindow.cpp" line="596"/>
<source>Content hidden</source>
<translation>内容已隐藏</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="681"/>
- <location filename="../src/mainwindow.cpp" line="1451"/>
+ <location filename="../src/mainwindow.cpp" line="600"/>
+ <location filename="../src/mainwindow.cpp" line="1404"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="766"/>
+ <location filename="../src/mainwindow.cpp" line="697"/>
<source>Clipboard cleared</source>
<translation>剪贴板已清除</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="768"/>
+ <location filename="../src/mainwindow.cpp" line="699"/>
<source>Clipboard not cleared</source>
<translation>剪贴板未清除</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="783"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
<source>Password and Content hidden</source>
<translation>密码和内容已隐藏</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="834"/>
+ <location filename="../src/mainwindow.cpp" line="787"/>
<source>QProcess::FailedToStart</source>
<translation>系统错误:启动失败 QProcess::FailedToStart</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="837"/>
+ <location filename="../src/mainwindow.cpp" line="790"/>
<source>QProcess::Crashed</source>
<translation>系统错误:程序崩溃 QProcess::Crashed</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="840"/>
+ <location filename="../src/mainwindow.cpp" line="793"/>
<source>QProcess::Timedout</source>
<translation>系统错误:响应超时 QProcess::Timedout</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="843"/>
+ <location filename="../src/mainwindow.cpp" line="796"/>
<source>QProcess::ReadError</source>
<translation>系统错误:读取错误 QProcess::ReadError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="846"/>
+ <location filename="../src/mainwindow.cpp" line="799"/>
<source>QProcess::WriteError</source>
<translation>系统错误:写入错误 QProcess::WriteError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="849"/>
+ <location filename="../src/mainwindow.cpp" line="802"/>
<source>QProcess::UnknownError</source>
<translation>系统错误:未知错误 QProcess::UnknownError</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="870"/>
+ <location filename="../src/mainwindow.cpp" line="823"/>
<source>Looking for: %1</source>
<translation>搜索:%1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="961"/>
- <location filename="../src/mainwindow.cpp" line="1350"/>
+ <location filename="../src/mainwindow.cpp" line="914"/>
+ <location filename="../src/mainwindow.cpp" line="1303"/>
<source>New file</source>
<translation>新密码</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="962"/>
+ <location filename="../src/mainwindow.cpp" line="915"/>
<source>New password file:
(Will be placed in %1 )</source>
<translation>新建密码:
(将被放在 %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete password?</source>
<translation>删除密码?</translation>
</message>
<message>
<source>Are you sure you want to delete %1?</source>
<translation type="vanished">确定删除 %1 ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="991"/>
+ <location filename="../src/mainwindow.cpp" line="944"/>
<source>Delete folder?</source>
<translation>删除文件夹?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="992"/>
+ <location filename="../src/mainwindow.cpp" line="945"/>
<source>Are you sure you want to delete %1%2?</source>
<translation>确定删除 %1%2 ?</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="994"/>
+ <location filename="../src/mainwindow.cpp" line="947"/>
<source> and whole content</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1027"/>
+ <location filename="../src/mainwindow.cpp" line="980"/>
<source>Can not get key list</source>
<translation>无法获取密钥列表</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1028"/>
+ <location filename="../src/mainwindow.cpp" line="981"/>
<source>Unable to get list of available gpg keys</source>
<translation>无法获取可用的 GPG 密钥列表</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1061"/>
+ <location filename="../src/mainwindow.cpp" line="1014"/>
<source>Key not found in keyring</source>
<translation>所选密钥未找到</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1135"/>
+ <location filename="../src/mainwindow.cpp" line="1088"/>
<source>Generating GPG key pair</source>
<translation>正在生成 GPG 密钥对</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1177"/>
+ <location filename="../src/mainwindow.cpp" line="1130"/>
<source>Profile changed to %1</source>
<translation>用户已更改为 %1</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1303"/>
+ <location filename="../src/mainwindow.cpp" line="1256"/>
<source>Add folder</source>
<translation>新文件夹</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1304"/>
+ <location filename="../src/mainwindow.cpp" line="1257"/>
<source>Add password</source>
<translation>新密码</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1351"/>
+ <location filename="../src/mainwindow.cpp" line="1304"/>
<source>New Folder:
(Will be placed in %1 )</source>
<translation>新建文件夹:
(将被放在 %1 )</translation>
</message>
<message>
- <location filename="../src/mainwindow.cpp" line="1400"/>
+ <location filename="../src/mainwindow.cpp" line="1353"/>
<source>Copied to clipboard</source>
<translation>复制到剪贴板</translation>
</message>
</context>
<context>
<name>Pass</name>
<message>
<location filename="../src/pass.cpp" line="94"/>
<source>No characters chosen</source>
<translation>未选择任何字符</translation>
</message>
<message>
<location filename="../src/pass.cpp" line="95"/>
<source>Can&apos;t generate password, there are no characters to choose from set in the configuration!</source>
<translation>未选择任何字符,无法生成密码!</translation>
</message>
</context>
<context>
<name>PasswordDialog</name>
<message>
<location filename="../src/passworddialog.ui" line="14"/>
<location filename="../src/passworddialog.ui" line="61"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="71"/>
<source>Generate</source>
<translation>生成</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="82"/>
<source>Show password</source>
<translation>显示密码</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="102"/>
<source>Character Set:</source>
<translation>所用字符:</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="110"/>
<source>All Characters</source>
<translation>所有字符</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="115"/>
<source>Alphabetical</source>
<translation>英文字母</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="120"/>
<source>Alphanumerical</source>
<translation>字母和数字</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="125"/>
<source>Custom</source>
<translation>自定义</translation>
</message>
<message>
<location filename="../src/passworddialog.ui" line="139"/>
<source>Length:</source>
<translation>长度:</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main/main.cpp" line="78"/>
<source>LTR</source>
<translation>从左到右</translation>
</message>
</context>
<context>
<name>StoreModel</name>
<message>
<location filename="../src/storemodel.cpp" line="240"/>
<source>force overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/storemodel.cpp" line="241"/>
<source>overwrite %1 with %2?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
<location filename="../src/trayicon.cpp" line="39"/>
<source>&amp;Show</source>
<translation>显示 (&amp;S)</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="41"/>
<source>&amp;Hide</source>
<translation>隐藏 (&amp;H)</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="44"/>
<source>Mi&amp;nimize</source>
<translation>最小化 (&amp;N)</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="47"/>
<source>Ma&amp;ximize</source>
<translation>最大化 (&amp;X)</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="50"/>
<source>&amp;Restore</source>
<translation>恢复 (&amp;R)</translation>
</message>
<message>
<location filename="../src/trayicon.cpp" line="53"/>
<source>&amp;Quit</source>
<translation>退出 (&amp;Q)</translation>
</message>
</context>
<context>
<name>UsersDialog</name>
<message>
<location filename="../src/usersdialog.ui" line="20"/>
<source>Read access users</source>
<translation>选择用户</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="41"/>
<source>Select which users should be able to decrypt passwords stored in this folder.
Note: Existing files will not be modified and retain the old permissions until you edit them.
Blue entries have a secret key available, select one of these to be able to decrypt.
Red entries are not valid, you will not be able to encrypt to these.</source>
<translation>选择哪些用户能够解密保存在密码库中的密码。
注:现有的文件不会被修改,并保留现有的权限,直到您对其进行编辑。
蓝色表示有私钥和公钥可用,可以用来加密。
红色表示没有私钥,不可以用来加密。</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="65"/>
<source>Search Users</source>
<translation>搜索用户</translation>
</message>
<message>
<location filename="../src/usersdialog.ui" line="72"/>
<source>Show unusable keys</source>
<translation>显示不可用密钥</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="76"/>
<source>created</source>
<translation>创建于</translation>
</message>
<message>
<location filename="../src/usersdialog.cpp" line="80"/>
<source>expires</source>
<translation>过期于</translation>
</message>
</context>
</TS>
diff --git a/src/configdialog.cpp b/src/configdialog.cpp
index c439599..43eff5f 100644
--- a/src/configdialog.cpp
+++ b/src/configdialog.cpp
@@ -1,1050 +1,1005 @@
#include "configdialog.h"
#include "debughelper.h"
#include "keygendialog.h"
#include "mainwindow.h"
#include "qtpasssettings.h"
#include "ui_configdialog.h"
#include <QClipboard>
#include <QDir>
#include <QMessageBox>
#ifdef Q_OS_WIN
#include <windows.h>
#endif
/**
* @brief ConfigDialog::ConfigDialog this sets up the configuration screen.
* @param parent
*/
ConfigDialog::ConfigDialog(MainWindow *parent)
: QDialog(parent), ui(new Ui::ConfigDialog) {
mainWindow = parent;
ui->setupUi(this);
ui->profileTable->verticalHeader()->hide();
ui->profileTable->horizontalHeader()->setStretchLastSection(true);
ui->label->setText(ui->label->text() + VERSION);
ui->comboBoxClipboard->clear();
ui->comboBoxClipboard->addItem(tr("No Clipboard"));
ui->comboBoxClipboard->addItem(tr("Always copy to clipboard"));
ui->comboBoxClipboard->addItem(tr("On-demand copy to clipboard"));
ui->comboBoxClipboard->setCurrentIndex(0);
QClipboard *clip = QApplication::clipboard();
if (!clip->supportsSelection()) {
useSelection(false);
ui->checkBoxSelection->setVisible(false);
}
}
/**
* @brief ConfigDialog::~ConfigDialog config destructor, makes sure the
* mainWindow knows about git, gpg and pass executables.
*/
ConfigDialog::~ConfigDialog() {
QtPassSettings::setGitExecutable(ui->gitPath->text());
QtPassSettings::setGpgExecutable(ui->gpgPath->text());
QtPassSettings::setPassExecutable(ui->passPath->text());
}
/**
* @brief ConfigDialog::setPassPath set the pass executable path.
* @param path
*/
void ConfigDialog::setPassPath(QString path) { ui->passPath->setText(path); }
/**
* @brief ConfigDialog::setGitPath set the git executable path.
* Make sure the checkBoxUseGit is updated.
* @param path
*/
void ConfigDialog::setGitPath(QString path) {
ui->gitPath->setText(path);
if (path.isEmpty()) {
useGit(false);
ui->checkBoxUseGit->setEnabled(false);
} else {
ui->checkBoxUseGit->setEnabled(true);
}
}
/**
* @brief ConfigDialog::setGpgPath set the gpg executable path.
* @param path
*/
void ConfigDialog::setGpgPath(QString path) { ui->gpgPath->setText(path); }
/**
* @brief ConfigDialog::setStorePath set the .password-store folder path.
* @param path
*/
void ConfigDialog::setStorePath(QString path) { ui->storePath->setText(path); }
/**
* @brief ConfigDialog::getPassPath return path to pass.
* @return
*/
QString ConfigDialog::getPassPath() { return ui->passPath->text(); }
/**
* @brief ConfigDialog::getGitPath return path to git.
* @return
*/
QString ConfigDialog::getGitPath() { return ui->gitPath->text(); }
/**
* @brief ConfigDialog::getGpgPath return path to gpg.
* @return
*/
QString ConfigDialog::getGpgPath() { return ui->gpgPath->text(); }
/**
* @brief ConfigDialog::getStorePath return path to .password-store.
* @return
*/
QString ConfigDialog::getStorePath() { return ui->storePath->text(); }
/**
* @brief ConfigDialog::usePass return wether or not we want to use pass (or
* native gpg+git etc).
* @return
*/
bool ConfigDialog::usePass() { return ui->radioButtonPass->isChecked(); }
/**
* @brief ConfigDialog::usePass set wether or not we want to use pass.
* Update radio buttons accordingly.
* @param usePass
*/
void ConfigDialog::usePass(bool usePass) {
if (usePass) {
ui->radioButtonNative->setChecked(false);
ui->radioButtonPass->setChecked(true);
} else {
ui->radioButtonNative->setChecked(true);
ui->radioButtonPass->setChecked(false);
}
setGroupBoxState();
}
/**
* @brief ConfigDialog::on_radioButtonNative_clicked wrapper for
* ConfigDialog::setGroupBoxState()
*/
void ConfigDialog::on_radioButtonNative_clicked() { setGroupBoxState(); }
/**
* @brief ConfigDialog::on_radioButtonPass_clicked wrapper for
* ConfigDialog::setGroupBoxState()
*/
void ConfigDialog::on_radioButtonPass_clicked() { setGroupBoxState(); }
/**
* @brief ConfigDialog::setGroupBoxState update checkboxes.
*/
void ConfigDialog::setGroupBoxState() {
if (ui->radioButtonPass->isChecked()) {
ui->groupBoxNative->setEnabled(false);
ui->groupBoxPass->setEnabled(true);
} else {
ui->groupBoxNative->setEnabled(true);
ui->groupBoxPass->setEnabled(false);
}
}
/**
* @brief ConfigDialog::selectExecutable pop-up to choose an executable.
* @return
*/
QString ConfigDialog::selectExecutable() {
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFile);
dialog.setOption(QFileDialog::ReadOnly);
if (dialog.exec())
return dialog.selectedFiles().first();
else
return "";
}
/**
* @brief ConfigDialog::selectFolder pop-up to choose a folder.
* @return
*/
QString ConfigDialog::selectFolder() {
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::Directory);
dialog.setFilter(QDir::NoFilter);
dialog.setOption(QFileDialog::ShowDirsOnly);
if (dialog.exec())
return dialog.selectedFiles().first();
else
return "";
}
/**
* @brief ConfigDialog::on_toolButtonGit_clicked get git application.
* Enable checkboxes if found.
*/
void ConfigDialog::on_toolButtonGit_clicked() {
QString git = selectExecutable();
if (!git.isEmpty()) {
ui->gitPath->setText(git);
ui->checkBoxUseGit->setEnabled(true);
} else {
useGit(false);
ui->checkBoxUseGit->setEnabled(false);
}
}
/**
* @brief ConfigDialog::on_toolButtonGpg_clicked get gpg application.
*/
void ConfigDialog::on_toolButtonGpg_clicked() {
QString gpg = selectExecutable();
if (!gpg.isEmpty())
ui->gpgPath->setText(gpg);
}
/**
* @brief ConfigDialog::on_toolButtonPass_clicked get pass application.
*/
void ConfigDialog::on_toolButtonPass_clicked() {
QString pass = selectExecutable();
if (!pass.isEmpty())
ui->passPath->setText(pass);
}
/**
* @brief ConfigDialog::on_toolButtonStore_clicked get .password-store
* location.s
*/
void ConfigDialog::on_toolButtonStore_clicked() {
QString store = selectFolder();
if (!store.isEmpty()) // TODO(annejan) call check
ui->storePath->setText(store);
}
/**
* @brief ConfigDialog::on_comboBoxClipboard_activated show and hide options.
* @param index of selectbox (0 = no clipboard).
*/
void ConfigDialog::on_comboBoxClipboard_activated(int index) {
if (index > 0) {
ui->checkBoxSelection->setEnabled(true);
ui->checkBoxAutoclear->setEnabled(true);
ui->checkBoxHidePassword->setEnabled(true);
ui->checkBoxHideContent->setEnabled(true);
if (ui->checkBoxAutoclear->isChecked()) {
ui->spinBoxAutoclearSeconds->setEnabled(true);
ui->labelSeconds->setEnabled(true);
} else {
ui->spinBoxAutoclearSeconds->setEnabled(false);
ui->labelSeconds->setEnabled(false);
}
} else {
ui->checkBoxSelection->setEnabled(false);
ui->checkBoxAutoclear->setEnabled(false);
ui->spinBoxAutoclearSeconds->setEnabled(false);
ui->labelSeconds->setEnabled(false);
ui->checkBoxHidePassword->setEnabled(false);
ui->checkBoxHideContent->setEnabled(false);
}
}
/**
* @brief ConfigDialog::on_checkBoxAutoclearPanel_clicked enable and disable
* options based on autoclear use.
*/
void ConfigDialog::on_checkBoxAutoclearPanel_clicked() {
if (ui->checkBoxAutoclearPanel->isChecked()) {
ui->spinBoxAutoclearPanelSeconds->setEnabled(true);
ui->labelPanelSeconds->setEnabled(true);
} else {
ui->spinBoxAutoclearPanelSeconds->setEnabled(false);
ui->labelPanelSeconds->setEnabled(false);
}
}
/**
* @brief ConfigDialog::useClipboard set the clipboard use from MainWindow.
*/
void ConfigDialog::useClipboard(Enums::clipBoardType useClipboard) {
ui->comboBoxClipboard->setCurrentIndex(static_cast<int>(useClipboard));
on_comboBoxClipboard_activated(static_cast<int>(useClipboard));
}
/**
* @brief ConfigDialog::useSelection set the clipboard type use from
* MainWindow.
* @param useSelection
*/
void ConfigDialog::useSelection(bool useSelection) {
ui->checkBoxSelection->setChecked(useSelection);
on_checkBoxSelection_clicked();
}
/**
* @brief ConfigDialog::useAutoclear set the clipboard autoclear use from
* MainWindow.
* @param useAutoclear
*/
void ConfigDialog::useAutoclear(bool useAutoclear) {
ui->checkBoxAutoclear->setChecked(useAutoclear);
on_checkBoxAutoclear_clicked();
}
/**
* @brief ConfigDialog::setAutoclear set the clipboard autoclear timout from
* MainWindow.
* @param seconds
*/
void ConfigDialog::setAutoclear(int seconds) {
ui->spinBoxAutoclearSeconds->setValue(seconds);
}
/**
* @brief ConfigDialog::useAutoclearPanel set the panel autoclear use from
* MainWindow.
* @param useAutoclearPanel
*/
void ConfigDialog::useAutoclearPanel(bool useAutoclearPanel) {
ui->checkBoxAutoclearPanel->setChecked(useAutoclearPanel);
on_checkBoxAutoclearPanel_clicked();
}
/**
* @brief ConfigDialog::setAutoclearPanel set the panel autoclear timout from
* MainWindow.
* @param seconds
*/
void ConfigDialog::setAutoclearPanel(int seconds) {
ui->spinBoxAutoclearPanelSeconds->setValue(seconds);
}
/**
* @brief ConfigDialog::useClipboard set the use of clipboard from MainWindow.
* @return
*/
Enums::clipBoardType ConfigDialog::useClipboard() {
return static_cast<Enums::clipBoardType>(
ui->comboBoxClipboard->currentIndex());
}
/**
* @brief ConfigDialog::useSelection return the clipboard type.
* @return
*/
bool ConfigDialog::useSelection() { return ui->checkBoxSelection->isChecked(); }
/**
* @brief ConfigDialog::on_checkBoxSelection_clicked checkbox clicked, update
* state via ConfigDialog::on_comboBoxClipboard_activated
*/
void ConfigDialog::on_checkBoxSelection_clicked() {
on_comboBoxClipboard_activated(ui->comboBoxClipboard->currentIndex());
}
/**
* @brief ConfigDialog::useAutoclear return the use of clipboard autoclear.
* @return
*/
bool ConfigDialog::useAutoclear() { return ui->checkBoxAutoclear->isChecked(); }
/**
* @brief ConfigDialog::getAutoclear return the clipboard autoclear timout.
* @return
*/
int ConfigDialog::getAutoclear() {
return ui->spinBoxAutoclearSeconds->value();
}
/**
* @brief ConfigDialog::on_checkBoxAutoclear_clicked checkbox clicked, update
* state via ConfigDialog::on_comboBoxClipboard_activated
*/
void ConfigDialog::on_checkBoxAutoclear_clicked() {
on_comboBoxClipboard_activated(ui->comboBoxClipboard->currentIndex());
}
/**
* @brief ConfigDialog::useAutoclearPanel return panel autoclear usage.
* @return
*/
bool ConfigDialog::useAutoclearPanel() {
return ui->checkBoxAutoclearPanel->isChecked();
}
/**
* @brief ConfigDialog::getAutoclearPanel return panel autoclear timeout.
* @return
*/
int ConfigDialog::getAutoclearPanel() {
return ui->spinBoxAutoclearPanelSeconds->value();
}
/**
* @brief ConfigDialog::hidePassword return preference for hiding passwords from
* shoulder-surfers.
* @return
*/
bool ConfigDialog::hidePassword() {
return ui->checkBoxHidePassword->isChecked();
}
/**
* @brief ConfigDialog::hideContent return preference for hiding all information
* from shoulder-surfers.
* @return
*/
bool ConfigDialog::hideContent() {
return ui->checkBoxHideContent->isChecked();
}
/**
* @brief ConfigDialog::hidePassword set preference for hiding passwords from
* shoulder-surfers.
* @param hidePassword
*/
void ConfigDialog::hidePassword(bool hidePassword) {
ui->checkBoxHidePassword->setChecked(hidePassword);
}
/**
* @brief ConfigDialog::hideContent set preference for hiding all content from
* shoulder-surfers.
* @param hideContent
*/
void ConfigDialog::hideContent(bool hideContent) {
ui->checkBoxHideContent->setChecked(hideContent);
}
/**
* @brief ConfigDialog::addGPGId return preference for always adding gpg-id
* changes to git.
* @return
*/
bool ConfigDialog::addGPGId() { return ui->checkBoxAddGPGId->isChecked(); }
/**
* @brief ConfigDialog::addGPGId set preference for always adding gpg-id changes
* to git.
* @param addGPGId
*/
void ConfigDialog::addGPGId(bool addGPGId) {
ui->checkBoxAddGPGId->setChecked(addGPGId);
}
/**
* @brief ConfigDialog::genKey tunnel function to make MainWindow generate a gpg
* key pair.
* @todo refactor the process to not be entangled so much.
* @param batch
* @param dialog
*/
void ConfigDialog::genKey(QString batch, QDialog *dialog) {
mainWindow->generateKeyPair(batch, dialog);
}
/**
* @brief ConfigDialog::setProfiles set the profiles and chosen profile from
* MainWindow.
* @param profiles
* @param profile
*/
void ConfigDialog::setProfiles(QHash<QString, QString> profiles,
QString profile) {
// dbg()<< profiles;
if (profiles.contains("")) {
profiles.remove("");
// remove weird "" key value pairs
}
ui->profileTable->setRowCount(profiles.count());
QHashIterator<QString, QString> i(profiles);
int n = 0;
while (i.hasNext()) {
i.next();
if (!i.value().isEmpty() && !i.key().isEmpty()) {
ui->profileTable->setItem(n, 0, new QTableWidgetItem(i.key()));
ui->profileTable->setItem(n, 1, new QTableWidgetItem(i.value()));
// dbg()<< "naam:" + i.key();
if (i.key() == profile)
ui->profileTable->selectRow(n);
}
++n;
}
}
/**
* @brief ConfigDialog::getProfiles return profile list.
* @return
*/
QHash<QString, QString> ConfigDialog::getProfiles() {
QHash<QString, QString> profiles;
// Check?
for (int i = 0; i < ui->profileTable->rowCount(); ++i) {
QTableWidgetItem *pathItem = ui->profileTable->item(i, 1);
if (0 != pathItem) {
QTableWidgetItem *item = ui->profileTable->item(i, 0);
if (item == 0) {
dbg() << "empty name, should fix in frontend";
continue;
}
profiles.insert(item->text(), pathItem->text());
}
}
return profiles;
}
/**
* @brief ConfigDialog::on_addButton_clicked add a profile row.
*/
void ConfigDialog::on_addButton_clicked() {
int n = ui->profileTable->rowCount();
ui->profileTable->insertRow(n);
ui->profileTable->setItem(n, 1, new QTableWidgetItem(ui->storePath->text()));
ui->profileTable->selectRow(n);
ui->deleteButton->setEnabled(true);
}
/**
* @brief ConfigDialog::on_deleteButton_clicked remove a profile row.
*/
void ConfigDialog::on_deleteButton_clicked() {
QSet<int> selectedRows; // we use a set to prevent doubles
QList<QTableWidgetItem *> itemList = ui->profileTable->selectedItems();
if (itemList.count() == 0) {
QMessageBox::warning(this, tr("No profile selected"),
tr("No profile selected to delete"));
return;
}
QTableWidgetItem *item;
foreach (item, itemList)
selectedRows.insert(item->row());
// get a list, and sort it big to small
QList<int> rows = selectedRows.toList();
qSort(rows.begin(), rows.end());
// now actually do the removing:
foreach (int row, rows)
ui->profileTable->removeRow(row);
if (ui->profileTable->rowCount() < 1)
ui->deleteButton->setEnabled(false);
}
/**
* @brief ConfigDialog::criticalMessage weapper for showing critical messages in
* a popup.
* @param title
* @param text
*/
void ConfigDialog::criticalMessage(const QString &title, const QString &text) {
QMessageBox::critical(this, title, text, QMessageBox::Ok, QMessageBox::Ok);
}
/**
* @brief ConfigDialog::wizard first-time use wizard.
* @todo make this thing more reliable.
*/
void ConfigDialog::wizard() {
// mainWindow->checkConfig();
bool clean = false;
QString gpg = ui->gpgPath->text();
// QString gpg = mainWindow->getGpgExecutable();
if (!QFile(gpg).exists()) {
criticalMessage(
tr("GnuPG not found"),
tr("Please install GnuPG on your system.<br>Install "
"<strong>gpg</strong> using your favorite package manager<br>or <a "
"href=\"https://www.gnupg.org/download/#sec-1-2\">download</a> it "
"from GnuPG.org"));
clean = true;
}
QStringList names = mainWindow->getSecretKeys();
dbg() << names;
if (QFile(gpg).exists() && names.empty()) {
KeygenDialog d(this);
if (!d.exec())
return;
}
QString passStore = ui->storePath->text();
if (!QFile(passStore).exists()) {
// TODO(annejan) pass version?
if (QMessageBox::question(
this, tr("Create password-store?"),
tr("Would you like to create a password-store at %1?")
.arg(passStore),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
QDir().mkdir(passStore);
#ifdef Q_OS_WIN
SetFileAttributes(passStore.toStdWString().c_str(),
FILE_ATTRIBUTE_HIDDEN);
#endif
if (useGit())
mainWindow->executePassGitInit();
mainWindow->userDialog(passStore);
}
}
if (!QFile(QDir(passStore).filePath(".gpg-id")).exists()) {
dbg() << ".gpg-id file does not exist";
if (!clean) {
criticalMessage(tr("Password store not initialised"),
tr("The folder %1 doesn't seem to be a password store or "
"is not yet initialised.")
.arg(passStore));
}
while (!QFile(passStore).exists()) {
on_toolButtonStore_clicked();
// allow user to cancel
if (passStore == ui->storePath->text())
return;
passStore = ui->storePath->text();
}
if (!QFile(passStore + ".gpg-id").exists()) {
dbg() << ".gpg-id file still does not exist :/";
// appears not to be store
// init yes / no ?
mainWindow->userDialog(passStore);
}
}
}
/**
* @brief ConfigDialog::useTrayIcon return preference for using a (system) tray
* icon.
* @return
*/
bool ConfigDialog::useTrayIcon() {
return ui->checkBoxUseTrayIcon->isChecked();
}
/**
* @brief ConfigDialog::hideOnClose return preference for hiding instead of
* closing (quitting) application.
* @return
*/
bool ConfigDialog::hideOnClose() {
return ui->checkBoxHideOnClose->isEnabled() &&
ui->checkBoxHideOnClose->isChecked();
}
/**
* @brief ConfigDialog::useTrayIcon set preference for using trayicon.
* Enable or disable related checkboxes accordingly.
* @param useSystray
*/
void ConfigDialog::useTrayIcon(bool useSystray) {
ui->checkBoxUseTrayIcon->setChecked(useSystray);
ui->checkBoxHideOnClose->setEnabled(useSystray);
ui->checkBoxStartMinimized->setEnabled(useSystray);
if (!useSystray) {
ui->checkBoxHideOnClose->setChecked(false);
ui->checkBoxStartMinimized->setChecked(false);
}
}
/**
* @brief ConfigDialog::hideOnClose set preference for hiding instead of closing
* (quitting) application.
* @param hideOnClose
*/
void ConfigDialog::hideOnClose(bool hideOnClose) {
ui->checkBoxHideOnClose->setChecked(hideOnClose);
}
/**
* @brief ConfigDialog::on_checkBoxUseTrayIcon_clicked enable and disable
* related checkboxes.
*/
void ConfigDialog::on_checkBoxUseTrayIcon_clicked() {
if (ui->checkBoxUseTrayIcon->isChecked()) {
ui->checkBoxHideOnClose->setEnabled(true);
ui->checkBoxStartMinimized->setEnabled(true);
} else {
ui->checkBoxStartMinimized->setEnabled(false);
ui->checkBoxHideOnClose->setEnabled(false);
}
}
/**
* @brief ConfigDialog::closeEvent close this window.
* @param event
*/
void ConfigDialog::closeEvent(QCloseEvent *event) {
// TODO(annejan) save window size or something?
event->accept();
}
/**
* @brief ConfigDialog::useGit set preference for using git.
* @param useGit
*/
void ConfigDialog::useGit(bool useGit) {
ui->checkBoxUseGit->setChecked(useGit);
on_checkBoxUseGit_clicked();
}
/**
* @brief ConfigDialog::useGit retrun preference for using git.
* @return
*/
bool ConfigDialog::useGit() { return ui->checkBoxUseGit->isChecked(); }
/**
* @brief ConfigDialog::on_checkBoxUseGit_clicked enable or disable related
* checkboxes.
*/
void ConfigDialog::on_checkBoxUseGit_clicked() {
ui->checkBoxAddGPGId->setEnabled(ui->checkBoxUseGit->isChecked());
ui->checkBoxAutoPull->setEnabled(ui->checkBoxUseGit->isChecked());
ui->checkBoxAutoPush->setEnabled(ui->checkBoxUseGit->isChecked());
}
/**
* @brief ConfigDialog::on_toolButtonPwgen_clicked enable or disable related
* options in the interface.
*/
void ConfigDialog::on_toolButtonPwgen_clicked() {
QString pwgen = selectExecutable();
if (!pwgen.isEmpty()) {
ui->pwgenPath->setText(pwgen);
ui->checkBoxUsePwgen->setEnabled(true);
} else {
ui->checkBoxUsePwgen->setEnabled(false);
ui->checkBoxUsePwgen->setChecked(false);
}
}
/**
* @brief ConfigDialog::getPwgenPath return pwgen executable path.
* @return
*/
QString ConfigDialog::getPwgenPath() { return ui->pwgenPath->text(); }
/**
* @brief ConfigDialog::setPwgenPath set pwgen executable path.
* Enable or disable related options in the interface.
* @param pwgen
*/
void ConfigDialog::setPwgenPath(QString pwgen) {
ui->pwgenPath->setText(pwgen);
if (pwgen.isEmpty()) {
ui->checkBoxUsePwgen->setChecked(false);
ui->checkBoxUsePwgen->setEnabled(false);
}
on_checkBoxUsePwgen_clicked();
}
/**
* @brief ConfigDialog::on_checkBoxUsPwgen_clicked enable or disable related
* options in the interface.
*/
void ConfigDialog::on_checkBoxUsePwgen_clicked() {
bool usePwgen = ui->checkBoxUsePwgen->isChecked();
ui->checkBoxAvoidCapitals->setEnabled(usePwgen);
ui->checkBoxAvoidNumbers->setEnabled(usePwgen);
ui->checkBoxLessRandom->setEnabled(usePwgen);
ui->checkBoxUseSymbols->setEnabled(usePwgen);
ui->lineEditPasswordChars->setEnabled(!usePwgen);
ui->labelPasswordChars->setEnabled(!usePwgen);
ui->passwordCharTemplateSelector->setEnabled(!usePwgen);
}
/**
* @brief ConfigDialog::usePwgen set preference for using pwgen (can be
* overruled buy empty pwgenPath).
* enable or disable related options in the interface via
* ConfigDialog::on_checkBoxUsePwgen_clicked
* @param usePwgen
*/
void ConfigDialog::usePwgen(bool usePwgen) {
if (ui->pwgenPath->text().isEmpty())
usePwgen = false;
ui->checkBoxUsePwgen->setChecked(usePwgen);
on_checkBoxUsePwgen_clicked();
}
/**
* @brief ConfigDialog::avoidCapitals set preference for avoiding uppercase
* letters using pwgen.
* @param avoidCapitals
*/
void ConfigDialog::avoidCapitals(bool avoidCapitals) {
ui->checkBoxAvoidCapitals->setChecked(avoidCapitals);
}
/**
* @brief ConfigDialog::avoidNumbers set preference for using numbers in pwgen
* generated password.
* @param avoidNumbers
*/
void ConfigDialog::avoidNumbers(bool avoidNumbers) {
ui->checkBoxAvoidNumbers->setChecked(avoidNumbers);
}
/**
* @brief ConfigDialog::lessRandom set preference for using less random
* passwords.
* @param lessRandom
*/
void ConfigDialog::lessRandom(bool lessRandom) {
ui->checkBoxLessRandom->setChecked(lessRandom);
}
/**
* @brief ConfigDialog::useSymbols set preference for using special characters
* in pwgen.
* @param useSymbols
*/
void ConfigDialog::useSymbols(bool useSymbols) {
ui->checkBoxUseSymbols->setChecked(useSymbols);
}
-/**
- * @brief ConfigDialog::setPasswordLength set the length of desired (generated)
- * passwords.
- * @param pwLen
- */
-void ConfigDialog::setPasswordLength(int pwLen) {
- ui->spinBoxPasswordLength->setValue(pwLen);
+void ConfigDialog::setPasswordConfiguration(const PasswordConfiguration &config) {
+ ui->spinBoxPasswordLength->setValue(config.length);
+ ui->passwordCharTemplateSelector->setCurrentIndex(config.selected);
+ if (config.selected != PasswordConfiguration::CUSTOM)
+ ui->lineEditPasswordChars->setEnabled(false);
+ ui->lineEditPasswordChars->setText(config.Characters[config.selected]);
}
-/**
- * @brief ConfigDialog::setPasswordChars use these charcters to generate
- * password (non-pwgen option).
- * @param pwChars
- */
-void ConfigDialog::setPasswordChars(QString pwChars) {
- ui->lineEditPasswordChars->setText(pwChars);
+PasswordConfiguration ConfigDialog::getPasswordConfiguration() {
+ PasswordConfiguration config;
+ config.length = ui->spinBoxPasswordLength->value();
+ config.selected = static_cast<PasswordConfiguration::characterSet>(
+ ui->passwordCharTemplateSelector->currentIndex());
+ config.Characters[PasswordConfiguration::CUSTOM] =
+ ui->lineEditPasswordChars->text();
+ return config;
}
/**
* @brief ConfigDialog::usePwgen return preference for using pwgen.
* @return
*/
bool ConfigDialog::usePwgen() { return ui->checkBoxUsePwgen->isChecked(); }
/**
* @brief ConfigDialog::avoidCapitals return preference for avoiding uppercase
* letters using pwgen.
* @return
*/
bool ConfigDialog::avoidCapitals() {
return ui->checkBoxAvoidCapitals->isChecked();
}
/**
* @brief ConfigDialog::avoidNumbers return preference for using numbers in
* generated password using pwgen.
* @return
*/
bool ConfigDialog::avoidNumbers() {
return ui->checkBoxAvoidNumbers->isChecked();
}
/**
* @brief ConfigDialog::lessRandom return preference for using less random
* passwords in pwgen.
* @return
*/
bool ConfigDialog::lessRandom() { return ui->checkBoxLessRandom->isChecked(); }
/**
* @brief ConfigDialog::useSymbols return preference for using special
* characters with pwgen.
* @return
*/
bool ConfigDialog::useSymbols() { return ui->checkBoxUseSymbols->isChecked(); }
-/**
- * @brief ConfigDialog::getPasswordLength return desired length for generated
- * passwords.
- * @return
- */
-int ConfigDialog::getPasswordLength() {
- return ui->spinBoxPasswordLength->value();
-}
-
-/**
- * @brief ConfigDialog::getPasswordChars return characters to use in password
- * generation (non-pwgen).
- * @return
- */
-QString ConfigDialog::getPasswordChars() {
- return ui->lineEditPasswordChars->text();
-}
-
-/**
- * @brief ConfigDialog::setPwdTemplateSelector sets the current index of the
- * password characters template combobox
- * @return
- */
-void ConfigDialog::setPwdTemplateSelector(int selection) {
- ui->passwordCharTemplateSelector->setCurrentIndex(selection);
-}
-
-/**
- * @brief ConfigDialog::getPwdTemplateSelector returns the selection of the
- * password characters template combobox
- * @return
- */
-int ConfigDialog::getPwdTemplateSelector() {
- return ui->passwordCharTemplateSelector->currentIndex();
-}
-
/**
* @brief ConfigDialog::on_passwordCharTemplateSelector_activated sets the
* passwordChar Template
* combo box to the desired entry
* @param entry of
*/
void ConfigDialog::on_passwordCharTemplateSelector_activated(int index) {
- ui->lineEditPasswordChars->setText(mainWindow->pwdConfig.Characters[index]);
+ ui->lineEditPasswordChars->setText(
+ QtPassSettings::getPasswordConfiguration().Characters[index]);
if (index == 3) {
ui->lineEditPasswordChars->setEnabled(true);
} else {
ui->lineEditPasswordChars->setEnabled(false);
}
}
-/**
- * @brief ConfigDialog::setLineEditEnabled enabling/disabling the textbox with
- * the
- * password characters
- * @param b enable/disable
- */
-void ConfigDialog::setLineEditEnabled(bool b) {
- ui->lineEditPasswordChars->setEnabled(b);
-}
-
/**
* @brief ConfigDialog::startMinimized return preference for starting
* application minimized (tray icon).
* @return
*/
bool ConfigDialog::startMinimized() {
return ui->checkBoxStartMinimized->isChecked();
}
/**
* @brief ConfigDialog::startMinimized set preference for starting application
* minimized (tray icon).
* @param startMinimized
*/
void ConfigDialog::startMinimized(bool startMinimized) {
ui->checkBoxStartMinimized->setChecked(startMinimized);
}
/**
* @brief ConfigDialog::on_checkBoxUseTemplate_clicked enable or disable the
* template field and options.
*/
void ConfigDialog::on_checkBoxUseTemplate_clicked() {
ui->plainTextEditTemplate->setEnabled(ui->checkBoxUseTemplate->isChecked());
ui->checkBoxTemplateAllFields->setEnabled(
ui->checkBoxUseTemplate->isChecked());
}
/**
* @brief ConfigDialog::useTemplate set preference for using templates.
* @param useTemplate
*/
void ConfigDialog::useTemplate(bool useTemplate) {
ui->checkBoxUseTemplate->setChecked(useTemplate);
on_checkBoxUseTemplate_clicked();
}
/**
* @brief ConfigDialog::useTemplate return preference for using templates.
* @return
*/
bool ConfigDialog::useTemplate() {
return ui->checkBoxUseTemplate->isChecked();
}
/**
* @brief ConfigDialog::setTemplate set the desired template.
* @param passTemplate
*/
void ConfigDialog::setTemplate(QString passTemplate) {
ui->plainTextEditTemplate->setPlainText(passTemplate);
}
/**
* @brief ConfigDialog::getTemplate return the desired template.
* @return
*/
QString ConfigDialog::getTemplate() {
return ui->plainTextEditTemplate->toPlainText();
}
/**
* @brief ConfigDialog::autoPull set preference for automatically pulling from
* git
* @param autoPull
*/
void ConfigDialog::autoPull(bool autoPull) {
ui->checkBoxAutoPull->setChecked(autoPull);
}
/**
* @brief ConfigDialog::autoPush set preference for automatically pushing to git
* @param autoPush
*/
void ConfigDialog::autoPush(bool autoPush) {
ui->checkBoxAutoPush->setChecked(autoPush);
}
/**
* @brief ConfigDialog::autoPull return preference for automatically pulling
* from git
* @return
*/
bool ConfigDialog::autoPull() { return ui->checkBoxAutoPull->isChecked(); }
/**
* @brief ConfigDialog::autoPush return preference for automatically pushing to
* git
* @return
*/
bool ConfigDialog::autoPush() { return ui->checkBoxAutoPush->isChecked(); }
/**
* @brief ConfigDialog::templateAllFields return preference for templating all
* tokenisable fields
* @return
*/
bool ConfigDialog::templateAllFields() {
return ui->checkBoxTemplateAllFields->isChecked();
}
/**
* @brief ConfigDialog::templateAllFields set preference for templating all
* tokenisable fields
* @param templateAll
*/
void ConfigDialog::templateAllFields(bool templateAll) {
ui->checkBoxTemplateAllFields->setChecked(templateAll);
}
/**
* @brief ConfigDialog::alwaysOnTop set preference for running application on
* top of others
* @param alwaysOnTop
*/
void ConfigDialog::alwaysOnTop(bool alwaysOnTop) {
ui->checkBoxAlwaysOnTop->setChecked(alwaysOnTop);
}
/**
* @brief ConfigDialog::alwaysOnTop return preference for running application on
* top of others.
* @return
*/
bool ConfigDialog::alwaysOnTop() {
return ui->checkBoxAlwaysOnTop->isChecked();
}
diff --git a/src/configdialog.h b/src/configdialog.h
index 7962f01..232843c 100644
--- a/src/configdialog.h
+++ b/src/configdialog.h
@@ -1,134 +1,129 @@
#ifndef CONFIGDIALOG_H_
#define CONFIGDIALOG_H_
#include "mainwindow.h"
#include <QCloseEvent>
#include <QDialog>
#include <QFileDialog>
#include <QTableWidgetItem>
namespace Ui {
struct UserInfo;
class ConfigDialog;
} // namespace Ui
/*!
\class ConfigDialog
\brief The ConfigDialog handles the configuration interface.
This class should also take the handling from the MainWindow class.
*/
class ConfigDialog : public QDialog {
Q_OBJECT
public:
explicit ConfigDialog(MainWindow *parent);
~ConfigDialog();
void setPassPath(QString);
void setGitPath(QString);
void setGpgPath(QString);
void setStorePath(QString);
void setProfiles(QHash<QString, QString>, QString);
void usePass(bool usePass);
void useClipboard(Enums::clipBoardType);
void useSelection(bool useSelection);
void useAutoclear(bool useAutoclear);
void setAutoclear(int seconds);
void useAutoclearPanel(bool useAutoclearPanel);
void setAutoclearPanel(int seconds);
void hidePassword(bool hidePassword);
void hideContent(bool hideContent);
void addGPGId(bool addGPGId);
QString getPassPath();
QString getGitPath();
QString getGpgPath();
QString getStorePath();
QHash<QString, QString> getProfiles();
bool usePass();
Enums::clipBoardType useClipboard();
bool useSelection();
bool useAutoclear();
int getAutoclear();
bool useAutoclearPanel();
int getAutoclearPanel();
bool hidePassword();
bool hideContent();
bool addGPGId();
void wizard();
void genKey(QString, QDialog *);
bool useTrayIcon();
bool hideOnClose();
bool startMinimized();
void useTrayIcon(bool useTrayIdon);
void hideOnClose(bool hideOnClose);
void startMinimized(bool startMinimized);
void useGit(bool useGit);
bool useGit();
QString getPwgenPath();
void setPwgenPath(QString);
void usePwgen(bool usePwgen);
void avoidCapitals(bool avoidCapitals);
void avoidNumbers(bool avoidNumbers);
void lessRandom(bool lessRandom);
void useSymbols(bool useSymbols);
- void setPasswordLength(int pwLen);
- void setPasswordChars(QString);
- void setPwdTemplateSelector(int selection);
- void setLineEditEnabled(bool b);
- int getPwdTemplateSelector();
+ void setPasswordConfiguration(const PasswordConfiguration &config);
+ PasswordConfiguration getPasswordConfiguration();
bool usePwgen();
bool avoidCapitals();
bool avoidNumbers();
bool lessRandom();
bool useSymbols();
- int getPasswordLength();
- QString getPasswordChars();
bool useTemplate();
void useTemplate(bool useTemplate);
QString getTemplate();
void setTemplate(QString);
void templateAllFields(bool templateAllFields);
bool templateAllFields();
bool autoPull();
void autoPull(bool autoPull);
bool autoPush();
void autoPush(bool autoPush);
bool alwaysOnTop();
void alwaysOnTop(bool alwaysOnTop);
protected:
void closeEvent(QCloseEvent *event);
private slots:
void on_radioButtonNative_clicked();
void on_radioButtonPass_clicked();
void on_toolButtonGit_clicked();
void on_toolButtonGpg_clicked();
void on_toolButtonPwgen_clicked();
void on_toolButtonPass_clicked();
void on_toolButtonStore_clicked();
void on_comboBoxClipboard_activated(int);
void on_passwordCharTemplateSelector_activated(int);
void on_checkBoxSelection_clicked();
void on_checkBoxAutoclear_clicked();
void on_checkBoxAutoclearPanel_clicked();
void on_addButton_clicked();
void on_deleteButton_clicked();
void on_checkBoxUseTrayIcon_clicked();
void on_checkBoxUseGit_clicked();
void on_checkBoxUsePwgen_clicked();
void on_checkBoxUseTemplate_clicked();
private:
QScopedPointer<Ui::ConfigDialog> ui;
void setGroupBoxState();
QString selectExecutable();
QString selectFolder();
// QMessageBox::critical with hack to avoid crashes with
// Qt 5.4.1 when QApplication::exec was not yet called
void criticalMessage(const QString &title, const QString &text);
MainWindow *mainWindow;
};
#endif // CONFIGDIALOG_H_
diff --git a/src/filecontent.cpp b/src/filecontent.cpp
new file mode 100644
index 0000000..409e30b
--- /dev/null
+++ b/src/filecontent.cpp
@@ -0,0 +1,58 @@
+#include "filecontent.h"
+
+FileContent FileContent::parse(const QString &fileContent, const QStringList &templateFields, bool allFields)
+{
+ QStringList lines = fileContent.split("\n");
+ QString password = lines.takeFirst();
+ QStringList remainingData;
+ NamedValues namedValues;
+ for(QString line : lines) {
+ if (line.contains(":")) {
+ int colon = line.indexOf(':');
+ QString name = line.left(colon);
+ QString value = line.right(line.length() - colon - 1);
+ if ((allFields && !value.startsWith("//")) // if value startswith // colon is probably from a url
+ || templateFields.contains(name)) {
+ namedValues.append({name.trimmed(), value.trimmed()});
+ continue;
+ }
+ }
+ remainingData.append(line);
+ }
+ return FileContent(password, namedValues, remainingData.join("\n"));
+}
+
+QString FileContent::getPassword() const
+{
+ return this->password;
+}
+
+NamedValues FileContent::getNamedValues() const
+{
+ return this->namedValues;
+}
+
+QString FileContent::getRemainingData() const
+{
+ return this->remainingData;
+}
+
+FileContent::FileContent(const QString &password, const NamedValues &namedValues, const QString &remainingData)
+ : password(password), namedValues(namedValues), remainingData(remainingData)
+{}
+
+NamedValues::NamedValues() : QList()
+{}
+
+NamedValues::NamedValues(std::initializer_list<NamedValue> values) : QList(values)
+{}
+
+QString NamedValues::takeValue(const QString &name)
+{
+ for (int i = 0; i < length(); ++i) {
+ if (at(i).name == name) {
+ return takeAt(i).value;
+ }
+ }
+ return QString();
+}
diff --git a/src/filecontent.h b/src/filecontent.h
new file mode 100644
index 0000000..7d75ea3
--- /dev/null
+++ b/src/filecontent.h
@@ -0,0 +1,68 @@
+#ifndef FILECONTENT_H
+#define FILECONTENT_H
+
+#include <utility>
+#include <QList>
+#include <QString>
+
+struct NamedValue {
+ QString name;
+ QString value;
+};
+
+/**
+ * @brief The NamedValues class is mostly a list of \link NamedValue
+ * but also has a method to take a specific NamedValue pair out of the list.
+ */
+class NamedValues : public QList<NamedValue> {
+public:
+ NamedValues();
+ NamedValues(std::initializer_list<NamedValue> values);
+
+ QString takeValue(const QString &name);
+};
+
+class FileContent
+{
+public:
+ /**
+ * @brief parse parses the given fileContent in a FileContent object.
+ * The password is accessible through getPassword.
+ * The named value pairs (name: value) are parsed and depeding on the templateFields and allFields parameters
+ * accessible through getNamedValues or getRemainingData.
+ *
+ * @param fileContent the file content to parse.
+ *
+ * @param templateFields the fields in the template.
+ * Fields in the template will always be in getNamedValues() at the beginning of the list in the same order.
+ *
+ * @param allFields whether all fields should be considered as named values.
+ * If set to false only templateFields are returned in getNamedValues().
+ *
+ * @return
+ */
+ static FileContent parse(const QString &fileContent, const QStringList& templateFields, bool allFields);
+
+ /**
+ * @return the password from the parsed file.
+ */
+ QString getPassword() const;
+
+ /**
+ * @return the named values in the file in the order of appearence, with template values first.
+ */
+ NamedValues getNamedValues() const;
+
+ /**
+ * @return the data that is not the password and not in getNamedValues.
+ */
+ QString getRemainingData() const;
+private:
+ FileContent(const QString &password, const NamedValues &namedValues, const QString &remainingData);
+
+ QString password;
+ NamedValues namedValues;
+ QString remainingData;
+};
+
+#endif // FILECONTENT_H
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 1844aae..22c0728 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1,1539 +1,1492 @@
#include "mainwindow.h"
#include "debughelper.h"
#include <QClipboard>
#include <QCloseEvent>
#include <QFileInfo>
#include <QInputDialog>
#include <QLabel>
#include <QMessageBox>
#include <QQueue>
#include <QShortcut>
#include <QTextCodec>
#include <QTimer>
#ifdef Q_OS_WIN
#define WIN32_LEAN_AND_MEAN /*_KILLING_MACHINE*/
#define WIN32_EXTRA_LEAN
#include <windows.h>
#include <winnetwk.h>
#undef DELETE
#endif
#include "configdialog.h"
#include "keygendialog.h"
#include "passworddialog.h"
#include "qpushbuttonwithclipboard.h"
#include "qtpasssettings.h"
#include "settingsconstants.h"
#include "ui_mainwindow.h"
#include "usersdialog.h"
#include "util.h"
+#include "filecontent.h"
/**
* @brief MainWindow::MainWindow handles all of the main functionality and also
* the main window.
* @param parent
*/
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow), fusedav(this), keygen(NULL),
tray(NULL) {
#ifdef __APPLE__
// extra treatment for mac os
// see http://doc.qt.io/qt-5/qkeysequence.html#qt_set_sequence_auto_mnemonic
qt_set_sequence_auto_mnemonic(true);
#endif
// register shortcut ctrl/cmd + Q to close the main window
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this, SLOT(close()));
// register shortcut ctrl/cmd + C to copy the currently selected password
new QShortcut(QKeySequence(QKeySequence::StandardKey::Copy), this, SLOT(copyPasswordFromTreeview()));
// TODO(bezet): this should be reconnected dynamically when pass changes
connectPassSignalHandlers(QtPassSettings::getRealPass());
connectPassSignalHandlers(QtPassSettings::getImitatePass());
// only for ipass
connect(QtPassSettings::getImitatePass(), SIGNAL(startReencryptPath()), this,
SLOT(startReencryptPath()));
connect(QtPassSettings::getImitatePass(), SIGNAL(endReencryptPath()), this,
SLOT(endReencryptPath()));
ui->setupUi(this);
enableUiElements(true);
ui->statusBar->showMessage(tr("Welcome to QtPass %1").arg(VERSION), 2000);
freshStart = true;
startupPhase = true;
clearPanelTimer.setSingleShot(true);
connect(&clearPanelTimer, SIGNAL(timeout()), this, SLOT(clearPanel()));
clearClipboardTimer.setSingleShot(true);
connect(&clearClipboardTimer, SIGNAL(timeout()), this,
SLOT(clearClipboard()));
- pwdConfig.selected = passwordConfiguration::ALLCHARS;
if (!checkConfig()) {
// no working config
QApplication::quit();
}
clippedText = "";
- QtPass = NULL;
QTimer::singleShot(10, this, SLOT(focusInput()));
- // Add a Actions to the Add-Button
- QIcon addFileIcon = QIcon::fromTheme("file_new");
- QIcon addFolderIcon = QIcon::fromTheme("folder_new");
- actionAddPassword = new QAction(addFileIcon, tr("Add Password"), this);
- actionAddFolder = new QAction(addFolderIcon, tr("Add Folder"), this);
-
- ui->addButton->addAction(actionAddPassword);
- ui->addButton->addAction(actionAddFolder);
+ initAddButton();
- connect(actionAddPassword, SIGNAL(triggered()), this,
- SLOT(on_addButton_clicked()));
- connect(actionAddFolder, SIGNAL(triggered()), this, SLOT(addFolder()));
qsrand(static_cast<uint>(QTime::currentTime().msec()));
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
ui->lineEdit->setClearButtonEnabled(true);
#endif
}
/**
* @brief MainWindow::focusInput selects any text (if applicable) in the search
* box and sets focus to it. Allows for easy searching, called at application
* start and when receiving empty message in MainWindow::messageAvailable when
* compiled with SINGLE_APP=1 (default).
*/
void MainWindow::focusInput() {
ui->lineEdit->selectAll();
ui->lineEdit->setFocus();
}
/**
* @brief MainWindow::~MainWindow destroy!
*/
MainWindow::~MainWindow() {
#ifdef Q_OS_WIN
if (QtPassSettings::isUseWebDav())
WNetCancelConnection2A(QtPassSettings::getPassStore().toUtf8().constData(),
0, 1);
#else
if (fusedav.state() == QProcess::Running) {
fusedav.terminate();
fusedav.waitForFinished(2000);
}
#endif
}
/**
* @brief MainWindow::changeEvent sets focus to the search box
* @param event
*/
void MainWindow::changeEvent(QEvent *event) {
QWidget::changeEvent(event);
if (event->type() == QEvent::ActivationChange) {
if (this->isActiveWindow()) {
ui->lineEdit->selectAll();
ui->lineEdit->setFocus();
}
}
}
/**
* @brief MainWindow::connectPassSignalHandlers this method connects Pass
* signals to approprite MainWindow
* slots
*
* @param pass pointer to pass instance
*/
void MainWindow::connectPassSignalHandlers(Pass *pass) {
// TODO(bezet): this is never emitted(should be), also naming(see
// critical())
connect(pass, &Pass::error, this, &MainWindow::processError);
connect(pass, &Pass::startingExecuteWrapper, this,
&MainWindow::executeWrapperStarted);
connect(pass, &Pass::critical, this, &MainWindow::critical);
connect(pass, &Pass::statusMsg, this, &MainWindow::showStatusMessage);
connect(pass, &Pass::processErrorExit, this, &MainWindow::processErrorExit);
connect(pass, &Pass::finishedGitInit, this, &MainWindow::passStoreChanged);
connect(pass, &Pass::finishedGitPull, this, &MainWindow::processFinished);
connect(pass, &Pass::finishedGitPush, this, &MainWindow::processFinished);
connect(pass, &Pass::finishedShow, this, &MainWindow::passShowHandler);
connect(pass, &Pass::finishedInsert, this, &MainWindow::finishedInsert);
connect(pass, &Pass::finishedRemove, this, &MainWindow::passStoreChanged);
connect(pass, &Pass::finishedInit, this, &MainWindow::passStoreChanged);
connect(pass, &Pass::finishedMove, this, &MainWindow::passStoreChanged);
connect(pass, &Pass::finishedCopy, this, &MainWindow::passStoreChanged);
connect(pass, &Pass::finishedGenerateGPGKeys, this,
&MainWindow::keyGenerationComplete);
}
/**
* @brief MainWindow::mountWebDav is some scary voodoo magic
*/
void MainWindow::mountWebDav() {
#ifdef Q_OS_WIN
char dst[20] = {0};
NETRESOURCEA netres;
memset(&netres, 0, sizeof(netres));
netres.dwType = RESOURCETYPE_DISK;
netres.lpLocalName = 0;
netres.lpRemoteName = QtPassSettings::getWebDavUrl().toUtf8().data();
DWORD size = sizeof(dst);
DWORD r = WNetUseConnectionA(
reinterpret_cast<HWND>(effectiveWinId()), &netres,
QtPassSettings::getWebDavPassword().toUtf8().constData(),
QtPassSettings::getWebDavUser().toUtf8().constData(),
CONNECT_TEMPORARY | CONNECT_INTERACTIVE | CONNECT_REDIRECT, dst, &size,
0);
if (r == NO_ERROR) {
QtPassSettings::setPassStore(dst);
} else {
char message[256] = {0};
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, r, 0, message,
sizeof(message), 0);
ui->textBrowser->setTextColor(Qt::red);
ui->textBrowser->setText(tr("Failed to connect WebDAV:\n") + message +
" (0x" + QString::number(r, 16) + ")");
ui->textBrowser->setTextColor(Qt::black);
}
#else
fusedav.start("fusedav -o nonempty -u \"" + QtPassSettings::getWebDavUser() +
"\" " + QtPassSettings::getWebDavUrl() + " \"" +
QtPassSettings::getPassStore() + '"');
fusedav.waitForStarted();
if (fusedav.state() == QProcess::Running) {
QString pwd = QtPassSettings::getWebDavPassword();
bool ok = true;
if (pwd.isEmpty()) {
pwd = QInputDialog::getText(this, tr("QtPass WebDAV password"),
tr("Enter password to connect to WebDAV:"),
QLineEdit::Password, "", &ok);
}
if (ok && !pwd.isEmpty()) {
fusedav.write(pwd.toUtf8() + '\n');
fusedav.closeWriteChannel();
fusedav.waitForFinished(2000);
} else {
fusedav.terminate();
}
}
QString error = fusedav.readAllStandardError();
int prompt = error.indexOf("Password:");
if (prompt >= 0)
error.remove(0, prompt + 10);
if (fusedav.state() != QProcess::Running)
error = tr("fusedav exited unexpectedly\n") + error;
if (error.size() > 0) {
ui->textBrowser->setTextColor(Qt::red);
ui->textBrowser->setText(
tr("Failed to start fusedav to connect WebDAV:\n") + error);
ui->textBrowser->setTextColor(Qt::black);
}
#endif
}
/**
* @brief MainWindow::checkConfig make sure we are ready to go as soon as
* possible
*/
bool MainWindow::checkConfig() {
QString version = QtPassSettings::getVersion();
if (freshStart) {
- QByteArray geometry = QtPassSettings::getGeometry(saveGeometry());
- restoreGeometry(geometry);
- QByteArray savestate = QtPassSettings::getSavestate(saveState());
- restoreState(savestate);
- QPoint position = QtPassSettings::getPos(pos());
- move(position);
- QSize newSize = QtPassSettings::getSize(size());
- resize(newSize);
- QList<int> splitter = ui->splitter->sizes();
- int left = QtPassSettings::getSplitterLeft(splitter[0]);
- int right = QtPassSettings::getSplitterRight(splitter[1]);
- if (left > 0 || right > 0) {
- splitter[0] = left;
- splitter[1] = right;
- ui->splitter->setSizes(splitter);
- }
- if (QtPassSettings::isMaximized(isMaximized())) {
- showMaximized();
- }
+ restoreWindow();
}
QString passStore = QtPassSettings::getPassStore(Util::findPasswordStore());
QtPassSettings::setPassStore(passStore);
- QString passExecutable =
- QtPassSettings::getPassExecutable(Util::findBinaryInPath("pass"));
- QtPassSettings::setPassExecutable(passExecutable);
-
- QString gitExecutable =
- QtPassSettings::getGitExecutable(Util::findBinaryInPath("git"));
- QtPassSettings::setGitExecutable(gitExecutable);
-
- QString gpgExecutable =
- QtPassSettings::getGpgExecutable(Util::findBinaryInPath("gpg2"));
- QtPassSettings::setGpgExecutable(gpgExecutable);
-
- QString pwgenExecutable =
- QtPassSettings::getPwgenExecutable(Util::findBinaryInPath("pwgen"));
- QtPassSettings::setPwgenExecutable(pwgenExecutable);
-
- pwdConfig.length = QtPassSettings::getPasswordLength();
- pwdConfig.selected = static_cast<passwordConfiguration::characterSet>(
- QtPassSettings::getPasswordCharsselection());
- pwdConfig.Characters[passwordConfiguration::CUSTOM] =
- QtPassSettings::getPasswordChars();
+ QtPassSettings::initExecutables();
if (QtPassSettings::isAlwaysOnTop()) {
Qt::WindowFlags flags = windowFlags();
this->setWindowFlags(flags | Qt::WindowStaysOnTopHint);
this->show();
}
if (QtPassSettings::isUseTrayIcon() && tray == NULL) {
initTrayIcon();
if (freshStart && QtPassSettings::isStartMinimized()) {
// since we are still in constructor, can't directly hide
QTimer::singleShot(10, this, SLOT(hide()));
}
} else if (!QtPassSettings::isUseTrayIcon() && tray != NULL) {
destroyTrayIcon();
}
// dbg()<< version;
// Config updates
if (version.isEmpty()) {
dbg() << "assuming fresh install";
if (QtPassSettings::getAutoclearSeconds() < 5)
QtPassSettings::setAutoclearSeconds(10);
if (QtPassSettings::getAutoclearPanelSeconds() < 5)
QtPassSettings::setAutoclearPanelSeconds(10);
if (!QtPassSettings::getPwgenExecutable().isEmpty())
QtPassSettings::setUsePwgen(true);
else
QtPassSettings::setUsePwgen(false);
QtPassSettings::setPassTemplate("login\nurl");
} else {
// QStringList ver = version.split(".");
// dbg()<< ver;
// if (ver[0] == "0" && ver[1] == "8") {
//// upgrade to 0.9
// }
if (QtPassSettings::getPassTemplate().isEmpty())
QtPassSettings::setPassTemplate("login\nurl");
}
QtPassSettings::setVersion(VERSION);
if (Util::checkConfig()) {
config();
if (freshStart && Util::checkConfig())
return false;
}
freshStart = false;
// TODO(annejan): this needs to be before we try to access the store,
// but it would be better to do it after the Window is shown,
// as the long delay it can cause is irritating otherwise.
if (QtPassSettings::isUseWebDav())
mountWebDav();
model.setNameFilters(QStringList() << "*.gpg");
model.setNameFilterDisables(false);
proxyModel.setSourceModel(&model);
proxyModel.setModelAndStore(&model, QtPassSettings::getPassStore());
selectionModel.reset(new QItemSelectionModel(&proxyModel));
model.fetchMore(model.setRootPath(QtPassSettings::getPassStore()));
model.sort(0, Qt::AscendingOrder);
ui->treeView->setModel(&proxyModel);
ui->treeView->setRootIndex(proxyModel.mapFromSource(
model.setRootPath(QtPassSettings::getPassStore())));
ui->treeView->setColumnHidden(1, true);
ui->treeView->setColumnHidden(2, true);
ui->treeView->setColumnHidden(3, true);
ui->treeView->setHeaderHidden(true);
ui->treeView->setIndentation(15);
ui->treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->treeView, SIGNAL(customContextMenuRequested(const QPoint &)),
this, SLOT(showContextMenu(const QPoint &)));
connect(ui->treeView, SIGNAL(emptyClicked()), this, SLOT(deselect()));
ui->textBrowser->setOpenExternalLinks(true);
ui->textBrowser->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->textBrowser, SIGNAL(customContextMenuRequested(const QPoint &)),
this, SLOT(showBrowserContextMenu(const QPoint &)));
updateProfileBox();
QtPassSettings::getPass()->updateEnv();
clearPanelTimer.setInterval(1000 *
QtPassSettings::getAutoclearPanelSeconds());
clearClipboardTimer.setInterval(1000 * QtPassSettings::getAutoclearSeconds());
updateGitButtonVisibility();
startupPhase = false;
return true;
}
/**
* @brief MainWindow::config pops up the configuration screen and handles all
* inter-window communication
*/
void MainWindow::config() {
QScopedPointer<ConfigDialog> d(new ConfigDialog(this));
d->setModal(true);
// Automatically default to pass if it's available
if (freshStart && QFile(QtPassSettings::getPassExecutable()).exists()) {
QtPassSettings::setUsePass(true);
}
d->setPassPath(QtPassSettings::getPassExecutable());
d->setGitPath(QtPassSettings::getGitExecutable());
d->setGpgPath(QtPassSettings::getGpgExecutable());
d->setStorePath(QtPassSettings::getPassStore());
d->usePass(QtPassSettings::isUsePass());
d->useClipboard(QtPassSettings::getClipBoardType());
d->useSelection(QtPassSettings::isUseSelection());
d->useAutoclear(QtPassSettings::isUseAutoclear());
d->setAutoclear(QtPassSettings::getAutoclearSeconds());
d->useAutoclearPanel(QtPassSettings::isUseAutoclearPanel());
d->setAutoclearPanel(QtPassSettings::getAutoclearPanelSeconds());
d->hidePassword(QtPassSettings::isHidePassword());
d->hideContent(QtPassSettings::isHideContent());
d->addGPGId(QtPassSettings::isAddGPGId(true));
d->useTrayIcon(QtPassSettings::isUseTrayIcon());
d->hideOnClose(QtPassSettings::isHideOnClose());
d->startMinimized(QtPassSettings::isStartMinimized());
d->setProfiles(QtPassSettings::getProfiles(), QtPassSettings::getProfile());
d->useGit(QtPassSettings::isUseGit());
d->setPwgenPath(QtPassSettings::getPwgenExecutable());
d->usePwgen(QtPassSettings::isUsePwgen());
d->avoidCapitals(QtPassSettings::isAvoidCapitals());
d->avoidNumbers(QtPassSettings::isAvoidNumbers());
d->lessRandom(QtPassSettings::isLessRandom());
d->useSymbols(QtPassSettings::isUseSymbols());
- d->setPasswordLength(pwdConfig.length);
- d->setPwdTemplateSelector(pwdConfig.selected);
- if (pwdConfig.selected != passwordConfiguration::CUSTOM)
- d->setLineEditEnabled(false);
- d->setPasswordChars(pwdConfig.Characters[pwdConfig.selected]);
+ d->setPasswordConfiguration(QtPassSettings::getPasswordConfiguration());
d->useTemplate(QtPassSettings::isUseTemplate());
d->setTemplate(QtPassSettings::getPassTemplate());
d->templateAllFields(QtPassSettings::isTemplateAllFields());
d->autoPull(QtPassSettings::isAutoPull());
d->autoPush(QtPassSettings::isAutoPush());
d->alwaysOnTop(QtPassSettings::isAlwaysOnTop());
if (startupPhase)
d->wizard(); // does shit
if (d->exec()) {
if (d->result() == QDialog::Accepted) {
QtPassSettings::setPassExecutable(d->getPassPath());
QtPassSettings::setGitExecutable(d->getGitPath());
QtPassSettings::setGpgExecutable(d->getGpgPath());
QtPassSettings::setPassStore(
Util::normalizeFolderPath(d->getStorePath()));
QtPassSettings::setUsePass(d->usePass());
QtPassSettings::setClipBoardType(d->useClipboard());
QtPassSettings::setUseSelection(d->useSelection());
QtPassSettings::setUseAutoclear(d->useAutoclear());
QtPassSettings::setAutoclearSeconds(d->getAutoclear());
QtPassSettings::setUseAutoclearPanel(d->useAutoclearPanel());
QtPassSettings::setAutoclearPanelSeconds(d->getAutoclearPanel());
QtPassSettings::setHidePassword(d->hidePassword());
QtPassSettings::setHideContent(d->hideContent());
QtPassSettings::setAddGPGId(d->addGPGId());
QtPassSettings::setUseTrayIcon(d->useTrayIcon());
QtPassSettings::setHideOnClose(d->hideOnClose());
QtPassSettings::setStartMinimized(d->startMinimized());
QtPassSettings::setProfiles(d->getProfiles());
QtPassSettings::setUseGit(d->useGit());
QtPassSettings::setPwgenExecutable(d->getPwgenPath());
QtPassSettings::setUsePwgen(d->usePwgen());
QtPassSettings::setAvoidCapitals(d->avoidCapitals());
QtPassSettings::setAvoidNumbers(d->avoidNumbers());
QtPassSettings::setLessRandom(d->lessRandom());
QtPassSettings::setUseSymbols(d->useSymbols());
- pwdConfig.length = d->getPasswordLength();
- pwdConfig.selected = static_cast<passwordConfiguration::characterSet>(
- d->getPwdTemplateSelector());
- pwdConfig.Characters[passwordConfiguration::CUSTOM] =
- d->getPasswordChars();
+ QtPassSettings::setPasswordConfiguration(d->getPasswordConfiguration());
QtPassSettings::setUseTemplate(d->useTemplate());
QtPassSettings::setPassTemplate(d->getTemplate());
QtPassSettings::setTemplateAllFields(d->templateAllFields());
QtPassSettings::setAutoPush(d->autoPush());
QtPassSettings::setAutoPull(d->autoPull());
QtPassSettings::setAlwaysOnTop(d->alwaysOnTop());
QtPassSettings::setVersion(VERSION);
- QtPassSettings::setPasswordLength(pwdConfig.length);
- QtPassSettings::setPasswordCharsselection(pwdConfig.selected);
- QtPassSettings::setPasswordChars(
- pwdConfig.Characters[passwordConfiguration::CUSTOM]);
if (QtPassSettings::isAlwaysOnTop()) {
Qt::WindowFlags flags = windowFlags();
this->setWindowFlags(flags | Qt::WindowStaysOnTopHint);
this->show();
} else {
this->setWindowFlags(Qt::Window);
this->show();
}
updateProfileBox();
ui->treeView->setRootIndex(proxyModel.mapFromSource(
model.setRootPath(QtPassSettings::getPassStore())));
if (freshStart && Util::checkConfig())
config();
QtPassSettings::getPass()->updateEnv();
clearPanelTimer.setInterval(1000 *
QtPassSettings::getAutoclearPanelSeconds());
clearClipboardTimer.setInterval(1000 *
QtPassSettings::getAutoclearSeconds());
updateGitButtonVisibility();
if (QtPassSettings::isUseTrayIcon() && tray == NULL)
initTrayIcon();
else if (!QtPassSettings::isUseTrayIcon() && tray != NULL)
destroyTrayIcon();
}
freshStart = false;
}
}
/**
* @brief MainWindow::on_updateButton_clicked do a git pull
*/
void MainWindow::on_updateButton_clicked(bool block) {
ui->statusBar->showMessage(tr("Updating password-store"), 2000);
if (block)
QtPassSettings::getPass()->GitPull_b();
else
QtPassSettings::getPass()->GitPull();
}
/**
* @brief MainWindow::on_pushButton_clicked do a git push
*/
void MainWindow::on_pushButton_clicked() {
if (QtPassSettings::isUseGit()) {
ui->statusBar->showMessage(tr("Updating password-store"), 2000);
QtPassSettings::getPass()->GitPush();
}
}
/**
* @brief MainWindow::getFile get the selected file path
* @param index
* @param forPass returns relative path without '.gpg' extension
* @return path
* @return
*/
QString MainWindow::getFile(const QModelIndex &index, bool forPass) {
if (!index.isValid() ||
!model.fileInfo(proxyModel.mapToSource(index)).isFile())
return QString();
QString filePath = model.filePath(proxyModel.mapToSource(index));
if (forPass) {
filePath = QDir(QtPassSettings::getPassStore()).relativeFilePath(filePath);
filePath.replace(QRegExp("\\.gpg$"), "");
}
return filePath;
}
/**
* @brief MainWindow::on_treeView_clicked read the selected password file
* @param index
*/
void MainWindow::on_treeView_clicked(const QModelIndex &index) {
bool cleared = ui->treeView->currentIndex().flags() == Qt::NoItemFlags;
currentDir =
Util::getDir(ui->treeView->currentIndex(), false, model, proxyModel);
// TODO(bezet): "Could not decrypt";
clippedText = "";
QString file = getFile(index, true);
ui->passwordName->setText(getFile(index, true));
if (!file.isEmpty() && !cleared) {
QtPassSettings::getPass()->Show(file);
} else {
clearPanel(false);
ui->editButton->setEnabled(false);
ui->deleteButton->setEnabled(true);
}
}
/**
* @brief MainWindow::on_treeView_doubleClicked when doubleclicked on
* TreeViewItem, open the edit Window
* @param index
*/
void MainWindow::on_treeView_doubleClicked(const QModelIndex &index) {
QFileInfo fileOrFolder =
model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex()));
if (fileOrFolder.isFile()) {
editPassword(getFile(index, true));
}
}
/**
* @brief MainWindow::deselect clear the selection, password and copy buffer
*/
void MainWindow::deselect() {
currentDir = "/";
clearClipboard();
ui->passwordName->setText("");
clearPanel(false);
}
/**
* @brief MainWindow::executePassGitInit git init wrapper
*/
void MainWindow::executePassGitInit() {
dbg() << "Pass git init called";
QtPassSettings::getPass()->GitInit();
}
void MainWindow::executeWrapperStarted() {
clearTemplateWidgets();
ui->textBrowser->clear();
enableUiElements(false);
clearPanelTimer.stop();
}
void MainWindow::keyGenerationComplete(const QString &p_output,
const QString &p_errout) {
// qDebug() << p_output;
// qDebug() << p_errout;
if (0 != keygen) {
qDebug() << "Keygen Done";
keygen->close();
keygen = 0;
// TODO(annejan) some sanity checking ?
}
processFinished(p_output, p_errout);
}
+void MainWindow::initAddButton() {
+ // Add a Actions to the Add-Button
+ QIcon addFileIcon = QIcon::fromTheme("file_new");
+ QIcon addFolderIcon = QIcon::fromTheme("folder_new");
+ QAction *actionAddPassword = new QAction(addFileIcon, tr("Add Password"), this);
+ QAction *actionAddFolder = new QAction(addFolderIcon, tr("Add Folder"), this);
+
+ ui->addButton->addAction(actionAddPassword);
+ ui->addButton->addAction(actionAddFolder);
+
+ connect(actionAddPassword, SIGNAL(triggered()), this,
+ SLOT(on_addButton_clicked()));
+ connect(actionAddFolder, SIGNAL(triggered()), this, SLOT(addFolder()));
+}
+
void MainWindow::passShowHandler(const QString &p_output) {
+ QStringList templ = QtPassSettings::isUseTemplate() ? QtPassSettings::getPassTemplate().split("\n") : QStringList();
+ bool allFields = QtPassSettings::isUseTemplate() && QtPassSettings::isTemplateAllFields();
+ FileContent fileContent = FileContent::parse(p_output, templ, allFields);
QString output = p_output;
- {
- QStringList tokens = p_output.split("\n");
- QString password = tokens.at(0);
- tokens.erase(tokens.begin());
-
- if (QtPassSettings::getClipBoardType() != Enums::CLIPBOARD_NEVER &&
- !p_output.isEmpty()) {
- clippedText = password;
- if (QtPassSettings::getClipBoardType() == Enums::CLIPBOARD_ALWAYS)
- copyTextToClipboard(password);
- if (QtPassSettings::isUseAutoclearPanel()) {
- clearPanelTimer.start();
- }
- if (QtPassSettings::isHidePassword() &&
- !QtPassSettings::isUseTemplate()) {
- output = "***" + tr("Password hidden") + "***";
- output += tokens.join("\n");
- }
- if (QtPassSettings::isHideContent())
- output = "***" + tr("Content hidden") + "***";
- }
+ QString password = fileContent.getPassword();
+
+ // handle clipboard
+ if (QtPassSettings::getClipBoardType() != Enums::CLIPBOARD_NEVER &&
+ !p_output.isEmpty()) {
+ clippedText = password;
+ if (QtPassSettings::getClipBoardType() == Enums::CLIPBOARD_ALWAYS)
+ copyTextToClipboard(password);
+ }
- clearTemplateWidgets();
- if (QtPassSettings::isUseTemplate() && !QtPassSettings::isHideContent()) {
- QStringList remainingTokens;
- for (int j = 0; j < tokens.length(); ++j) {
- QString token = tokens.at(j);
- if (token.contains(':')) {
- int colon = token.indexOf(':');
- QString field = token.left(colon);
- if (QtPassSettings::isTemplateAllFields() ||
- QtPassSettings::getPassTemplate().contains(field)) {
- QString value = token.right(token.length() - colon - 1);
- if (!QtPassSettings::getPassTemplate().contains(field) &&
- value.startsWith("//")) {
- remainingTokens.append(token);
- continue; // colon is probably from a url
- }
- addToGridLayout(j + 1, field, value);
- } else {
- remainingTokens.append(token);
- }
- } else {
- remainingTokens.append(token);
- }
- }
- if (ui->gridLayout->count() == 0)
- ui->verticalLayoutPassword->setSpacing(0);
- else
- ui->verticalLayoutPassword->setSpacing(6);
- output = remainingTokens.join("\n");
- } else if (!QtPassSettings::isHideContent()) {
- output = tokens.join("\n");
- }
- if (!QtPassSettings::isHideContent() && !password.isEmpty()) {
- // now set the password. If we set it earlier, the layout will be
- // cleared
+ // first clear the current view:
+ clearTemplateWidgets();
+
+ // show what is needed:
+ if (QtPassSettings::isHideContent()) {
+ output = "***" + tr("Content hidden") + "***";
+ } else {
+ if (!password.isEmpty()) {
+ // set the password, it is hidden if needed in addToGridLayout
addToGridLayout(0, tr("Password"), password);
}
- if (QtPassSettings::isUseAutoclearPanel()) {
- clearPanelTimer.start();
+
+ NamedValues namedValues = fileContent.getNamedValues();
+ for (int j = 0; j < namedValues.length(); ++j) {
+ NamedValue nv = namedValues.at(j);
+ addToGridLayout(j + 1, nv.name, nv.value);
}
+ if (ui->gridLayout->count() == 0)
+ ui->verticalLayoutPassword->setSpacing(0);
+ else
+ ui->verticalLayoutPassword->setSpacing(6);
+ output = fileContent.getRemainingData();
+ }
+
+ if (QtPassSettings::isUseAutoclearPanel()) {
+ clearPanelTimer.start();
}
DisplayInTextBrowser(output);
enableUiElements(true);
}
void MainWindow::passStoreChanged(const QString &p_out, const QString &p_err) {
processFinished(p_out, p_err);
doGitPush();
}
void MainWindow::doGitPush() {
if (QtPassSettings::isAutoPush())
on_pushButton_clicked();
}
void MainWindow::finishedInsert(const QString &p_output,
const QString &p_errout) {
processFinished(p_output, p_errout);
doGitPush();
on_treeView_clicked(ui->treeView->currentIndex());
}
void MainWindow::DisplayInTextBrowser(QString output, QString prefix,
QString postfix) {
output.replace(QRegExp("<"), "&lt;");
output.replace(QRegExp(">"), "&gt;");
output.replace(QRegExp(" "), "&nbsp;");
output.replace(
QRegExp("((?:https?|ftp|ssh|sftp|ftps|webdav|webdavs)://\\S+)"),
"<a href=\"\\1\">\\1</a>");
output.replace(QRegExp("\n"), "<br />");
output = prefix + output + postfix;
if (!ui->textBrowser->toPlainText().isEmpty())
output = ui->textBrowser->toHtml() + output;
ui->textBrowser->setHtml(output);
}
void MainWindow::processErrorExit(int exitCode, const QString &p_error) {
if (!p_error.isEmpty()) {
QString output;
QString error = p_error;
error.replace(QRegExp("<"), "&lt;");
error.replace(QRegExp(">"), "&gt;");
error.replace(QRegExp(" "), "&nbsp;");
if (exitCode == 0) {
// https://github.com/IJHack/qtpass/issues/111
output = "<span style=\"color: darkgray;\">" + error + "</span><br />";
} else {
output = "<span style=\"color: red;\">" + error + "</span><br />";
}
output.replace(
QRegExp("((?:https?|ftp|ssh|sftp|ftps|webdav|webdavs)://\\S+)"),
"<a href=\"\\1\">\\1</a>");
output.replace(QRegExp("\n"), "<br />");
if (!ui->textBrowser->toPlainText().isEmpty())
output = ui->textBrowser->toHtml() + output;
ui->textBrowser->setHtml(output);
}
enableUiElements(true);
}
/**
* @brief MainWindow::clearClipboard remove clipboard contents.
*/
void MainWindow::clearClipboard() {
QClipboard *clipboard = QApplication::clipboard();
bool cleared = false;
if (this->clippedText == clipboard->text(QClipboard::Selection)) {
clipboard->clear(QClipboard::Clipboard);
cleared = true;
}
if (this->clippedText == clipboard->text(QClipboard::Clipboard)) {
clipboard->clear(QClipboard::Clipboard);
cleared = true;
}
if (cleared) {
ui->statusBar->showMessage(tr("Clipboard cleared"), 2000);
} else {
ui->statusBar->showMessage(tr("Clipboard not cleared"), 2000);
}
this->clippedText.clear();
}
/**
* @brief MainWindow::clearPanel hide the information from shoulder surfers
*/
void MainWindow::clearPanel(bool notify) {
while (ui->gridLayout->count() > 0) {
QLayoutItem *item = ui->gridLayout->takeAt(0);
delete item->widget();
delete item;
}
if (notify) {
QString output = "***" + tr("Password and Content hidden") + "***";
ui->textBrowser->setHtml(output);
} else {
ui->textBrowser->setHtml("");
}
}
/**
* @brief MainWindow::processFinished background process has finished
* @param exitCode
* @param exitStatus
* @param output stdout from a process
* @param errout stderr from a process
*/
void MainWindow::processFinished(const QString &p_output,
const QString &p_errout) {
DisplayInTextBrowser(p_output);
// Sometimes there is error output even with 0 exit code, which is
// assumed in this function
processErrorExit(0, p_errout);
enableUiElements(true);
}
/**
* @brief MainWindow::enableUiElements enable or disable the relevant UI
* elements
* @param state
*/
void MainWindow::enableUiElements(bool state) {
ui->updateButton->setEnabled(state);
ui->treeView->setEnabled(state);
ui->lineEdit->setEnabled(state);
ui->lineEdit->installEventFilter(this);
ui->addButton->setEnabled(state);
ui->usersButton->setEnabled(state);
ui->configButton->setEnabled(state);
// is a file selected?
state &= ui->treeView->currentIndex().isValid();
ui->deleteButton->setEnabled(state);
ui->editButton->setEnabled(state);
ui->pushButton->setEnabled(state);
}
+void MainWindow::restoreWindow() {
+ QByteArray geometry = QtPassSettings::getGeometry(saveGeometry());
+ restoreGeometry(geometry);
+ QByteArray savestate = QtPassSettings::getSavestate(saveState());
+ restoreState(savestate);
+ QPoint position = QtPassSettings::getPos(pos());
+ move(position);
+ QSize newSize = QtPassSettings::getSize(size());
+ resize(newSize);
+ QList<int> splitter = ui->splitter->sizes();
+ int left = QtPassSettings::getSplitterLeft(splitter[0]);
+ int right = QtPassSettings::getSplitterRight(splitter[1]);
+ if (left > 0 || right > 0) {
+ splitter[0] = left;
+ splitter[1] = right;
+ ui->splitter->setSizes(splitter);
+ }
+ if (QtPassSettings::isMaximized(isMaximized())) {
+ showMaximized();
+ }
+}
+
/**
* @brief MainWindow::processError something went wrong
* @param error
*/
void MainWindow::processError(QProcess::ProcessError error) {
QString errorString;
switch (error) {
case QProcess::FailedToStart:
errorString = tr("QProcess::FailedToStart");
break;
case QProcess::Crashed:
errorString = tr("QProcess::Crashed");
break;
case QProcess::Timedout:
errorString = tr("QProcess::Timedout");
break;
case QProcess::ReadError:
errorString = tr("QProcess::ReadError");
break;
case QProcess::WriteError:
errorString = tr("QProcess::WriteError");
break;
case QProcess::UnknownError:
errorString = tr("QProcess::UnknownError");
break;
}
ui->textBrowser->setTextColor(Qt::red);
ui->textBrowser->setText(errorString);
ui->textBrowser->setTextColor(Qt::black);
enableUiElements(true);
}
/**
* @brief MainWindow::on_configButton_clicked run Mainwindow::config
*/
void MainWindow::on_configButton_clicked() { config(); }
/**
* @brief Executes when the string in the search box changes, collapses the
* TreeView
* @param arg1
*/
void MainWindow::on_lineEdit_textChanged(const QString &arg1) {
ui->treeView->expandAll();
ui->statusBar->showMessage(tr("Looking for: %1").arg(arg1), 1000);
QString query = arg1;
query.replace(QRegExp(" "), ".*");
QRegExp regExp(query, Qt::CaseInsensitive);
proxyModel.setFilterRegExp(regExp);
ui->treeView->setRootIndex(proxyModel.mapFromSource(
model.setRootPath(QtPassSettings::getPassStore())));
selectFirstFile();
}
/**
* @brief MainWindow::on_lineEdit_returnPressed get searching
*
* Select the first possible file in the tree
*/
void MainWindow::on_lineEdit_returnPressed() {
dbg() << "on_lineEdit_returnPressed";
selectFirstFile();
on_treeView_clicked(ui->treeView->currentIndex());
}
/**
* @brief MainWindow::selectFirstFile select the first possible file in the
* tree
*/
void MainWindow::selectFirstFile() {
QModelIndex index = proxyModel.mapFromSource(
model.setRootPath(QtPassSettings::getPassStore()));
index = firstFile(index);
ui->treeView->setCurrentIndex(index);
}
/**
* @brief MainWindow::firstFile return location of first possible file
* @param parentIndex
* @return QModelIndex
*/
QModelIndex MainWindow::firstFile(QModelIndex parentIndex) {
QModelIndex index = parentIndex;
int numRows = proxyModel.rowCount(parentIndex);
for (int row = 0; row < numRows; ++row) {
index = proxyModel.index(row, 0, parentIndex);
if (model.fileInfo(proxyModel.mapToSource(index)).isFile())
return index;
if (proxyModel.hasChildren(index))
return firstFile(index);
}
return index;
}
/**
* @brief MainWindow::setPassword open passworddialog and save file (if not
* canceled)
* @param file which pgp file
* @param overwrite update file (not insert)
* @param isNew insert (not update)
*/
void MainWindow::setPassword(QString file, bool isNew) {
- PasswordDialog d(pwdConfig, this);
+ PasswordDialog d(QtPassSettings::getPasswordConfiguration(), this);
connect(QtPassSettings::getPass(), &Pass::finishedShow, &d,
&PasswordDialog::setPass);
// TODO(bezet): add error handling
QtPassSettings::getPass()->Show(file);
d.setFile(file);
d.usePwgen(QtPassSettings::isUsePwgen());
d.setTemplate(QtPassSettings::getPassTemplate(),
QtPassSettings::isUseTemplate());
d.templateAll(QtPassSettings::isTemplateAllFields());
if (!d.exec()) {
d.setPassword(QString());
return;
}
QString newValue = d.getPassword();
if (newValue.isEmpty())
return;
if (newValue.right(1) != "\n")
newValue += "\n";
QtPassSettings::getPass()->Insert(file, newValue, !isNew);
}
/**
* @brief MainWindow::on_addButton_clicked add a new password by showing a
* number of dialogs.
*/
void MainWindow::on_addButton_clicked() {
bool ok;
QString dir =
Util::getDir(ui->treeView->currentIndex(), true, model, proxyModel);
QString file =
QInputDialog::getText(this, tr("New file"),
tr("New password file: \n(Will be placed in %1 )")
.arg(QtPassSettings::getPassStore() +
Util::getDir(ui->treeView->currentIndex(),
true, model, proxyModel)),
QLineEdit::Normal, "", &ok);
if (!ok || file.isEmpty())
return;
file = dir + file;
setPassword(file);
}
/**
* @brief MainWindow::on_deleteButton_clicked remove password, if you are
* sure.
*/
void MainWindow::on_deleteButton_clicked() {
QFileInfo fileOrFolder =
model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex()));
QString file = "";
bool isDir = false;
if (fileOrFolder.isFile()) {
file = getFile(ui->treeView->currentIndex(), true);
} else {
file = Util::getDir(ui->treeView->currentIndex(), true, model, proxyModel);
isDir = true;
}
if (QMessageBox::question(
this, isDir ? tr("Delete folder?") : tr("Delete password?"),
tr("Are you sure you want to delete %1%2?")
.arg(QDir::separator() + file)
.arg(isDir ? tr(" and whole content") : ""),
QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes)
return;
QtPassSettings::getPass()->Remove(file, isDir);
}
/**
* @brief MainWindow::on_editButton_clicked try and edit (selected) password.
*/
void MainWindow::on_editButton_clicked() {
QString file = getFile(ui->treeView->currentIndex(), true);
editPassword(file);
}
/**
* @brief MainWindow::userDialog see MainWindow::on_usersButton_clicked()
* @param dir folder to edit users for.
*/
void MainWindow::userDialog(QString dir) {
if (!dir.isEmpty())
currentDir = dir;
on_usersButton_clicked();
}
/**
* @brief MainWindow::on_usersButton_clicked edit users for the current
* folder,
* gets lists and opens UserDialog.
*/
void MainWindow::on_usersButton_clicked() {
QList<UserInfo> users = QtPassSettings::getPass()->listKeys();
if (users.size() == 0) {
QMessageBox::critical(this, tr("Can not get key list"),
tr("Unable to get list of available gpg keys"));
return;
}
QList<UserInfo> secret_keys = QtPassSettings::getPass()->listKeys("", true);
foreach (const UserInfo &sec, secret_keys) {
for (QList<UserInfo>::iterator it = users.begin(); it != users.end(); ++it)
if (sec.key_id == it->key_id)
it->have_secret = true;
}
QList<UserInfo> selected_users;
QString dir =
currentDir.isEmpty()
? Util::getDir(ui->treeView->currentIndex(), false, model, proxyModel)
: currentDir;
int count = 0;
QString recipients = QtPassSettings::getPass()->getRecipientString(
dir.isEmpty() ? "" : dir, " ", &count);
if (!recipients.isEmpty())
selected_users = QtPassSettings::getPass()->listKeys(recipients);
foreach (const UserInfo &sel, selected_users) {
for (QList<UserInfo>::iterator it = users.begin(); it != users.end(); ++it)
if (sel.key_id == it->key_id)
it->enabled = true;
}
if (count > selected_users.size()) {
// Some keys seem missing from keyring, add them separately
QStringList recipients =
QtPassSettings::getPass()->getRecipientList(dir.isEmpty() ? "" : dir);
foreach (const QString recipient, recipients) {
if (QtPassSettings::getPass()->listKeys(recipient).size() < 1) {
UserInfo i;
i.enabled = true;
i.key_id = recipient;
i.name = " ?? " + tr("Key not found in keyring");
users.append(i);
}
}
}
UsersDialog d(this);
d.setUsers(&users);
if (!d.exec()) {
d.setUsers(NULL);
return;
}
d.setUsers(NULL);
QtPassSettings::getPass()->Init(dir, users);
}
/**
* @brief MainWindow::setApp make sure we know what/who/where we are
* @param app
*/
void MainWindow::setApp(SingleApplication *app) {
#if SINGLE_APP
connect(app, SIGNAL(messageAvailable(QString)), this,
SLOT(messageAvailable(QString)));
#endif
}
/**
* @brief MainWindow::messageAvailable we have some text/message/search to do.
* @param message
*/
void MainWindow::messageAvailable(QString message) {
if (message.isEmpty()) {
focusInput();
} else {
ui->treeView->expandAll();
ui->lineEdit->setText(message);
on_lineEdit_returnPressed();
}
show();
raise();
}
/**
* @brief MainWindow::setText do a search from an external source
* (eg: commandline)
* @param text
*/
void MainWindow::setText(QString text) { ui->lineEdit->setText(text); }
/**
* @brief MainWindow::getSecretKeys get list of secret/private keys
* @return QStringList keys
*/
QStringList MainWindow::getSecretKeys() {
QList<UserInfo> keys = QtPassSettings::getPass()->listKeys("", true);
QStringList names;
if (keys.size() == 0)
return names;
foreach (const UserInfo &sec, keys)
names << sec.name;
return names;
}
/**
* @brief MainWindow::generateKeyPair internal gpg keypair generator . .
* @param batch
* @param keygenWindow
*/
void MainWindow::generateKeyPair(QString batch, QDialog *keygenWindow) {
keygen = keygenWindow;
ui->statusBar->showMessage(tr("Generating GPG key pair"), 60000);
QtPassSettings::getPass()->GenerateGPGKeys(batch);
}
/**
* @brief MainWindow::updateProfileBox update the list of profiles, optionally
* select a more appropriate one to view too
*/
void MainWindow::updateProfileBox() {
// dbg()<< profiles.size();
if (QtPassSettings::getProfiles().isEmpty()) {
ui->profileBox->hide();
} else {
ui->profileBox->show();
if (QtPassSettings::getProfiles().size() < 2)
ui->profileBox->setEnabled(false);
else
ui->profileBox->setEnabled(true);
ui->profileBox->clear();
QHashIterator<QString, QString> i(QtPassSettings::getProfiles());
while (i.hasNext()) {
i.next();
if (!i.key().isEmpty())
ui->profileBox->addItem(i.key());
}
}
int index = ui->profileBox->findText(QtPassSettings::getProfile());
if (index != -1) // -1 for not found
ui->profileBox->setCurrentIndex(index);
}
/**
* @brief MainWindow::on_profileBox_currentIndexChanged make sure we show the
* correct "profile"
* @param name
*/
void MainWindow::on_profileBox_currentIndexChanged(QString name) {
if (startupPhase || name == QtPassSettings::getProfile())
return;
QtPassSettings::setProfile(name);
QtPassSettings::setPassStore(QtPassSettings::getProfiles()[name]);
ui->statusBar->showMessage(tr("Profile changed to %1").arg(name), 2000);
QtPassSettings::getPass()->updateEnv();
ui->treeView->setRootIndex(proxyModel.mapFromSource(
model.setRootPath(QtPassSettings::getPassStore())));
}
/**
* @brief MainWindow::initTrayIcon show a nice tray icon on systems that
* support
* it
*/
void MainWindow::initTrayIcon() {
if (tray != NULL) {
dbg() << "Creating tray icon again?";
return;
}
if (QSystemTrayIcon::isSystemTrayAvailable() == true) {
// Setup tray icon
this->tray = new TrayIcon(this);
if (tray == NULL)
dbg() << "Allocating tray icon failed.";
} else {
dbg() << "No tray icon for this OS possibly also not show options?";
}
}
/**
* @brief MainWindow::destroyTrayIcon remove that pesky tray icon
*/
void MainWindow::destroyTrayIcon() {
if (tray == NULL) {
dbg() << "Destroy non existing tray icon?";
return;
}
delete this->tray;
tray = NULL;
}
/**
* @brief MainWindow::closeEvent hide or quit
* @param event
*/
void MainWindow::closeEvent(QCloseEvent *event) {
if (QtPassSettings::isHideOnClose()) {
this->hide();
event->ignore();
} else {
clearClipboard();
QtPassSettings::setGeometry(saveGeometry());
QtPassSettings::setSavestate(saveState());
QtPassSettings::setMaximized(isMaximized());
if (!isMaximized()) {
QtPassSettings::setPos(pos());
QtPassSettings::setSize(size());
}
QtPassSettings::setSplitterLeft(ui->splitter->sizes()[0]);
QtPassSettings::setSplitterRight(ui->splitter->sizes()[1]);
event->accept();
}
}
/**
* @brief MainWindow::eventFilter filter out some events and focus the
* treeview
* @param obj
* @param event
* @return
*/
bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
if (obj == ui->lineEdit && event->type() == QEvent::KeyPress) {
QKeyEvent *key = static_cast<QKeyEvent *>(event);
if (key->key() == Qt::Key_Down) {
ui->treeView->setFocus();
}
}
return QObject::eventFilter(obj, event);
}
/**
* @brief MainWindow::keyPressEvent did anyone press return, enter or escape?
* @param event
*/
void MainWindow::keyPressEvent(QKeyEvent *event) {
switch (event->key()) {
case Qt::Key_Delete:
on_deleteButton_clicked();
break;
case Qt::Key_Return:
case Qt::Key_Enter:
on_treeView_clicked(ui->treeView->currentIndex());
break;
case Qt::Key_Escape:
ui->lineEdit->clear();
break;
default:
break;
}
}
/**
* @brief MainWindow::showContextMenu show us the (file or folder) context
* menu
* @param pos
*/
void MainWindow::showContextMenu(const QPoint &pos) {
QModelIndex index = ui->treeView->indexAt(pos);
bool selected = true;
if (!index.isValid()) {
ui->treeView->clearSelection();
ui->deleteButton->setEnabled(false);
ui->editButton->setEnabled(false);
currentDir = "";
selected = false;
}
ui->treeView->setCurrentIndex(index);
QPoint globalPos = ui->treeView->viewport()->mapToGlobal(pos);
QFileInfo fileOrFolder =
model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex()));
QMenu contextMenu;
if (!selected || fileOrFolder.isDir()) {
QAction *addFolder = contextMenu.addAction(tr("Add folder"));
QAction *addPassword = contextMenu.addAction(tr("Add password"));
QAction *users = contextMenu.addAction(tr("Users"));
connect(addFolder, SIGNAL(triggered()), this, SLOT(addFolder()));
connect(addPassword, SIGNAL(triggered()), this,
SLOT(on_addButton_clicked()));
connect(users, SIGNAL(triggered()), this, SLOT(on_usersButton_clicked()));
} else if (fileOrFolder.isFile()) {
QAction *edit = contextMenu.addAction(tr("Edit"));
connect(edit, SIGNAL(triggered()), this, SLOT(on_editButton_clicked()));
}
if (selected) {
// if (useClipboard != CLIPBOARD_NEVER) {
// contextMenu.addSeparator();
// QAction* copyItem = contextMenu.addAction(tr("Copy Password"));
// if (getClippedPassword().length() == 0) copyItem->setEnabled(false);
// connect(copyItem, SIGNAL(triggered()), this,
// SLOT(copyPasswordToClipboard()));
// }
contextMenu.addSeparator();
QAction *deleteItem = contextMenu.addAction(tr("Delete"));
connect(deleteItem, SIGNAL(triggered()), this,
SLOT(on_deleteButton_clicked()));
}
contextMenu.exec(globalPos);
}
/**
* @brief MainWindow::showBrowserContextMenu show us the context menu in
* password window
* @param pos
*/
void MainWindow::showBrowserContextMenu(const QPoint &pos) {
QMenu *contextMenu = ui->textBrowser->createStandardContextMenu(pos);
QPoint globalPos = ui->textBrowser->viewport()->mapToGlobal(pos);
contextMenu->exec(globalPos);
}
/**
* @brief MainWindow::addFolder add a new folder to store passwords in
*/
void MainWindow::addFolder() {
bool ok;
QString dir =
Util::getDir(ui->treeView->currentIndex(), false, model, proxyModel);
QString newdir =
QInputDialog::getText(this, tr("New file"),
tr("New Folder: \n(Will be placed in %1 )")
.arg(QtPassSettings::getPassStore() +
Util::getDir(ui->treeView->currentIndex(),
true, model, proxyModel)),
QLineEdit::Normal, "", &ok);
if (!ok || newdir.isEmpty())
return;
newdir.prepend(dir);
// dbg()<< newdir;
QDir().mkdir(newdir);
}
/**
* @brief MainWindow::editPassword read password and open edit window via
* MainWindow::on_editButton_clicked()
*/
void MainWindow::editPassword(const QString &file) {
if (!file.isEmpty()) {
if (QtPassSettings::isUseGit() && QtPassSettings::isAutoPull())
on_updateButton_clicked(true);
setPassword(file, false);
}
}
/**
* @brief MainWindow::clearTemplateWidgets empty the template widget fields in
* the UI
*/
void MainWindow::clearTemplateWidgets() {
while (ui->gridLayout->count() > 0) {
QLayoutItem *item = ui->gridLayout->takeAt(0);
delete item->widget();
delete item;
}
ui->verticalLayoutPassword->setSpacing(0);
}
/**
* @brief MainWindow::copyTextToClipboard copies text to your clipboard
* @param text
*/
void MainWindow::copyTextToClipboard(const QString &text) {
QClipboard *clip = QApplication::clipboard();
if (!QtPassSettings::isUseSelection()) {
clip->setText(text, QClipboard::Clipboard);
} else {
clip->setText(text, QClipboard::Selection);
}
clippedText = text;
ui->statusBar->showMessage(tr("Copied to clipboard"), 2000);
if (QtPassSettings::isUseAutoclear()) {
clearClipboardTimer.start();
}
}
void MainWindow::copyPasswordFromTreeview() {
QFileInfo fileOrFolder =
model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex()));
if (fileOrFolder.isFile()) {
QString file = getFile(ui->treeView->currentIndex(), true);
connect(QtPassSettings::getPass(), &Pass::finishedShow, this,
&MainWindow::passwordFromFileToClipboard);
QtPassSettings::getPass()->Show(file);
}
}
void MainWindow::passwordFromFileToClipboard(const QString &text){
QStringList tokens = text.split('\n');
copyTextToClipboard(tokens[0]);
}
/**
* @brief MainWindow::addToGridLayout add a field to the template grid
* @param position
* @param field
* @param value
*/
void MainWindow::addToGridLayout(int position, const QString &field,
const QString &value) {
QString trimmedField = field.trimmed();
QString trimmedValue = value.trimmed();
// Combine the Copy button and the line edit in one widget
QFrame *frame = new QFrame();
QLayout *ly = new QHBoxLayout();
ly->setContentsMargins(5, 2, 2, 2);
frame->setLayout(ly);
if (QtPassSettings::getClipBoardType() != Enums::CLIPBOARD_NEVER) {
QPushButtonWithClipboard *fieldLabel =
new QPushButtonWithClipboard(trimmedValue, this);
connect(fieldLabel, SIGNAL(clicked(QString)), this,
SLOT(copyTextToClipboard(QString)));
fieldLabel->setStyleSheet("border-style: none ; background: transparent;");
// fieldLabel->setContentsMargins(0,5,5,0);
frame->layout()->addWidget(fieldLabel);
}
// set the echo mode to password, if the field is "password"
if (QtPassSettings::isHidePassword() && trimmedField == tr("Password")) {
QLineEdit *line = new QLineEdit();
line->setObjectName(trimmedField);
line->setText(trimmedValue);
line->setReadOnly(true);
line->setStyleSheet("border-style: none ; background: transparent;");
line->setContentsMargins(0, 0, 0, 0);
line->setEchoMode(QLineEdit::Password);
frame->layout()->addWidget(line);
} else {
QTextBrowser *line = new QTextBrowser();
line->setOpenExternalLinks(true);
line->setOpenLinks(true);
line->setMaximumHeight(26);
line->setMinimumHeight(26);
line->setSizePolicy(
QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
line->setObjectName(trimmedField);
trimmedValue.replace(
QRegExp("((?:https?|ftp|ssh|sftp|ftps|webdav|webdavs)://\\S+)"),
"<a href=\"\\1\">\\1</a>");
line->setText(trimmedValue);
line->setReadOnly(true);
line->setStyleSheet("border-style: none ; background: transparent;");
line->setContentsMargins(0, 0, 0, 0);
frame->layout()->addWidget(line);
}
frame->setStyleSheet(
".QFrame{border: 1px solid lightgrey; border-radius: 5px;}");
// set into the layout
ui->gridLayout->addWidget(new QLabel(trimmedField), position, 0);
ui->gridLayout->addWidget(frame, position, 1);
}
/**
* @brief Displays message in status bar
*
* @param msg text to be displayed
* @param timeout time for which msg shall be visible
*/
void MainWindow::showStatusMessage(QString msg, int timeout) {
ui->statusBar->showMessage(msg, timeout);
}
/**
* @brief MainWindow::startReencryptPath disable ui elements and treeview
*/
void MainWindow::startReencryptPath() {
enableUiElements(false);
ui->treeView->setDisabled(true);
}
/**
* @brief MainWindow::endReencryptPath re-enable ui elements
*/
void MainWindow::endReencryptPath() { enableUiElements(true); }
/**
* @brief MainWindow::critical critical message popup wrapper.
* @param title
* @param msg
*/
void MainWindow::critical(QString title, QString msg) {
QMessageBox::critical(this, title, msg);
}
void MainWindow::updateGitButtonVisibility() {
if (!QtPassSettings::isUseGit() ||
(QtPassSettings::getGitExecutable().isEmpty() &&
QtPassSettings::getPassExecutable().isEmpty())) {
hideGitButtons();
} else {
showGitButtons();
}
}
void MainWindow::hideGitButtons() {
ui->pushButton->hide();
ui->updateButton->hide();
ui->horizontalSpacer->changeSize(0, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
}
void MainWindow::showGitButtons() {
ui->pushButton->show();
ui->updateButton->show();
ui->horizontalSpacer->changeSize(24, 24, QSizePolicy::Minimum, QSizePolicy::Minimum);
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index c4ced87..03505b3 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -1,157 +1,149 @@
#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_
-#include "datahelpers.h"
+#include "passwordconfiguration.h"
+#include "userinfo.h"
#include "enums.h"
#include "imitatepass.h"
#include "pass.h"
#include "realpass.h"
#include "storemodel.h"
#include "trayicon.h"
#include <QFileSystemModel>
#include <QMainWindow>
#include <QProcess>
#include <QQueue>
#include <QTimer>
#include <QTreeView>
#if SINGLE_APP
#include "singleapplication.h"
#else
#define SingleApplication QApplication
#endif
#ifdef __APPLE__
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
// http://doc.qt.io/qt-5/qkeysequence.html#qt_set_sequence_auto_mnemonic
void qt_set_sequence_auto_mnemonic(bool b);
#endif
#endif
namespace Ui {
class MainWindow;
}
/*!
\class MainWindow
\brief The MainWindow class does way too much, not only is it a switchboard,
configuration handler and more, it's also the process-manager.
This class could really do with an overhaul.
*/
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
bool checkConfig();
void setApp(SingleApplication *app);
void setText(QString);
QStringList getSecretKeys();
void generateKeyPair(QString, QDialog *);
void userDialog(QString = "");
void config();
void executePassGitInit();
- /**
- * @brief MainWindow::pwdConfig instance of passwordConfiguration.
- * @sa MainWindow::passwordConfiguration
- */
- passwordConfiguration pwdConfig;
-
protected:
void closeEvent(QCloseEvent *event);
void keyPressEvent(QKeyEvent *event);
void changeEvent(QEvent *event);
bool eventFilter(QObject *obj, QEvent *event);
public slots:
void deselect();
private slots:
void on_updateButton_clicked(bool block = false);
void on_pushButton_clicked();
void on_treeView_clicked(const QModelIndex &index);
void on_treeView_doubleClicked(const QModelIndex &index);
void on_configButton_clicked();
void processFinished(const QString &, const QString &);
void processError(QProcess::ProcessError);
void clearClipboard();
void clearPanel(bool notify = true);
void on_lineEdit_textChanged(const QString &arg1);
void on_lineEdit_returnPressed();
void on_addButton_clicked();
void on_deleteButton_clicked();
void on_editButton_clicked();
void on_usersButton_clicked();
void messageAvailable(QString message);
void on_profileBox_currentIndexChanged(QString);
void showContextMenu(const QPoint &pos);
void showBrowserContextMenu(const QPoint &pos);
void addFolder();
void editPassword(const QString &);
void focusInput();
void copyTextToClipboard(const QString &text);
void copyPasswordFromTreeview();
void passwordFromFileToClipboard(const QString &text);
void executeWrapperStarted();
void showStatusMessage(QString msg, int timeout);
void startReencryptPath();
void endReencryptPath();
void critical(QString, QString);
void passShowHandler(const QString &);
void passStoreChanged(const QString &, const QString &);
void doGitPush();
void processErrorExit(int exitCode, const QString &);
void finishedInsert(const QString &, const QString &);
void keyGenerationComplete(const QString &p_output, const QString &p_errout);
private:
- QAction *actionAddPassword;
- QAction *actionAddFolder;
-
- QApplication *QtPass;
QScopedPointer<Ui::MainWindow> ui;
QFileSystemModel model;
StoreModel proxyModel;
QScopedPointer<QItemSelectionModel> selectionModel;
- QTreeView *treeView;
QProcess fusedav;
QString clippedText;
QTimer clearPanelTimer;
QTimer clearClipboardTimer;
bool freshStart;
QDialog *keygen;
QString currentDir;
bool startupPhase;
TrayIcon *tray;
+ void initAddButton();
void updateText();
void enableUiElements(bool state);
+ void restoreWindow();
void selectFirstFile();
QModelIndex firstFile(QModelIndex parentIndex);
QString getFile(const QModelIndex &, bool);
void setPassword(QString, bool isNew = true);
void mountWebDav();
void updateProfileBox();
void initTrayIcon();
void destroyTrayIcon();
void clearTemplateWidgets();
void reencryptPath(QString dir);
void addToGridLayout(int position, const QString &field,
const QString &value);
void DisplayInTextBrowser(QString toShow, QString prefix = QString(),
QString postfix = QString());
void connectPassSignalHandlers(Pass *pass);
void updateGitButtonVisibility();
void hideGitButtons();
void showGitButtons();
};
#endif // MAINWINDOW_H_
diff --git a/src/pass.h b/src/pass.h
index 1292e94..be6310d 100644
--- a/src/pass.h
+++ b/src/pass.h
@@ -1,101 +1,101 @@
#ifndef PASS_H
#define PASS_H
-#include "datahelpers.h"
+#include "userinfo.h"
#include "enums.h"
#include "executor.h"
#include <QDebug>
#include <QDir>
#include <QList>
#include <QProcess>
#include <QQueue>
#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
#include <QRandomGenerator>
#else
#include <fcntl.h>
#include <unistd.h>
#endif
#include <QString>
#include <QTextCodec>
#include <cassert>
#include <map>
/*!
\class Pass
\brief Acts as an abstraction for pass or pass imitation
*/
class Pass : public QObject {
Q_OBJECT
bool wrapperRunning;
QStringList env;
protected:
Executor exec;
typedef Enums::PROCESS PROCESS;
public:
Pass();
void init();
virtual ~Pass() {}
virtual void GitInit() = 0;
virtual void GitPull() = 0;
virtual void GitPull_b() = 0;
virtual void GitPush() = 0;
virtual void Show(QString file) = 0;
virtual void Insert(QString file, QString value, bool force) = 0;
virtual void Remove(QString file, bool isDir) = 0;
virtual void Move(const QString srcDir, const QString dest,
const bool force = false) = 0;
virtual void Copy(const QString srcDir, const QString dest,
const bool force = false) = 0;
virtual void Init(QString path, const QList<UserInfo> &users) = 0;
virtual QString Generate_b(unsigned int length, const QString &charset);
void GenerateGPGKeys(QString batch);
QList<UserInfo> listKeys(QString keystring = "", bool secret = false);
void updateEnv();
static QStringList getRecipientList(QString for_file);
// TODO(bezet): getRecipientString is useless, refactor
static QString getRecipientString(QString for_file, QString separator = " ",
int *count = NULL);
protected:
void executeWrapper(PROCESS id, const QString &app, const QStringList &args,
bool readStdout = true, bool readStderr = true);
QString generateRandomPassword(const QString &charset, unsigned int length);
quint32 boundedRandom(quint32 bound);
virtual void executeWrapper(PROCESS id, const QString &app,
const QStringList &args, QString input,
bool readStdout = true, bool readStderr = true);
protected slots:
virtual void finished(int id, int exitCode, const QString &out,
const QString &err);
signals:
void error(QProcess::ProcessError);
void startingExecuteWrapper();
void statusMsg(QString, int);
void critical(QString, QString);
void processErrorExit(int exitCode, const QString &err);
void finishedAny(const QString &, const QString &);
void finishedGitInit(const QString &, const QString &);
void finishedGitPull(const QString &, const QString &);
void finishedGitPush(const QString &, const QString &);
void finishedShow(const QString &);
void finishedInsert(const QString &, const QString &);
void finishedRemove(const QString &, const QString &);
void finishedInit(const QString &, const QString &);
void finishedMove(const QString &, const QString &);
void finishedCopy(const QString &, const QString &);
void finishedGenerate(const QString &, const QString &);
void finishedGenerateGPGKeys(const QString &, const QString &);
};
#endif // PASS_H
diff --git a/src/passwordconfiguration.h b/src/passwordconfiguration.h
new file mode 100644
index 0000000..c852c34
--- /dev/null
+++ b/src/passwordconfiguration.h
@@ -0,0 +1,41 @@
+#ifndef PASSWORDCONFIGURATION_H
+#define PASSWORDCONFIGURATION_H
+
+#include <QString>
+
+/*!
+ \struct PasswordConfiguration
+ \brief Holds the Password configuration settings
+ */
+struct PasswordConfiguration {
+ /**
+ * \brief The selected character set.
+ */
+ enum characterSet {
+ ALLCHARS = 0,
+ ALPHABETICAL,
+ ALPHANUMERIC,
+ CUSTOM,
+ CHARSETS_COUNT // have to be last, for easier initialization of arrays
+ } selected;
+ /**
+ * \brief Length of the password.
+ */
+ int length;
+ /**
+ * \brief The different character sets.
+ */
+ QString Characters[CHARSETS_COUNT];
+ PasswordConfiguration() : selected(ALLCHARS), length(16) {
+ Characters[ALLCHARS] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&"
+ "*()_-+={}[]|:;<>,.?"; /*AllChars*/
+ Characters[ALPHABETICAL] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu"
+ "vwxyz"; /*Only Alphabetical*/
+ Characters[ALPHANUMERIC] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu"
+ "vwxyz1234567890"; /*Alphabetical and Numerical*/
+ Characters[CUSTOM] = Characters[ALLCHARS]; // this may be redefined by user
+ }
+};
+
+#endif // PASSWORDCONFIGURATION_H
diff --git a/src/passworddialog.cpp b/src/passworddialog.cpp
index 9bf5e02..bcf1640 100644
--- a/src/passworddialog.cpp
+++ b/src/passworddialog.cpp
@@ -1,191 +1,175 @@
#include "passworddialog.h"
+#include "passwordconfiguration.h"
#include "debughelper.h"
#include "qtpasssettings.h"
+#include "filecontent.h"
#include "ui_passworddialog.h"
#include <QDebug>
#include <QLabel>
#include <QLineEdit>
/**
* @brief PasswordDialog::PasswordDialog basic constructor.
* @param passConfig configuration constant
* @param parent
*/
-PasswordDialog::PasswordDialog(const passwordConfiguration &passConfig,
+PasswordDialog::PasswordDialog(const PasswordConfiguration &passConfig,
QWidget *parent)
: QDialog(parent), ui(new Ui::PasswordDialog), m_passConfig(passConfig) {
templating = false;
allFields = false;
ui->setupUi(this);
setLength(m_passConfig.length);
setPasswordCharTemplate(m_passConfig.selected);
}
/**
* @brief PasswordDialog::~PasswordDialog basic destructor.
*/
PasswordDialog::~PasswordDialog() { delete ui; }
/**
* @brief PasswordDialog::on_checkBoxShow_stateChanged hide or show passwords.
* @param arg1
*/
void PasswordDialog::on_checkBoxShow_stateChanged(int arg1) {
if (arg1)
ui->lineEditPassword->setEchoMode(QLineEdit::Normal);
else
ui->lineEditPassword->setEchoMode(QLineEdit::Password);
}
/**
* @brief PasswordDialog::on_createPasswordButton_clicked generate a random
* passwords.
* @todo refactor when process is untangled from MainWindow class.
*/
void PasswordDialog::on_createPasswordButton_clicked() {
ui->widget->setEnabled(false);
QString newPass = QtPassSettings::getPass()->Generate_b(
static_cast<unsigned int>(ui->spinBox_pwdLength->value()),
- m_passConfig.Characters[(passwordConfiguration::characterSet)
- ui->passwordTemplateSwitch->currentIndex()]);
+ m_passConfig.Characters[static_cast<PasswordConfiguration::characterSet>(
+ ui->passwordTemplateSwitch->currentIndex())]);
if (newPass.length() > 0)
ui->lineEditPassword->setText(newPass);
ui->widget->setEnabled(true);
}
/**
* @brief PasswordDialog::setPassword populate the (templated) fields.
* @param password
*/
void PasswordDialog::setPassword(QString password) {
- QStringList tokens = password.split("\n");
- ui->lineEditPassword->setText(tokens[0]);
- tokens.pop_front();
- if (templating) {
- QWidget *previous = ui->checkBoxShow;
- for (int i = 0; i < ui->formLayout->rowCount(); ++i) {
- QLayoutItem *item = ui->formLayout->itemAt(i, QFormLayout::FieldRole);
- if (item == NULL)
- continue;
- QWidget *widget = item->widget();
- for (int j = 0; j < tokens.length(); ++j) {
- QString token = tokens.at(j);
- if (token.startsWith(widget->objectName() + ':')) {
- tokens.removeAt(j);
- QString value = token.remove(0, widget->objectName().length() + 1);
- reinterpret_cast<QLineEdit *>(widget)->setText(value.trimmed());
- }
- }
- previous = widget;
- }
- if (allFields) {
- for (int j = 0; j < tokens.length(); ++j) {
- QString token = tokens.at(j);
- if (token.contains(':')) {
- int colon = token.indexOf(':');
- QString field = token.left(colon);
- QString value = token.right(token.length() - colon - 1);
- if (!passTemplate.contains(field) && value.startsWith("//"))
- continue; // colon is probably from a url
- QLineEdit *line = new QLineEdit();
- line->setObjectName(field.trimmed());
- line->setText(value.trimmed());
- ui->formLayout->addRow(new QLabel(field), line);
- setTabOrder(previous, line);
- previous = line;
- tokens.removeAt(j);
- --j; // tokens.length() also got shortened by the remove..
- }
- }
- }
+ FileContent fileContent = FileContent::parse(password, templating ? fields : QStringList(), allFields);
+ ui->lineEditPassword->setText(fileContent.getPassword());
+
+ QWidget *previous = ui->checkBoxShow;
+ // first set templated values
+ NamedValues namedValues = fileContent.getNamedValues();
+ for (QLineEdit *line : templateLines) {
+ line->setText(namedValues.takeValue(line->objectName()));
+ previous = line;
+ }
+ // show remaining values (if there are)
+ otherLines.clear();
+ for (const NamedValue &nv : namedValues) {
+ QLineEdit *line = new QLineEdit();
+ line->setObjectName(nv.name);
+ line->setText(nv.value);
+ ui->formLayout->addRow(new QLabel(nv.name), line);
+ setTabOrder(previous, line);
+ otherLines.append(line);
+ previous = line;
}
- ui->plainTextEdit->insertPlainText(tokens.join("\n"));
+
+ ui->plainTextEdit->insertPlainText(fileContent.getRemainingData());
}
/**
* @brief PasswordDialog::getPassword join the (templated) fields to a QString
* for writing back.
* @return collappsed password.
*/
QString PasswordDialog::getPassword() {
QString passFile = ui->lineEditPassword->text() + "\n";
- for (int i = 0; i < ui->formLayout->rowCount(); ++i) {
- QLayoutItem *item = ui->formLayout->itemAt(i, QFormLayout::FieldRole);
- if (item == NULL)
- continue;
- QWidget *widget = item->widget();
- QString text = reinterpret_cast<QLineEdit *>(widget)->text();
+ QList<QLineEdit *> allLines(templateLines);
+ allLines.append(otherLines);
+ for (QLineEdit *line : allLines) {
+ QString text = line->text();
if (text.isEmpty())
continue;
- passFile += widget->objectName() + ": " + text + "\n";
+ passFile += line->objectName() + ": " + text + "\n";
}
passFile += ui->plainTextEdit->toPlainText();
return passFile;
}
/**
* @brief PasswordDialog::setTemplate set the template and create the fields.
* @param rawFields
*/
void PasswordDialog::setTemplate(QString rawFields, bool useTemplate) {
fields = rawFields.split('\n');
templating = useTemplate;
+ templateLines.clear();
+
if (templating) {
QWidget *previous = ui->checkBoxShow;
foreach (QString field, fields) {
if (field.isEmpty())
continue;
QLineEdit *line = new QLineEdit();
line->setObjectName(field);
ui->formLayout->addRow(new QLabel(field), line);
setTabOrder(previous, line);
+ templateLines.append(line);
previous = line;
}
}
}
/**
* @brief PasswordDialog::setFile show which (password) file we are editing.
* @param file
*/
void PasswordDialog::setFile(QString file) {
this->setWindowTitle(this->windowTitle() + " " + file);
}
/**
* @brief PasswordDialog::templateAll basic setter for use in
* PasswordDialog::setPassword templating all tokenisable lines.
* @param templateAll
*/
void PasswordDialog::templateAll(bool templateAll) { allFields = templateAll; }
/**
* @brief PasswordDialog::setLength
* PasswordDialog::setLength password length.
* @param l
*/
void PasswordDialog::setLength(int l) { ui->spinBox_pwdLength->setValue(l); }
/**
* @brief PasswordDialog::setPasswordCharTemplate
* PasswordDialog::setPasswordCharTemplate chose the template style.
* @param t
*/
void PasswordDialog::setPasswordCharTemplate(int t) {
ui->passwordTemplateSwitch->setCurrentIndex(t);
}
/**
* @brief PasswordDialog::usePwgen
* PasswordDialog::usePwgen don't use own password generator.
* @param usePwgen
*/
void PasswordDialog::usePwgen(bool usePwgen) {
ui->passwordTemplateSwitch->setDisabled(usePwgen);
ui->label_characterset->setDisabled(usePwgen);
}
void PasswordDialog::setPass(const QString &output) {
setPassword(output);
// TODO(bezet): enable ui
}
diff --git a/src/passworddialog.h b/src/passworddialog.h
index efc3262..01c8a39 100644
--- a/src/passworddialog.h
+++ b/src/passworddialog.h
@@ -1,71 +1,74 @@
#ifndef PASSWORDDIALOG_H_
#define PASSWORDDIALOG_H_
-#include "datahelpers.h"
#include "pass.h"
#include <QDialog>
#include <QWidget>
namespace Ui {
class PasswordDialog;
}
+struct PasswordConfiguration;
+class QLineEdit;
+
/*!
\class PasswordDialog
\brief PasswordDialog Handles the inserting and editing of passwords.
Includes templated views.
*/
class PasswordDialog : public QDialog {
Q_OBJECT
public:
- explicit PasswordDialog(const passwordConfiguration &passConfig,
+ explicit PasswordDialog(const PasswordConfiguration &passConfig,
QWidget *parent = 0);
~PasswordDialog();
/*! Sets content in the password field in the interface.
\param password the password as a QString
\sa getPassword
*/
void setPassword(QString password);
/*! Returns the password as set in the password field in the interface.
\return password as a QString
\sa setPassword
*/
QString getPassword();
/*! Sets content in the template for the interface.
\param rawFields is the template as a QString
\param useTemplate whether the template is used
*/
void setTemplate(QString rawFields, bool useTemplate);
/*! Sets the file (name) in the interface.
\param file name as a QString
*/
void setFile(QString);
void templateAll(bool templateAll);
void setLength(int l);
void setPasswordCharTemplate(int t);
void usePwgen(bool usePwgen);
public slots:
void setPass(const QString &output);
private slots:
void on_checkBoxShow_stateChanged(int arg1);
void on_createPasswordButton_clicked();
private:
Ui::PasswordDialog *ui;
- const passwordConfiguration &m_passConfig;
- QString passTemplate;
+ const PasswordConfiguration &m_passConfig;
QStringList fields;
bool templating;
bool allFields;
+ QList<QLineEdit *> templateLines;
+ QList<QLineEdit *> otherLines;
};
#endif // PASSWORDDIALOG_H_
diff --git a/src/qtpasssettings.cpp b/src/qtpasssettings.cpp
index a38e403..1507f22 100644
--- a/src/qtpasssettings.cpp
+++ b/src/qtpasssettings.cpp
@@ -1,633 +1,657 @@
#include "qtpasssettings.h"
#include "pass.h"
#include "settingsconstants.h"
+#include "util.h"
QtPassSettings::QtPassSettings() {}
bool QtPassSettings::initialized = false;
QScopedPointer<QSettings> QtPassSettings::settings;
QHash<QString, QString> QtPassSettings::stringSettings;
QHash<QString, QByteArray> QtPassSettings::byteArraySettings;
QHash<QString, QPoint> QtPassSettings::pointSettings;
QHash<QString, QSize> QtPassSettings::sizeSettings;
QHash<QString, int> QtPassSettings::intSettings;
QHash<QString, bool> QtPassSettings::boolSettings;
Pass *QtPassSettings::pass;
RealPass QtPassSettings::realPass;
ImitatePass QtPassSettings::imitatePass;
QString QtPassSettings::getVersion(const QString &defaultValue) {
return getStringValue(SettingsConstants::version, defaultValue);
}
void QtPassSettings::setVersion(const QString &version) {
setStringValue(SettingsConstants::version, version);
}
QByteArray QtPassSettings::getGeometry(const QByteArray &defaultValue) {
beginMainwindowGroup();
QByteArray returnValue =
getByteArrayValue(SettingsConstants::geometry, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setGeometry(const QByteArray &geometry) {
beginMainwindowGroup();
setByteArrayValue(SettingsConstants::geometry, geometry);
endSettingsGroup();
}
QByteArray QtPassSettings::getSavestate(const QByteArray &defaultValue) {
beginMainwindowGroup();
QByteArray returnValue =
getByteArrayValue(SettingsConstants::savestate, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setSavestate(const QByteArray &saveState) {
beginMainwindowGroup();
setByteArrayValue(SettingsConstants::savestate, saveState);
endSettingsGroup();
}
QPoint QtPassSettings::getPos(const QPoint &defaultValue) {
beginMainwindowGroup();
QPoint returnValue = getPointValue(SettingsConstants::pos, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setPos(const QPoint &pos) {
beginMainwindowGroup();
setPointValue(SettingsConstants::pos, pos);
endSettingsGroup();
}
QSize QtPassSettings::getSize(const QSize &defaultValue) {
beginMainwindowGroup();
QSize returnValue = getSizeValue(SettingsConstants::size, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setSize(const QSize &size) {
beginMainwindowGroup();
setSizeValue(SettingsConstants::size, size);
endSettingsGroup();
}
int QtPassSettings::getSplitterLeft(const int &defaultValue) {
beginMainwindowGroup();
int returnValue = getIntValue(SettingsConstants::splitterLeft, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setSplitterLeft(const int &splitterLeft) {
beginMainwindowGroup();
setIntValue(SettingsConstants::splitterLeft, splitterLeft);
endSettingsGroup();
}
int QtPassSettings::getSplitterRight(const int &defaultValue) {
beginMainwindowGroup();
int returnValue = getIntValue(SettingsConstants::splitterRight, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setSplitterRight(const int &splitterRight) {
beginMainwindowGroup();
setIntValue(SettingsConstants::splitterRight, splitterRight);
endSettingsGroup();
}
bool QtPassSettings::isMaximized(const bool &defaultValue) {
beginMainwindowGroup();
bool returnValue = getBoolValue(SettingsConstants::maximized, defaultValue);
endSettingsGroup();
return returnValue;
}
void QtPassSettings::setMaximized(const bool &maximized) {
beginMainwindowGroup();
setBoolValue(SettingsConstants::maximized, maximized);
endSettingsGroup();
}
bool QtPassSettings::isUsePass(const bool &defaultValue) {
return getBoolValue(SettingsConstants::usePass, defaultValue);
}
void QtPassSettings::setUsePass(const bool &usePass) {
if (usePass) {
QtPassSettings::pass = &QtPassSettings::realPass;
} else {
QtPassSettings::pass = &QtPassSettings::imitatePass;
}
setBoolValue(SettingsConstants::usePass, usePass);
}
Enums::clipBoardType
QtPassSettings::getClipBoardType(const Enums::clipBoardType &defaultvalue) {
return static_cast<Enums::clipBoardType>(getIntValue(
SettingsConstants::clipBoardType, static_cast<int>(defaultvalue)));
}
void QtPassSettings::setClipBoardType(
const Enums::clipBoardType &clipBoardType) {
setIntValue(SettingsConstants::clipBoardType,
static_cast<int>(clipBoardType));
}
bool QtPassSettings::isUseSelection(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useSelection, defaultValue);
}
void QtPassSettings::setUseSelection(const bool &useSelection) {
setBoolValue(SettingsConstants::useSelection, useSelection);
}
bool QtPassSettings::isUseAutoclear(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useAutoclear, defaultValue);
}
void QtPassSettings::setUseAutoclear(const bool &useAutoclear) {
setBoolValue(SettingsConstants::useAutoclear, useAutoclear);
}
int QtPassSettings::getAutoclearSeconds(const int &defaultValue) {
return getIntValue(SettingsConstants::autoclearSeconds, defaultValue);
}
void QtPassSettings::setAutoclearSeconds(const int &autoClearSeconds) {
setIntValue(SettingsConstants::autoclearSeconds, autoClearSeconds);
}
bool QtPassSettings::isUseAutoclearPanel(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useAutoclearPanel, defaultValue);
}
void QtPassSettings::setUseAutoclearPanel(const bool &useAutoclearPanel) {
setBoolValue(SettingsConstants::useAutoclearPanel, useAutoclearPanel);
}
int QtPassSettings::getAutoclearPanelSeconds(const int &defaultValue) {
return getIntValue(SettingsConstants::autoclearPanelSeconds, defaultValue);
}
void QtPassSettings::setAutoclearPanelSeconds(
const int &autoClearPanelSeconds) {
setIntValue(SettingsConstants::autoclearPanelSeconds, autoClearPanelSeconds);
}
bool QtPassSettings::isHidePassword(const bool &defaultValue) {
return getBoolValue(SettingsConstants::hidePassword, defaultValue);
}
void QtPassSettings::setHidePassword(const bool &hidePassword) {
setBoolValue(SettingsConstants::hidePassword, hidePassword);
}
bool QtPassSettings::isHideContent(const bool &defaultValue) {
return getBoolValue(SettingsConstants::hideContent, defaultValue);
}
void QtPassSettings::setHideContent(const bool &hideContent) {
setBoolValue(SettingsConstants::hideContent, hideContent);
}
bool QtPassSettings::isAddGPGId(const bool &defaultValue) {
return getBoolValue(SettingsConstants::addGPGId, defaultValue);
}
void QtPassSettings::setAddGPGId(const bool &addGPGId) {
setBoolValue(SettingsConstants::addGPGId, addGPGId);
}
QString QtPassSettings::getPassStore(const QString &defaultValue) {
QString returnValue =
getStringValue(SettingsConstants::passStore, defaultValue);
// ensure directory exists if never used pass or misconfigured.
// otherwise process->setWorkingDirectory(passStore); will fail on execution.
if (!QDir(returnValue).exists()) {
QDir().mkdir(returnValue);
}
// ensure path ends in /
if (!returnValue.endsWith("/")) {
returnValue += "/";
}
return returnValue;
}
void QtPassSettings::setPassStore(const QString &passStore) {
setStringValue(SettingsConstants::passStore, passStore);
}
+void QtPassSettings::initExecutables() {
+ QString passExecutable =
+ QtPassSettings::getPassExecutable(Util::findBinaryInPath("pass"));
+ QtPassSettings::setPassExecutable(passExecutable);
+
+ QString gitExecutable =
+ QtPassSettings::getGitExecutable(Util::findBinaryInPath("git"));
+ QtPassSettings::setGitExecutable(gitExecutable);
+
+ QString gpgExecutable =
+ QtPassSettings::getGpgExecutable(Util::findBinaryInPath("gpg2"));
+ QtPassSettings::setGpgExecutable(gpgExecutable);
+
+ QString pwgenExecutable =
+ QtPassSettings::getPwgenExecutable(Util::findBinaryInPath("pwgen"));
+ QtPassSettings::setPwgenExecutable(pwgenExecutable);
+}
+
QString QtPassSettings::getPassExecutable(const QString &defaultValue) {
return getStringValue(SettingsConstants::passExecutable, defaultValue);
}
void QtPassSettings::setPassExecutable(const QString &passExecutable) {
setStringValue(SettingsConstants::passExecutable, passExecutable);
}
QString QtPassSettings::getGitExecutable(const QString &defaultValue) {
return getStringValue(SettingsConstants::gitExecutable, defaultValue);
}
void QtPassSettings::setGitExecutable(const QString &gitExecutable) {
setStringValue(SettingsConstants::gitExecutable, gitExecutable);
}
QString QtPassSettings::getGpgExecutable(const QString &defaultValue) {
return getStringValue(SettingsConstants::gpgExecutable, defaultValue);
}
void QtPassSettings::setGpgExecutable(const QString &gpgExecutable) {
setStringValue(SettingsConstants::gpgExecutable, gpgExecutable);
}
QString QtPassSettings::getPwgenExecutable(const QString &defaultValue) {
return getStringValue(SettingsConstants::pwgenExecutable, defaultValue);
}
void QtPassSettings::setPwgenExecutable(const QString &pwgenExecutable) {
setStringValue(SettingsConstants::pwgenExecutable, pwgenExecutable);
}
QString QtPassSettings::getGpgHome(const QString &defaultValue) {
return getStringValue(SettingsConstants::gpgHome, defaultValue);
}
bool QtPassSettings::isUseWebDav(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useWebDav, defaultValue);
}
void QtPassSettings::setUseWebDav(const bool &useWebDav) {
setBoolValue(SettingsConstants::useWebDav, useWebDav);
}
QString QtPassSettings::getWebDavUrl(const QString &defaultValue) {
return getStringValue(SettingsConstants::webDavUrl, defaultValue);
}
void QtPassSettings::setWebDavUrl(const QString &webDavUrl) {
setStringValue(SettingsConstants::webDavUrl, webDavUrl);
}
QString QtPassSettings::getWebDavUser(const QString &defaultValue) {
return getStringValue(SettingsConstants::webDavUser, defaultValue);
}
void QtPassSettings::setWebDavUser(const QString &webDavUser) {
setStringValue(SettingsConstants::webDavUser, webDavUser);
}
QString QtPassSettings::getWebDavPassword(const QString &defaultValue) {
return getStringValue(SettingsConstants::webDavPassword, defaultValue);
}
void QtPassSettings::setWebDavPassword(const QString &webDavPassword) {
setStringValue(SettingsConstants::webDavPassword, webDavPassword);
}
QString QtPassSettings::getProfile(const QString &defaultValue) {
return getStringValue(SettingsConstants::profile, defaultValue);
}
void QtPassSettings::setProfile(const QString &profile) {
setStringValue(SettingsConstants::profile, profile);
}
bool QtPassSettings::isUseGit(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useGit, defaultValue);
}
void QtPassSettings::setUseGit(const bool &useGit) {
setBoolValue(SettingsConstants::useGit, useGit);
}
bool QtPassSettings::isUsePwgen(const bool &defaultValue) {
return getBoolValue(SettingsConstants::usePwgen, defaultValue);
}
void QtPassSettings::setUsePwgen(const bool &usePwgen) {
setBoolValue(SettingsConstants::usePwgen, usePwgen);
}
bool QtPassSettings::isAvoidCapitals(const bool &defaultValue) {
return getBoolValue(SettingsConstants::avoidCapitals, defaultValue);
}
void QtPassSettings::setAvoidCapitals(const bool &avoidCapitals) {
setBoolValue(SettingsConstants::avoidCapitals, avoidCapitals);
}
bool QtPassSettings::isAvoidNumbers(const bool &defaultValue) {
return getBoolValue(SettingsConstants::avoidNumbers, defaultValue);
}
void QtPassSettings::setAvoidNumbers(const bool &avoidNumbers) {
setBoolValue(SettingsConstants::avoidNumbers, avoidNumbers);
}
bool QtPassSettings::isLessRandom(const bool &defaultValue) {
return getBoolValue(SettingsConstants::lessRandom, defaultValue);
}
void QtPassSettings::setLessRandom(const bool &lessRandom) {
setBoolValue(SettingsConstants::lessRandom, lessRandom);
}
bool QtPassSettings::isUseSymbols(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useSymbols, defaultValue);
}
void QtPassSettings::setUseSymbols(const bool &useSymbols) {
setBoolValue(SettingsConstants::useSymbols, useSymbols);
}
-int QtPassSettings::getPasswordLength(const int &defaultValue) {
- return getIntValue(SettingsConstants::passwordLength, defaultValue);
+PasswordConfiguration QtPassSettings::getPasswordConfiguration() {
+ PasswordConfiguration config;
+ config.length = getIntValue(SettingsConstants::passwordLength, 0);
+ config.selected = static_cast<PasswordConfiguration::characterSet>(
+ getIntValue(SettingsConstants::passwordCharsselection, 0));
+ config.Characters[PasswordConfiguration::CUSTOM] =
+ getStringValue(SettingsConstants::passwordChars, QString());
+ return config;
}
-void QtPassSettings::setPasswordLength(const int &passwordLength) {
- setIntValue(SettingsConstants::passwordLength, passwordLength);
+void QtPassSettings::setPasswordConfiguration(const PasswordConfiguration &config) {
+ setIntValue(SettingsConstants::passwordLength, config.length);
+ setIntValue(SettingsConstants::passwordCharsselection, config.selected);
+ setStringValue(SettingsConstants::passwordChars,
+ config.Characters[PasswordConfiguration::CUSTOM]);
}
-int QtPassSettings::getPasswordCharsselection(const int &defaultValue) {
- return getIntValue(SettingsConstants::passwordCharsselection, defaultValue);
+void QtPassSettings::setPasswordLength(const int &passwordLength) {
+ setIntValue(SettingsConstants::passwordLength, passwordLength);
}
void QtPassSettings::setPasswordCharsselection(
const int &passwordCharsselection) {
setIntValue(SettingsConstants::passwordCharsselection,
passwordCharsselection);
}
-QString QtPassSettings::getPasswordChars(const QString &defaultValue) {
- return getStringValue(SettingsConstants::passwordChars, defaultValue);
-}
-
void QtPassSettings::setPasswordChars(const QString &passwordChars) {
setStringValue(SettingsConstants::passwordChars, passwordChars);
}
bool QtPassSettings::isUseTrayIcon(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useTrayIcon, defaultValue);
}
void QtPassSettings::setUseTrayIcon(const bool &useTrayIcon) {
setBoolValue(SettingsConstants::useTrayIcon, useTrayIcon);
}
bool QtPassSettings::isHideOnClose(const bool &defaultValue) {
return getBoolValue(SettingsConstants::hideOnClose, defaultValue);
}
void QtPassSettings::setHideOnClose(const bool &hideOnClose) {
setBoolValue(SettingsConstants::hideOnClose, hideOnClose);
}
bool QtPassSettings::isStartMinimized(const bool &defaultValue) {
return getBoolValue(SettingsConstants::startMinimized, defaultValue);
}
void QtPassSettings::setStartMinimized(const bool &startMinimized) {
setBoolValue(SettingsConstants::startMinimized, startMinimized);
}
bool QtPassSettings::isAlwaysOnTop(const bool &defaultValue) {
return getBoolValue(SettingsConstants::alwaysOnTop, defaultValue);
}
void QtPassSettings::setAlwaysOnTop(const bool &alwaysOnTop) {
setBoolValue(SettingsConstants::alwaysOnTop, alwaysOnTop);
}
bool QtPassSettings::isAutoPull(const bool &defaultValue) {
return getBoolValue(SettingsConstants::autoPull, defaultValue);
}
void QtPassSettings::setAutoPull(const bool &autoPull) {
setBoolValue(SettingsConstants::autoPull, autoPull);
}
bool QtPassSettings::isAutoPush(const bool &defaultValue) {
return getBoolValue(SettingsConstants::autoPush, defaultValue);
}
void QtPassSettings::setAutoPush(const bool &autoPush) {
setBoolValue(SettingsConstants::autoPush, autoPush);
}
QString QtPassSettings::getPassTemplate(const QString &defaultValue) {
return getStringValue(SettingsConstants::passTemplate, defaultValue);
}
void QtPassSettings::setPassTemplate(const QString &passTemplate) {
setStringValue(SettingsConstants::passTemplate, passTemplate);
}
bool QtPassSettings::isUseTemplate(const bool &defaultValue) {
return getBoolValue(SettingsConstants::useTemplate, defaultValue);
}
void QtPassSettings::setUseTemplate(const bool &useTemplate) {
setBoolValue(SettingsConstants::useTemplate, useTemplate);
}
bool QtPassSettings::isTemplateAllFields(const bool &defaultValue) {
return getBoolValue(SettingsConstants::templateAllFields, defaultValue);
}
void QtPassSettings::setTemplateAllFields(const bool &templateAllFields) {
setBoolValue(SettingsConstants::templateAllFields, templateAllFields);
}
QStringList QtPassSettings::getChildKeysFromCurrentGroup() {
return getSettings().childKeys();
}
QHash<QString, QString> QtPassSettings::getProfiles() {
beginProfilesGroup();
QStringList childrenKeys = getChildKeysFromCurrentGroup();
QHash<QString, QString> profiles;
foreach (QString key, childrenKeys) {
profiles.insert(key, getSetting(key).toString());
}
endSettingsGroup();
return profiles;
}
void QtPassSettings::setProfiles(const QHash<QString, QString> &profiles) {
getSettings().remove(SettingsConstants::groupProfiles);
beginProfilesGroup();
QHash<QString, QString>::const_iterator i = profiles.begin();
for (; i != profiles.end(); ++i) {
setSetting(i.key(), i.value());
}
endSettingsGroup();
}
QSettings &QtPassSettings::getSettings() {
if (!QtPassSettings::initialized) {
QString portable_ini = QCoreApplication::applicationDirPath() +
QDir::separator() + "qtpass.ini";
if (QFile(portable_ini).exists()) {
settings.reset(new QSettings(portable_ini, QSettings::IniFormat));
} else {
settings.reset(new QSettings("IJHack", "QtPass"));
}
}
initialized = true;
return *settings;
}
QString QtPassSettings::getStringValue(const QString &key,
const QString &defaultValue) {
QString stringValue;
if (stringSettings.contains(key)) {
stringValue = stringSettings.take(key);
} else {
stringValue = getSettings().value(key, defaultValue).toString();
stringSettings.insert(key, stringValue);
}
return stringValue;
}
int QtPassSettings::getIntValue(const QString &key, const int &defaultValue) {
int intValue;
if (intSettings.contains(key)) {
intValue = intSettings.take(key);
} else {
intValue = getSettings().value(key, defaultValue).toInt();
intSettings.insert(key, intValue);
}
return intValue;
}
bool QtPassSettings::getBoolValue(const QString &key,
const bool &defaultValue) {
bool boolValue;
if (boolSettings.contains(key)) {
boolValue = boolSettings.take(key);
} else {
boolValue = getSettings().value(key, defaultValue).toBool();
boolSettings.insert(key, boolValue);
}
return boolValue;
}
QByteArray QtPassSettings::getByteArrayValue(const QString &key,
const QByteArray &defaultValue) {
QByteArray byteArrayValue;
if (byteArraySettings.contains(key)) {
byteArrayValue = byteArraySettings.take(key);
} else {
byteArrayValue = getSettings().value(key, defaultValue).toByteArray();
byteArraySettings.insert(key, byteArrayValue);
}
return byteArrayValue;
}
QPoint QtPassSettings::getPointValue(const QString &key,
const QPoint &defaultValue) {
QPoint pointValue;
if (pointSettings.contains(key)) {
pointValue = pointSettings.take(key);
} else {
pointValue = getSettings().value(key, defaultValue).toPoint();
pointSettings.insert(key, pointValue);
}
return pointValue;
}
QSize QtPassSettings::getSizeValue(const QString &key,
const QSize &defaultValue) {
QSize sizeValue;
if (sizeSettings.contains(key)) {
sizeValue = sizeSettings.take(key);
} else {
sizeValue = getSettings().value(key, defaultValue).toSize();
sizeSettings.insert(key, sizeValue);
}
return sizeValue;
}
void QtPassSettings::setStringValue(const QString &key,
const QString &stringValue) {
stringSettings.insert(key, stringValue);
getSettings().setValue(key, stringValue);
}
void QtPassSettings::setIntValue(const QString &key, const int &intValue) {
intSettings.insert(key, intValue);
getSettings().setValue(key, intValue);
}
void QtPassSettings::setBoolValue(const QString &key, const bool &boolValue) {
boolSettings.insert(key, boolValue);
getSettings().setValue(key, boolValue);
}
void QtPassSettings::setByteArrayValue(const QString &key,
const QByteArray &byteArrayValue) {
byteArraySettings.insert(key, byteArrayValue);
getSettings().setValue(key, byteArrayValue);
}
void QtPassSettings::setPointValue(const QString &key,
const QPoint &pointValue) {
pointSettings.insert(key, pointValue);
getSettings().setValue(key, pointValue);
}
void QtPassSettings::setSizeValue(const QString &key, const QSize &sizeValue) {
sizeSettings.insert(key, sizeValue);
getSettings().setValue(key, sizeValue);
}
void QtPassSettings::beginSettingsGroup(const QString &groupName) {
getSettings().beginGroup(groupName);
}
void QtPassSettings::endSettingsGroup() { getSettings().endGroup(); }
void QtPassSettings::beginMainwindowGroup() {
getSettings().beginGroup(SettingsConstants::groupMainwindow);
}
void QtPassSettings::beginProfilesGroup() {
getSettings().beginGroup(SettingsConstants::groupProfiles);
}
QVariant QtPassSettings::getSetting(const QString &key,
const QVariant &defaultValue) {
return getSettings().value(key, defaultValue);
}
void QtPassSettings::setSetting(const QString &key, const QVariant &value) {
getSettings().setValue(key, value);
}
Pass *QtPassSettings::getPass() {
if (!pass) {
if (isUsePass()) {
QtPassSettings::pass = &QtPassSettings::realPass;
} else {
QtPassSettings::pass = &QtPassSettings::imitatePass;
}
pass->init();
}
return pass;
}
ImitatePass *QtPassSettings::getImitatePass() { return &imitatePass; }
RealPass *QtPassSettings::getRealPass() { return &realPass; }
diff --git a/src/qtpasssettings.h b/src/qtpasssettings.h
index c3c2506..daf10be 100644
--- a/src/qtpasssettings.h
+++ b/src/qtpasssettings.h
@@ -1,248 +1,246 @@
#ifndef QTPASSSETTINGS_H
#define QTPASSSETTINGS_H
#include "enums.h"
#include "imitatepass.h"
#include "pass.h"
+#include "passwordconfiguration.h"
#include "realpass.h"
#include <QByteArray>
#include <QCoreApplication>
#include <QDir>
#include <QFile>
#include <QHash>
#include <QObject>
#include <QPoint>
#include <QSettings>
#include <QSize>
#include <QVariant>
/*!
\class QtPassSettings
\brief Singleton that stores qtpass' settings, saves and loads config
*/
class QtPassSettings {
public:
static QString
getVersion(const QString &defaultValue = QVariant().toString());
static void setVersion(const QString &version);
static QByteArray
getGeometry(const QByteArray &defaultValue = QVariant().toByteArray());
static void setGeometry(const QByteArray &geometry);
static QByteArray
getSavestate(const QByteArray &defaultValue = QVariant().toByteArray());
static void setSavestate(const QByteArray &saveState);
static QPoint getPos(const QPoint &defaultValue = QVariant().toPoint());
static void setPos(const QPoint &pos);
static QSize getSize(const QSize &defaultValue = QVariant().toSize());
static void setSize(const QSize &size);
static int getSplitterLeft(const int &defaultValue = QVariant().toInt());
static void setSplitterLeft(const int &splitterLeft);
static int getSplitterRight(const int &defaultValue = QVariant().toInt());
static void setSplitterRight(const int &splitterRight);
static bool isMaximized(const bool &defaultValue = QVariant().toBool());
static void setMaximized(const bool &maximized);
static bool isUsePass(const bool &defaultValue = QVariant().toBool());
static void setUsePass(const bool &usePass);
static Enums::clipBoardType getClipBoardType(
const Enums::clipBoardType &defaultvalue = Enums::CLIPBOARD_NEVER);
static void setClipBoardType(const Enums::clipBoardType &clipBoardType);
static bool isUseSelection(const bool &defaultValue = QVariant().toBool());
static void setUseSelection(const bool &useSelection);
static bool isUseAutoclear(const bool &defaultValue = QVariant().toBool());
static void setUseAutoclear(const bool &useAutoclear);
static int getAutoclearSeconds(const int &defaultValue = QVariant().toInt());
static void setAutoclearSeconds(const int &autoClearSeconds);
static bool
isUseAutoclearPanel(const bool &defaultValue = QVariant().toBool());
static void setUseAutoclearPanel(const bool &useAutoclearPanel);
static int
getAutoclearPanelSeconds(const int &defaultValue = QVariant().toInt());
static void setAutoclearPanelSeconds(const int &autoClearPanelSeconds);
static bool isHidePassword(const bool &defaultValue = QVariant().toBool());
static void setHidePassword(const bool &hidePassword);
static bool isHideContent(const bool &defaultValue = QVariant().toBool());
static void setHideContent(const bool &hideContent);
static bool isAddGPGId(const bool &defaultValue = QVariant().toBool());
static void setAddGPGId(const bool &addGPGId);
static QString
getPassStore(const QString &defaultValue = QVariant().toString());
static void setPassStore(const QString &passStore);
+ static void initExecutables();
+
static QString
getPassExecutable(const QString &defaultValue = QVariant().toString());
static void setPassExecutable(const QString &passExecutable);
static QString
getGitExecutable(const QString &defaultValue = QVariant().toString());
static void setGitExecutable(const QString &gitExecutable);
static QString
getGpgExecutable(const QString &defaultValue = QVariant().toString());
static void setGpgExecutable(const QString &gpgExecutable);
static QString
getPwgenExecutable(const QString &defaultValue = QVariant().toString());
static void setPwgenExecutable(const QString &pwgenExecutable);
static QString
getGpgHome(const QString &defaultValue = QVariant().toString());
static bool isUseWebDav(const bool &defaultValue = QVariant().toBool());
static void setUseWebDav(const bool &useWebDav);
static QString
getWebDavUrl(const QString &defaultValue = QVariant().toString());
static void setWebDavUrl(const QString &webDavUrl);
static QString
getWebDavUser(const QString &defaultValue = QVariant().toString());
static void setWebDavUser(const QString &webDavUser);
static QString
getWebDavPassword(const QString &defaultValue = QVariant().toString());
static void setWebDavPassword(const QString &webDavPassword);
static QString
getProfile(const QString &defaultValue = QVariant().toString());
static void setProfile(const QString &profile);
static bool isUseGit(const bool &defaultValue = QVariant().toBool());
static void setUseGit(const bool &useGit);
static bool isUsePwgen(const bool &defaultValue = QVariant().toBool());
static void setUsePwgen(const bool &usePwgen);
static bool isAvoidCapitals(const bool &defaultValue = QVariant().toBool());
static void setAvoidCapitals(const bool &avoidCapitals);
static bool isAvoidNumbers(const bool &defaultValue = QVariant().toBool());
static void setAvoidNumbers(const bool &avoidNumbers);
static bool isLessRandom(const bool &defaultValue = QVariant().toBool());
static void setLessRandom(const bool &lessRandom);
static bool isUseSymbols(const bool &defaultValue = QVariant().toBool());
static void setUseSymbols(const bool &useSymbols);
- static int getPasswordLength(const int &defaultValue = QVariant().toInt());
+ static PasswordConfiguration getPasswordConfiguration();
+ static void setPasswordConfiguration(const PasswordConfiguration &config);
static void setPasswordLength(const int &passwordLength);
-
- static int
- getPasswordCharsselection(const int &defaultValue = QVariant().toInt());
static void setPasswordCharsselection(const int &passwordCharsselection);
-
- static QString
- getPasswordChars(const QString &defaultValue = QVariant().toString());
static void setPasswordChars(const QString &passwordChars);
static bool isUseTrayIcon(const bool &defaultValue = QVariant().toBool());
static void setUseTrayIcon(const bool &useTrayIcon);
static bool isHideOnClose(const bool &defaultValue = QVariant().toBool());
static void setHideOnClose(const bool &hideOnClose);
static bool isStartMinimized(const bool &defaultValue = QVariant().toBool());
static void setStartMinimized(const bool &startMinimized);
static bool isAlwaysOnTop(const bool &defaultValue = QVariant().toBool());
static void setAlwaysOnTop(const bool &alwaysOnTop);
static bool isAutoPull(const bool &defaultValue = QVariant().toBool());
static void setAutoPull(const bool &autoPull);
static bool isAutoPush(const bool &defaultValue = QVariant().toBool());
static void setAutoPush(const bool &autoPush);
static QString
getPassTemplate(const QString &defaultValue = QVariant().toString());
static void setPassTemplate(const QString &passTemplate);
static bool isUseTemplate(const bool &defaultValue = QVariant().toBool());
static void setUseTemplate(const bool &useTemplate);
static bool
isTemplateAllFields(const bool &defaultValue = QVariant().toBool());
static void setTemplateAllFields(const bool &templateAllFields);
static QHash<QString, QString> getProfiles();
static void setProfiles(const QHash<QString, QString> &profiles);
static Pass *getPass();
static RealPass *getRealPass();
static ImitatePass *getImitatePass();
signals:
public slots:
private:
// constructor
explicit QtPassSettings();
static bool initialized;
// member
static QScopedPointer<QSettings> settings;
static QHash<QString, QString> stringSettings;
static QHash<QString, QByteArray> byteArraySettings;
static QHash<QString, QPoint> pointSettings;
static QHash<QString, QSize> sizeSettings;
static QHash<QString, int> intSettings;
static QHash<QString, bool> boolSettings;
static Pass *pass;
static RealPass realPass;
static ImitatePass imitatePass;
// functions
static QSettings &getSettings();
static QString getStringValue(const QString &key,
const QString &defaultValue);
static int getIntValue(const QString &key, const int &defaultValue);
static bool getBoolValue(const QString &key, const bool &defaultValue);
static QByteArray getByteArrayValue(const QString &key,
const QByteArray &defaultValue);
static QPoint getPointValue(const QString &key, const QPoint &defaultValue);
static QSize getSizeValue(const QString &key, const QSize &defaultValue);
static void setStringValue(const QString &key, const QString &stringValue);
static void setIntValue(const QString &key, const int &intValue);
static void setBoolValue(const QString &key, const bool &boolValue);
static void setByteArrayValue(const QString &key,
const QByteArray &byteArrayValue);
static void setPointValue(const QString &key, const QPoint &pointValue);
static void setSizeValue(const QString &key, const QSize &sizeValue);
static QStringList getChildKeysFromCurrentGroup();
static void beginSettingsGroup(const QString &groupName);
static void endSettingsGroup();
static void beginMainwindowGroup();
static void beginProfilesGroup();
static QVariant getSetting(const QString &key,
const QVariant &defaultValue = QVariant());
static void setSetting(const QString &key, const QVariant &value);
};
#endif // QTPASSSETTINGS_H
diff --git a/src/src.pro b/src/src.pro
index a9b6938..5d77220 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,65 +1,68 @@
!include(../qtpass.pri) { error("Couldn't find the qtpass.pri file!") }
TEMPLATE = lib
QT += core gui
TARGET = qtpass
CONFIG += c++11 staticlib
SOURCES += mainwindow.cpp \
configdialog.cpp \
storemodel.cpp \
util.cpp \
usersdialog.cpp \
keygendialog.cpp \
trayicon.cpp \
passworddialog.cpp \
qprogressindicator.cpp \
qpushbuttonwithclipboard.cpp \
qtpasssettings.cpp \
settingsconstants.cpp \
pass.cpp \
realpass.cpp \
imitatepass.cpp \
executor.cpp \
- simpletransaction.cpp
+ simpletransaction.cpp \
+ filecontent.cpp
HEADERS += mainwindow.h \
configdialog.h \
storemodel.h \
util.h \
usersdialog.h \
keygendialog.h \
trayicon.h \
passworddialog.h \
qprogressindicator.h \
deselectabletreeview.h \
qpushbuttonwithclipboard.h \
qtpasssettings.h \
enums.h \
settingsconstants.h \
pass.h \
realpass.h \
imitatepass.h \
- datahelpers.h \
debughelper.h \
executor.h \
- simpletransaction.h
+ simpletransaction.h \
+ filecontent.h \
+ passwordconfiguration.h \
+ userinfo.h
FORMS += mainwindow.ui \
configdialog.ui \
usersdialog.ui \
keygendialog.ui \
passworddialog.ui
updateqm.input = TRANSLATIONS
updateqm.output = ../localization/${QMAKE_FILE_BASE}.qm
updateqm.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ../localization/${QMAKE_FILE_BASE}.qm
updateqm.CONFIG += no_link target_predeps
QMAKE_EXTRA_COMPILERS += updateqm
PRE_TARGETDEPS += compiler_updateqm_make_all
!nosingleapp {
SOURCES += singleapplication.cpp
HEADERS += singleapplication.h
}
diff --git a/src/datahelpers.h b/src/userinfo.h
similarity index 56%
rename from src/datahelpers.h
rename to src/userinfo.h
index 5daef81..c0025ca 100644
--- a/src/datahelpers.h
+++ b/src/userinfo.h
@@ -1,96 +1,61 @@
#ifndef DATAHELPERS_H
#define DATAHELPERS_H
#include <QDateTime>
#include <QString>
-/*!
- \struct passwordConfiguration
- \brief holds the Password configuration settings
- */
-struct passwordConfiguration {
- /**
- * @brief passwordConfiguration::selected character set.
- */
- enum characterSet {
- ALLCHARS = 0,
- ALPHABETICAL,
- ALPHANUMERIC,
- CUSTOM,
- CHARSETS_COUNT // have to be last, for easier initialization of arrays
- } selected;
- /**
- * @brief passwordConfiguration::length of password.
- */
- int length;
- /**
- * @brief passwordConfiguration::Characters the different character sets.
- */
- QString Characters[CHARSETS_COUNT];
- passwordConfiguration() : selected(ALLCHARS), length(16) {
- Characters[ALLCHARS] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&"
- "*()_-+={}[]|:;<>,.?"; /*AllChars*/
- Characters[ALPHABETICAL] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu"
- "vwxyz"; /*Only Alphabetical*/
- Characters[ALPHANUMERIC] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu"
- "vwxyz1234567890"; /*Alphabetical and Numerical*/
- Characters[CUSTOM] = Characters[ALLCHARS]; // this may be redefined by user
- }
-};
-
/*!
\struct UserInfo
\brief Stores key info lines including validity, creation date and more.
*/
struct UserInfo {
UserInfo() : validity('-'), have_secret(false), enabled(false) {}
/**
* @brief UserInfo::fullyValid when validity is f or u.
* http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS
*/
bool fullyValid() { return validity == 'f' || validity == 'u'; }
/**
* @brief UserInfo::marginallyValid when validity is m.
* http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS
*/
bool marginallyValid() { return validity == 'm'; }
/**
* @brief UserInfo::isValid when fullyValid or marginallyValid.
*/
bool isValid() { return fullyValid() || marginallyValid(); }
/**
* @brief UserInfo::name full name
*/
QString name;
/**
* @brief UserInfo::key_id hexadecimal representation
*/
QString key_id;
/**
* @brief UserInfo::validity GnuPG representation of validity
* http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS
*/
char validity;
/**
* @brief UserInfo::have_secret secret key is available
* (can decrypt with this key)
*/
bool have_secret;
/**
* @brief UserInfo::enabled
*/
bool enabled;
/**
* @brief UserInfo::expiry date/time key expires
*/
QDateTime expiry;
/**
* @brief UserInfo::created date/time key was created
*/
QDateTime created;
};
#endif // DATAHELPERS_H
diff --git a/src/usersdialog.h b/src/usersdialog.h
index de0c0b1..1efec02 100644
--- a/src/usersdialog.h
+++ b/src/usersdialog.h
@@ -1,46 +1,46 @@
#ifndef USERSDIALOG_H_
#define USERSDIALOG_H_
-#include "datahelpers.h"
+#include "userinfo.h"
#include <QCloseEvent>
#include <QDateTime>
#include <QDialog>
#include <QList>
#include <QStandardItemModel>
namespace Ui {
class UsersDialog;
}
class QListWidgetItem;
/*!
\class UsersDialog
\brief Handles listing and editing of GPG users.
Selection of whom to encrypt to.
*/
class UsersDialog : public QDialog {
Q_OBJECT
public:
explicit UsersDialog(QWidget *parent = 0);
~UsersDialog();
void setUsers(QList<UserInfo> *);
protected:
void closeEvent(QCloseEvent *event);
void keyPressEvent(QKeyEvent *event);
private slots:
void itemChange(QListWidgetItem *item);
void on_lineEdit_textChanged(const QString &filter);
void on_checkBox_clicked();
private:
Ui::UsersDialog *ui;
QList<UserInfo> *userList;
void populateList(const QString &filter);
};
#endif // USERSDIALOG_H_
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 66e5fab..523445e 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -1,2 +1,2 @@
TEMPLATE = subdirs
-SUBDIRS += util
+SUBDIRS += util ui
diff --git a/tests/auto/ui/tst_ui.cpp b/tests/auto/ui/tst_ui.cpp
new file mode 100644
index 0000000..1bbd4f3
--- /dev/null
+++ b/tests/auto/ui/tst_ui.cpp
@@ -0,0 +1,62 @@
+#include "../../../src/passworddialog.h"
+#include "passwordconfiguration.h"
+#include <QCoreApplication>
+#include <QtTest>
+
+/**
+ * @brief The tst_ui class is our first unit test
+ */
+class tst_ui : public QObject {
+ Q_OBJECT
+
+private Q_SLOTS:
+ void contentRemainsSame();
+};
+
+/**
+ * @brief tst_ui::contentRemainsSame test that content set with PasswordDialog::setPassword
+ * is repeated when calling PasswordDialog::getPassword.
+ */
+void tst_ui::contentRemainsSame() {
+ QScopedPointer<PasswordDialog> d(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("", false);
+ QString input = "pw\n";
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ input = "pw\nname: value\n";
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("name", false);
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("name", true);
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("", false);
+ d->templateAll(true);
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("", true);
+ d->templateAll(true);
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+
+ d.reset(new PasswordDialog(PasswordConfiguration{}, NULL));
+ d->setTemplate("name", true);
+ d->templateAll(true);
+ d->setPass(input);
+ QCOMPARE(d->getPassword(), input);
+}
+
+QTEST_MAIN(tst_ui)
+#include "tst_ui.moc"
diff --git a/tests/auto/util/util.pro b/tests/auto/ui/ui.pro
similarity index 52%
copy from tests/auto/util/util.pro
copy to tests/auto/ui/ui.pro
index 4f88ed0..0f176a8 100644
--- a/tests/auto/util/util.pro
+++ b/tests/auto/ui/ui.pro
@@ -1,29 +1,23 @@
!include(../auto.pri) { error("Couldn't find the auto.pri file!") }
message($$QMAKE_LINK_OBJECT_MAX)
-SOURCES += tst_util.cpp \
+SOURCES += tst_ui.cpp
LIBS = -L"$$OUT_PWD/../../../src/$(OBJECTS_DIR)" -lqtpass $$LIBS
-HEADERS += util.h \
- qtpasssettings.h \
- settingsconstants.h \
- pass.h \
- realpass.h \
- imitatepass.h \
- executor.h \
- simpletransaction.h
+HEADERS += passworddialog.h \
+ passwordconfiguration.h
OBJ_PATH += ../../../src/$(OBJECTS_DIR)
VPATH += ../../../src
INCLUDEPATH += ../../../src
win32 {
- RC_FILE = ../../../windows.rc
+ RC_FILE = ../../../windows.rc
# temporary workaround for QTBUG-6453
- QMAKE_LINK_OBJECT_MAX=24
+ QMAKE_LINK_OBJECT_MAX=24
# setting this may also work, but I can't find appropriate value right now
-# QMAKE_LINK_OBJECT_SCRIPT =
+# QMAKE_LINK_OBJECT_SCRIPT =
}
diff --git a/tests/auto/util/tst_util.cpp b/tests/auto/util/tst_util.cpp
index bd1ba90..2a628dc 100644
--- a/tests/auto/util/tst_util.cpp
+++ b/tests/auto/util/tst_util.cpp
@@ -1,67 +1,105 @@
#include "../../../src/util.h"
+#include "../../../src/filecontent.h"
#include <QCoreApplication>
#include <QtTest>
+#include <QList>
/**
* @brief The tst_util class is our first unit test
*/
class tst_util : public QObject {
Q_OBJECT
public:
tst_util();
~tst_util();
public Q_SLOTS:
void init();
void cleanup();
private Q_SLOTS:
void initTestCase();
void cleanupTestCase();
void normalizeFolderPath();
+ void fileContent();
};
+bool operator==(const NamedValue &a, const NamedValue &b) {
+ return a.name == b.name && a.value == b.value;
+}
+
/**
* @brief tst_util::tst_util basic constructor
*/
tst_util::tst_util() {}
/**
* @brief tst_util::~tst_util basic destructor
*/
tst_util::~tst_util() {}
/**
* @brief tst_util::init unit test init method
*/
void tst_util::init() {}
/**
* @brief tst_util::cleanup unit test cleanup method
*/
void tst_util::cleanup() {}
/**
* @brief tst_util::initTestCase test case init method
*/
void tst_util::initTestCase() {}
/**
* @brief tst_util::cleanupTestCase test case cleanup method
*/
void tst_util::cleanupTestCase() {}
/**
* @brief tst_util::normalizeFolderPath test to check correct working
* of Util::normalizeFolderPath the paths should always end with a slash
*/
void tst_util::normalizeFolderPath() {
QCOMPARE(Util::normalizeFolderPath("test"),
QDir::toNativeSeparators("test/"));
QCOMPARE(Util::normalizeFolderPath("test/"),
QDir::toNativeSeparators("test/"));
}
+void tst_util::fileContent() {
+ NamedValue key = {"key", "val"};
+ NamedValue key2 = {"key2", "val2"};
+ QString password = "password";
+
+ FileContent fc = FileContent::parse("password\n", {}, false);
+ QCOMPARE(fc.getPassword(), password);
+ QCOMPARE(fc.getNamedValues(), {});
+ QCOMPARE(fc.getRemainingData(), QString());
+
+ fc = FileContent::parse("password", {}, false);
+ QCOMPARE(fc.getPassword(), password);
+ QCOMPARE(fc.getNamedValues(), {});
+ QCOMPARE(fc.getRemainingData(), QString());
+
+ fc = FileContent::parse("password\nfoobar\n", {}, false);
+ QCOMPARE(fc.getPassword(), password);
+ QCOMPARE(fc.getNamedValues(), {});
+ QCOMPARE(fc.getRemainingData(), QString("foobar\n"));
+
+ fc = FileContent::parse("password\nkey: val\nkey2: val2", {"key2"}, false);
+ QCOMPARE(fc.getPassword(), password);
+ QCOMPARE(fc.getNamedValues(), {key2});
+ QCOMPARE(fc.getRemainingData(), QString("key: val"));
+
+ fc = FileContent::parse("password\nkey: val\nkey2: val2", {"key2"}, true);
+ QCOMPARE(fc.getPassword(), password);
+ QCOMPARE(fc.getNamedValues(), NamedValues({key, key2}));
+ QCOMPARE(fc.getRemainingData(), QString());
+}
+
QTEST_MAIN(tst_util)
#include "tst_util.moc"
diff --git a/tests/auto/util/util.pro b/tests/auto/util/util.pro
index 4f88ed0..e47d464 100644
--- a/tests/auto/util/util.pro
+++ b/tests/auto/util/util.pro
@@ -1,29 +1,23 @@
!include(../auto.pri) { error("Couldn't find the auto.pri file!") }
message($$QMAKE_LINK_OBJECT_MAX)
SOURCES += tst_util.cpp \
LIBS = -L"$$OUT_PWD/../../../src/$(OBJECTS_DIR)" -lqtpass $$LIBS
HEADERS += util.h \
- qtpasssettings.h \
- settingsconstants.h \
- pass.h \
- realpass.h \
- imitatepass.h \
- executor.h \
- simpletransaction.h
+ filecontent.h
OBJ_PATH += ../../../src/$(OBJECTS_DIR)
VPATH += ../../../src
INCLUDEPATH += ../../../src
win32 {
RC_FILE = ../../../windows.rc
# temporary workaround for QTBUG-6453
QMAKE_LINK_OBJECT_MAX=24
# setting this may also work, but I can't find appropriate value right now
# QMAKE_LINK_OBJECT_SCRIPT =
}

File Metadata

Mime Type
text/x-diff
Expires
Thu, Feb 26, 6:41 PM (13 h, 28 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
35/1d/5ac20e07c80fb136581b364f21ba

Event Timeline