Add disambiguation info to source strings

This commit is contained in:
Janek Bevendorff 2018-01-20 13:47:30 +01:00
parent 3605bec8e0
commit 8da3efa2c2
18 changed files with 86 additions and 64 deletions

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>456</width>
<height>385</height>
<width>523</width>
<height>456</height>
</rect>
</property>
<property name="windowTitle">
@ -130,7 +130,7 @@
<item>
<widget class="QCheckBox" name="showNotification">
<property name="text">
<string>Show a &amp;notification when credentials are requested</string>
<string extracomment="Credentials mean login data requested via browser extension">Show a &amp;notification when credentials are requested</string>
</property>
<property name="checked">
<bool>true</bool>
@ -170,14 +170,14 @@
<item>
<widget class="QRadioButton" name="sortByTitle">
<property name="text">
<string>Sort &amp;matching credentials by title</string>
<string extracomment="Credentials mean login data requested via browser extension">Sort &amp;matching credentials by title</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="sortByUsername">
<property name="text">
<string>Sort matching credentials by &amp;username</string>
<string extracomment="Credentials mean login data requested via browser extension">Sort matching credentials by &amp;username</string>
</property>
</widget>
</item>
@ -260,14 +260,14 @@
<item>
<widget class="QCheckBox" name="alwaysAllowAccess">
<property name="text">
<string>Never &amp;ask before accessing credentials</string>
<string extracomment="Credentials mean login data requested via browser extension">Never &amp;ask before accessing credentials</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="alwaysAllowUpdate">
<property name="text">
<string>Never ask before &amp;updating credentials</string>
<string extracomment="Credentials mean login data requested via browser extension">Never ask before &amp;updating credentials</string>
</property>
</widget>
</item>
@ -277,7 +277,7 @@
<string>Only the selected database has to be connected with a client.</string>
</property>
<property name="text">
<string>Searc&amp;h in all opened databases for matching credentials</string>
<string extracomment="Credentials mean login data requested via browser extension">Searc&amp;h in all opened databases for matching credentials</string>
</property>
</widget>
</item>
@ -317,7 +317,7 @@
<string>Use a custom proxy location if you installed a proxy manually.</string>
</property>
<property name="text">
<string>Use a &amp;custom proxy location</string>
<string comment="Meant is the proxy for KeePassXC-Browser">Use a &amp;custom proxy location</string>
</property>
</widget>
</item>
@ -336,7 +336,7 @@
<item>
<widget class="QPushButton" name="customProxyLocationBrowseButton">
<property name="text">
<string>Browse...</string>
<string extracomment="Button for opening file dialog">Browse...</string>
</property>
</widget>
</item>

View File

@ -53,7 +53,7 @@ int Clip::execute(QStringList arguments)
QObject::tr("Key file of the database."),
QObject::tr("path"));
parser.addOption(keyFile);
parser.addPositionalArgument("entry", QObject::tr("Path of the entry to clip."));
parser.addPositionalArgument("entry", QObject::tr("Path of the entry to clip.", "clip = copy to clipboard"));
parser.addPositionalArgument(
"timeout", QObject::tr("Timeout in seconds before clearing the clipboard."), QString("[timeout]"));
parser.process(arguments);

View File

@ -671,7 +671,7 @@ Entry* Entry::clone(CloneFlags flags) const
}
if (flags & CloneRenameTitle)
entry->setTitle(entry->title() + tr(" - Clone"));
entry->setTitle(entry->title() + tr(" - Clone", "Suffix added to cloned entries"));
return entry;
}

View File

@ -298,6 +298,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
& KeePass2::VARIANTMAP_CRITICAL_MASK;
quint16 maxVersion = KeePass2::VARIANTMAP_VERSION & KeePass2::VARIANTMAP_CRITICAL_MASK;
if (!ok || (version > maxVersion)) {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Unsupported KeePass variant map version."));
return {};
}
@ -310,6 +311,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
!= KeePass2::VariantMapFieldType::End)) {
auto nameLen = Endian::readSizedInt<quint32>(device, KeePass2::BYTEORDER, &ok);
if (!ok) {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map entry name length"));
return {};
}
@ -317,6 +319,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (nameLen != 0) {
nameBytes = device->read(nameLen);
if (static_cast<quint32>(nameBytes.size()) != nameLen) {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map entry name data"));
return {};
}
@ -325,6 +328,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
auto valueLen = Endian::readSizedInt<quint32>(device, KeePass2::BYTEORDER, &ok);
if (!ok) {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map entry value length"));
return {};
}
@ -332,6 +336,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen != 0) {
valueBytes = device->read(valueLen);
if (static_cast<quint32>(valueBytes.size()) != valueLen) {
//: Translation comment: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map entry value data"));
return {};
}
@ -342,6 +347,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen == 1) {
vm.insert(name, QVariant(valueBytes.at(0) != 0));
} else {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map Bool entry value length"));
return {};
}
@ -351,6 +357,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen == 4) {
vm.insert(name, QVariant(Endian::bytesToSizedInt<qint32>(valueBytes, KeePass2::BYTEORDER)));
} else {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map Int32 entry value length"));
return {};
}
@ -360,6 +367,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen == 4) {
vm.insert(name, QVariant(Endian::bytesToSizedInt<quint32>(valueBytes, KeePass2::BYTEORDER)));
} else {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map UInt32 entry value length"));
return {};
}
@ -369,6 +377,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen == 8) {
vm.insert(name, QVariant(Endian::bytesToSizedInt<qint64>(valueBytes, KeePass2::BYTEORDER)));
} else {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map Int64 entry value length"));
return {};
}
@ -378,6 +387,7 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
if (valueLen == 8) {
vm.insert(name, QVariant(Endian::bytesToSizedInt<quint64>(valueBytes, KeePass2::BYTEORDER)));
} else {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map UInt64 entry value length"));
return {};
}
@ -392,12 +402,14 @@ QVariantMap Kdbx4Reader::readVariantMap(QIODevice* device)
break;
default:
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map entry type"));
return {};
}
}
if (fieldTypeArray.size() != 1) {
//: Translation: variant map = data structure for storing meta data
raiseError(tr("Invalid variant map field type size"));
return {};
}

View File

@ -41,7 +41,7 @@ bool Kdbx4Writer::writeDatabase(QIODevice* device, Database* db)
}
int ivSize = SymmetricCipher::algorithmIvSize(algo);
if (ivSize < 0) {
raiseError(tr("Invalid symmetric cipher IV size."));
raiseError(tr("Invalid symmetric cipher IV size.", "IV = Initialization Vector for symmetric cipher"));
return false;
}
@ -82,6 +82,7 @@ bool Kdbx4Writer::writeDatabase(QIODevice* device, Database* db)
QVariantMap kdfParams = KeePass2::kdfToParameters(db->kdf());
QByteArray kdfParamBytes;
if (!serializeVariantMap(kdfParams, kdfParamBytes)) {
//: Translation comment: variant map = data structure for storing meta data
raiseError(tr("Failed to serialize KDF parameters variant map"));
return false;
}

View File

@ -1120,6 +1120,7 @@ QByteArray KdbxXmlReader::readCompressedBinary()
QByteArray result;
if (!Tools::readAllFromDevice(&compressor, result)) {
//: Translator meant is a binary data inside an entry
raiseError(tr("Unable to decompress binary"));
}
return result;

View File

@ -126,37 +126,37 @@ Database* KeePass1Reader::readDatabase(QIODevice* device, const QString& passwor
m_encryptionIV = m_device->read(16);
if (m_encryptionIV.size() != 16) {
raiseError("Unable to read encryption IV");
raiseError(tr("Unable to read encryption IV", "IV = Initialization Vector for symmetric cipher"));
return nullptr;
}
auto numGroups = Endian::readSizedInt<quint32>(m_device, KeePass1::BYTEORDER, &ok);
if (!ok) {
raiseError("Invalid number of groups");
raiseError(tr("Invalid number of groups"));
return nullptr;
}
auto numEntries = Endian::readSizedInt<quint32>(m_device, KeePass1::BYTEORDER, &ok);
if (!ok) {
raiseError("Invalid number of entries");
raiseError(tr("Invalid number of entries"));
return nullptr;
}
m_contentHashHeader = m_device->read(32);
if (m_contentHashHeader.size() != 32) {
raiseError("Invalid content hash size");
raiseError(tr("Invalid content hash size"));
return nullptr;
}
m_transformSeed = m_device->read(32);
if (m_transformSeed.size() != 32) {
raiseError("Invalid transform seed size");
raiseError(tr("Invalid transform seed size"));
return nullptr;
}
m_transformRounds = Endian::readSizedInt<quint32>(m_device, KeePass1::BYTEORDER, &ok);
if (!ok) {
raiseError("Invalid number of transform rounds");
raiseError(tr("Invalid number of transform rounds"));
return nullptr;
}
auto kdf = QSharedPointer<AesKdf>::create(true);
@ -191,7 +191,7 @@ Database* KeePass1Reader::readDatabase(QIODevice* device, const QString& passwor
}
if (!constructGroupTree(groups)) {
raiseError("Unable to construct group tree");
raiseError(tr("Unable to construct group tree"));
return nullptr;
}
@ -401,7 +401,7 @@ QByteArray KeePass1Reader::key(const QByteArray& password, const QByteArray& key
bool result = key.transform(*m_db->kdf(), transformedKey);
if (!result) {
raiseError("Key transformation failed");
raiseError(tr("Key transformation failed"));
return QByteArray();
}
@ -445,19 +445,19 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
do {
quint16 fieldType = Endian::readSizedInt<quint16>(cipherStream, KeePass1::BYTEORDER, &ok);
if (!ok) {
raiseError("Invalid group field type number");
raiseError(tr("Invalid group field type number"));
return nullptr;
}
int fieldSize = static_cast<int>(Endian::readSizedInt<quint32>(cipherStream, KeePass1::BYTEORDER, &ok));
if (!ok) {
raiseError("Invalid group field size");
raiseError(tr("Invalid group field size"));
return nullptr;
}
QByteArray fieldData = cipherStream->read(fieldSize);
if (fieldData.size() != fieldSize) {
raiseError("Read group field data doesn't match size");
raiseError(tr("Read group field data doesn't match size"));
return nullptr;
}
@ -467,7 +467,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
break;
case 0x0001:
if (fieldSize != 4) {
raiseError("Incorrect group id field size");
raiseError(tr("Incorrect group id field size"));
return nullptr;
}
groupId = Endian::bytesToSizedInt<quint32>(fieldData, KeePass1::BYTEORDER);
@ -479,7 +479,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0003:
{
if (fieldSize != 5) {
raiseError("Incorrect group creation time field size");
raiseError(tr("Incorrect group creation time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -491,7 +491,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0004:
{
if (fieldSize != 5) {
raiseError("Incorrect group modification time field size");
raiseError(tr("Incorrect group modification time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -503,7 +503,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0005:
{
if (fieldSize != 5) {
raiseError("Incorrect group access time field size");
raiseError(tr("Incorrect group access time field size"));
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
if (dateTime.isValid()) {
@ -514,7 +514,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0006:
{
if (fieldSize != 5) {
raiseError("Incorrect group expiry time field size");
raiseError(tr("Incorrect group expiry time field size"));
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
if (dateTime.isValid()) {
@ -526,7 +526,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0007:
{
if (fieldSize != 4) {
raiseError("Incorrect group icon field size");
raiseError(tr("Incorrect group icon field size"));
return nullptr;
}
quint32 iconNumber = Endian::bytesToSizedInt<quint32>(fieldData, KeePass1::BYTEORDER);
@ -536,7 +536,7 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
case 0x0008:
{
if (fieldSize != 2) {
raiseError("Incorrect group level field size");
raiseError(tr("Incorrect group level field size"));
return nullptr;
}
groupLevel = Endian::bytesToSizedInt<quint16>(fieldData, KeePass1::BYTEORDER);
@ -551,13 +551,13 @@ Group* KeePass1Reader::readGroup(QIODevice* cipherStream)
break;
default:
// invalid field
raiseError("Invalid group field type");
raiseError(tr("Invalid group field type"));
return nullptr;
}
} while (!reachedEnd);
if (!groupIdSet || !groupLevelSet) {
raiseError("Missing group id or level");
raiseError(tr("Missing group id or level"));
return nullptr;
}
@ -583,19 +583,19 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
do {
quint16 fieldType = Endian::readSizedInt<quint16>(cipherStream, KeePass1::BYTEORDER, &ok);
if (!ok) {
raiseError("Missing entry field type number");
raiseError(tr("Missing entry field type number"));
return nullptr;
}
int fieldSize = static_cast<int>(Endian::readSizedInt<quint32>(cipherStream, KeePass1::BYTEORDER, &ok));
if (!ok) {
raiseError("Invalid entry field size");
raiseError(tr("Invalid entry field size"));
return nullptr;
}
QByteArray fieldData = cipherStream->read(fieldSize);
if (fieldData.size() != fieldSize) {
raiseError("Read entry field data doesn't match size");
raiseError(tr("Read entry field data doesn't match size"));
return nullptr;
}
@ -605,7 +605,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
break;
case 0x0001:
if (fieldSize != 16) {
raiseError("Invalid entry uuid field size");
raiseError(tr("Invalid entry uuid field size"));
return nullptr;
}
m_entryUuids.insert(fieldData, entry.data());
@ -613,7 +613,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x0002:
{
if (fieldSize != 4) {
raiseError("Invalid entry group id field size");
raiseError(tr("Invalid entry group id field size"));
return nullptr;
}
quint32 groupId = Endian::bytesToSizedInt<quint32>(fieldData, KeePass1::BYTEORDER);
@ -623,7 +623,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x0003:
{
if (fieldSize != 4) {
raiseError("Invalid entry icon field size");
raiseError(tr("Invalid entry icon field size"));
return nullptr;
}
quint32 iconNumber = Endian::bytesToSizedInt<quint32>(fieldData, KeePass1::BYTEORDER);
@ -648,7 +648,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x0009:
{
if (fieldSize != 5) {
raiseError("Invalid entry creation time field size");
raiseError(tr("Invalid entry creation time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -660,7 +660,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x000A:
{
if (fieldSize != 5) {
raiseError("Invalid entry modification time field size");
raiseError(tr("Invalid entry modification time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -672,7 +672,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x000B:
{
if (fieldSize != 5) {
raiseError("Invalid entry creation time field size");
raiseError(tr("Invalid entry creation time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -684,7 +684,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
case 0x000C:
{
if (fieldSize != 5) {
raiseError("Invalid entry expiry time field size");
raiseError(tr("Invalid entry expiry time field size"));
return nullptr;
}
QDateTime dateTime = dateFromPackedStruct(fieldData);
@ -707,7 +707,7 @@ Entry* KeePass1Reader::readEntry(QIODevice* cipherStream)
break;
default:
// invalid field
raiseError("Invalid entry field type");
raiseError(tr("Invalid entry field type"));
return nullptr;
}
} while (!reachedEnd);

View File

@ -142,7 +142,7 @@ void DatabaseSettingsWidget::save()
if (kdf->uuid() == KeePass2::KDF_ARGON2 && m_uiEncryption->transformRoundsSpinBox->value() > 10000) {
QMessageBox warning;
warning.setIcon(QMessageBox::Warning);
warning.setWindowTitle(tr("Number of rounds too high"));
warning.setWindowTitle(tr("Number of rounds too high", "Key transformation rounds"));
warning.setText(tr("You are using a very high number of key transform rounds with Argon2.\n\n"
"If you keep this number, your database may take hours or days (or even longer) to open!"));
auto ok = warning.addButton(tr("Understood, keep number"), QMessageBox::ButtonRole::AcceptRole);
@ -156,7 +156,7 @@ void DatabaseSettingsWidget::save()
&& m_uiEncryption->transformRoundsSpinBox->value() < 100000) {
QMessageBox warning;
warning.setIcon(QMessageBox::Warning);
warning.setWindowTitle(tr("Number of rounds too low"));
warning.setWindowTitle(tr("Number of rounds too low", "Key transformation rounds"));
warning.setText(tr("You are using a very low number of key transform rounds with AES-KDF.\n\n"
"If you keep this number, your database may be too easy to crack!"));
auto ok = warning.addButton(tr("Understood, keep number"), QMessageBox::ButtonRole::AcceptRole);

View File

@ -85,7 +85,7 @@ void DatabaseTabWidget::newDatabase()
{
DatabaseManagerStruct dbStruct;
Database* db = new Database();
db->rootGroup()->setName(tr("Root"));
db->rootGroup()->setName(tr("Root", "Root group"));
dbStruct.dbWidget = new DatabaseWidget(db, this);
CompositeKey emptyKey;

View File

@ -1277,7 +1277,7 @@ void DatabaseWidget::reloadDatabaseFile()
if (! config()->get("AutoReloadOnChange").toBool()) {
// Ask if we want to reload the db
QMessageBox::StandardButton mb = MessageBox::question(this, tr("Autoreload Request"),
QMessageBox::StandardButton mb = MessageBox::question(this, tr("File has changed"),
tr("The database file has changed. Do you want to load the changes?"),
QMessageBox::Yes | QMessageBox::No);

View File

@ -180,7 +180,7 @@
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
<height>34</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -243,7 +243,7 @@
<bool>false</bool>
</property>
<property name="title">
<string>Timed one-time password</string>
<string>Time-based one-time password</string>
</property>
<addaction name="actionEntryCopyTotp"/>
<addaction name="actionEntryTotp"/>

View File

@ -283,16 +283,16 @@ void PasswordGeneratorWidget::colorStrengthIndicator(double entropy)
// <https://community.kde.org/KDE_Visual_Design_Group/HIG/Color>
if (entropy < 40) {
m_ui->entropyProgressBar->setStyleSheet(style.arg("#c0392b"));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Poor")));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Poor", "Password quality")));
} else if (entropy >= 40 && entropy < 65) {
m_ui->entropyProgressBar->setStyleSheet(style.arg("#f39c1f"));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Weak")));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Weak", "Password quality")));
} else if (entropy >= 65 && entropy < 100) {
m_ui->entropyProgressBar->setStyleSheet(style.arg("#11d116"));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Good")));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Good", "Password quality")));
} else {
m_ui->entropyProgressBar->setStyleSheet(style.arg("#27ae60"));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Excellent")));
m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Excellent", "Password quality")));
}
}

View File

@ -2,6 +2,14 @@
<ui version="4.0">
<class>PasswordGeneratorWidget</class>
<widget class="QWidget" name="PasswordGeneratorWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>547</width>
<height>352</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -100,7 +108,7 @@ QProgressBar::chunk {
</size>
</property>
<property name="text">
<string>strength</string>
<string comment="Password strength">strength</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>

View File

@ -415,7 +415,7 @@
</sizepolicy>
</property>
<property name="suffix">
<string> ms</string>
<string comment="Milliseconds"> ms</string>
</property>
<property name="prefix">
<string/>

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>595</width>
<height>443</height>
<height>446</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@ -48,7 +48,7 @@
</sizepolicy>
</property>
<property name="suffix">
<string> sec</string>
<string comment="Seconds"> sec</string>
</property>
<property name="minimum">
<number>1</number>
@ -86,7 +86,7 @@
</sizepolicy>
</property>
<property name="suffix">
<string> sec</string>
<string comment="Seconds"> sec</string>
</property>
<property name="minimum">
<number>10</number>

View File

@ -132,7 +132,7 @@
<bool>false</bool>
</property>
<property name="suffix">
<string> sec</string>
<string comment="Seconds"> sec</string>
</property>
<property name="minimum">
<number>1</number>

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>471</width>
<height>480</height>
<width>498</width>
<height>518</height>
</rect>
</property>
<property name="windowTitle">
@ -166,7 +166,7 @@
<item row="3" column="2">
<widget class="QPushButton" name="browseButton">
<property name="text">
<string>Browse...</string>
<string extracomment="Button for opening file dialog">Browse...</string>
</property>
</widget>
</item>

View File

@ -52,7 +52,7 @@
<item>
<widget class="QCheckBox" name="showNotification">
<property name="text">
<string>Sh&amp;ow a notification when credentials are requested</string>
<string extracomment="Credentials mean login data requested via browser extension">Sh&amp;ow a notification when credentials are requested</string>
</property>
<property name="checked">
<bool>true</bool>