mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-29 09:16:29 -05:00
Make more strings translatable
Includes making certain modifiers (like "[locked]") positionable, in case languages put this before the word
This commit is contained in:
parent
3def6a3bc4
commit
e66adfbf68
@ -377,10 +377,8 @@ int CsvParser::getCsvRows() const {
|
|||||||
|
|
||||||
|
|
||||||
void CsvParser::appendStatusMsg(QString s, bool isCritical) {
|
void CsvParser::appendStatusMsg(QString s, bool isCritical) {
|
||||||
m_statusMsg += s
|
m_statusMsg += QObject::tr("%1: (row, col) %2,%3")
|
||||||
.append(": (row,col) " + QString::number(m_currRow))
|
.arg(s, m_currRow, m_currCol)
|
||||||
.append(",")
|
|
||||||
.append(QString::number(m_currCol))
|
|
||||||
.append("\n");
|
.append("\n");
|
||||||
m_isGood = !isCritical;
|
m_isGood = !isCritical;
|
||||||
}
|
}
|
||||||
|
@ -681,7 +681,7 @@ Entry* Entry::clone(CloneFlags flags) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (flags & CloneRenameTitle)
|
if (flags & CloneRenameTitle)
|
||||||
entry->setTitle(entry->title() + tr(" - Clone", "Suffix added to cloned entries"));
|
entry->setTitle(tr("%1 - Clone").arg(entry->title()));
|
||||||
|
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
@ -616,7 +616,7 @@ QString Group::print(bool recursive, int depth)
|
|||||||
QString indentation = QString(" ").repeated(depth);
|
QString indentation = QString(" ").repeated(depth);
|
||||||
|
|
||||||
if (entries().isEmpty() && children().isEmpty()) {
|
if (entries().isEmpty() && children().isEmpty()) {
|
||||||
response += indentation + "[empty]\n";
|
response += indentation + tr("[empty]", "group has no children") + "\n";
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -911,7 +911,7 @@ void Group::markOlderEntry(Entry* entry)
|
|||||||
{
|
{
|
||||||
entry->attributes()->set(
|
entry->attributes()->set(
|
||||||
"merged",
|
"merged",
|
||||||
QString("older entry merged from database \"%1\"").arg(entry->group()->database()->metadata()->name()));
|
tr("older entry merged from database \"%1\"").arg(entry->group()->database()->metadata()->name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Group::resolveSearchingEnabled() const
|
bool Group::resolveSearchingEnabled() const
|
||||||
|
@ -42,7 +42,7 @@ Database* Kdbx3Reader::readDatabaseImpl(QIODevice* device, const QByteArray& hea
|
|||||||
if (m_masterSeed.isEmpty() || m_encryptionIV.isEmpty()
|
if (m_masterSeed.isEmpty() || m_encryptionIV.isEmpty()
|
||||||
|| m_streamStartBytes.isEmpty() || m_protectedStreamKey.isEmpty()
|
|| m_streamStartBytes.isEmpty() || m_protectedStreamKey.isEmpty()
|
||||||
|| m_db->cipher().isNull()) {
|
|| m_db->cipher().isNull()) {
|
||||||
raiseError("missing database headers");
|
raiseError(tr("missing database headers"));
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +134,7 @@ Database* Kdbx3Reader::readDatabaseImpl(QIODevice* device, const QByteArray& hea
|
|||||||
if (!xmlReader.headerHash().isEmpty()) {
|
if (!xmlReader.headerHash().isEmpty()) {
|
||||||
QByteArray headerHash = CryptoHash::hash(headerData, CryptoHash::Sha256);
|
QByteArray headerHash = CryptoHash::hash(headerData, CryptoHash::Sha256);
|
||||||
if (headerHash != xmlReader.headerHash()) {
|
if (headerHash != xmlReader.headerHash()) {
|
||||||
raiseError("Header doesn't match hash");
|
raiseError(tr("Header doesn't match hash"));
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,7 +146,7 @@ bool Kdbx3Reader::readHeaderField(StoreDataStream& headerStream)
|
|||||||
{
|
{
|
||||||
QByteArray fieldIDArray = headerStream.read(1);
|
QByteArray fieldIDArray = headerStream.read(1);
|
||||||
if (fieldIDArray.size() != 1) {
|
if (fieldIDArray.size() != 1) {
|
||||||
raiseError("Invalid header id size");
|
raiseError(tr("Invalid header id size"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
char fieldID = fieldIDArray.at(0);
|
char fieldID = fieldIDArray.at(0);
|
||||||
@ -154,7 +154,7 @@ bool Kdbx3Reader::readHeaderField(StoreDataStream& headerStream)
|
|||||||
bool ok;
|
bool ok;
|
||||||
auto fieldLen = Endian::readSizedInt<quint16>(&headerStream, KeePass2::BYTEORDER, &ok);
|
auto fieldLen = Endian::readSizedInt<quint16>(&headerStream, KeePass2::BYTEORDER, &ok);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
raiseError("Invalid header field length");
|
raiseError(tr("Invalid header field length"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ bool Kdbx3Reader::readHeaderField(StoreDataStream& headerStream)
|
|||||||
if (fieldLen != 0) {
|
if (fieldLen != 0) {
|
||||||
fieldData = headerStream.read(fieldLen);
|
fieldData = headerStream.read(fieldLen);
|
||||||
if (fieldData.size() != fieldLen) {
|
if (fieldData.size() != fieldLen) {
|
||||||
raiseError("Invalid header data length");
|
raiseError(tr("Invalid header data length"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -179,8 +179,9 @@ QString KdbxXmlReader::errorString() const
|
|||||||
{
|
{
|
||||||
if (m_error) {
|
if (m_error) {
|
||||||
return m_errorStr;
|
return m_errorStr;
|
||||||
}if (m_xml.hasError()) {
|
}
|
||||||
return QString("XML error:\n%1\nLine %2, column %3")
|
if (m_xml.hasError()) {
|
||||||
|
return tr("XML error:\n%1\nLine %2, column %3")
|
||||||
.arg(m_xml.errorString())
|
.arg(m_xml.errorString())
|
||||||
.arg(m_xml.lineNumber())
|
.arg(m_xml.lineNumber())
|
||||||
.arg(m_xml.columnNumber());
|
.arg(m_xml.columnNumber());
|
||||||
|
@ -363,7 +363,7 @@ SymmetricCipherStream* KeePass1Reader::testKeys(const QString& password, const Q
|
|||||||
cipherStream->reset();
|
cipherStream->reset();
|
||||||
cipherStream->close();
|
cipherStream->close();
|
||||||
if (!m_device->seek(contentPos)) {
|
if (!m_device->seek(contentPos)) {
|
||||||
QString msg = "unable to seek to content position";
|
QString msg = tr("unable to seek to content position");
|
||||||
if (!m_device->errorString().isEmpty()) {
|
if (!m_device->errorString().isEmpty()) {
|
||||||
msg.append("\n").append(m_device->errorString());
|
msg.append("\n").append(m_device->errorString());
|
||||||
}
|
}
|
||||||
|
@ -82,23 +82,23 @@ AboutDialog::AboutDialog(QWidget* parent)
|
|||||||
|
|
||||||
QString extensions;
|
QString extensions;
|
||||||
#ifdef WITH_XC_AUTOTYPE
|
#ifdef WITH_XC_AUTOTYPE
|
||||||
extensions += "\n- Auto-Type";
|
extensions += "\n- " + tr("Auto-Type");
|
||||||
#endif
|
#endif
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
extensions += "\n- Browser Integration";
|
extensions += "\n- " + tr("Browser Integration");
|
||||||
#endif
|
#endif
|
||||||
#ifdef WITH_XC_HTTP
|
#ifdef WITH_XC_HTTP
|
||||||
extensions += "\n- Legacy Browser Integration (KeePassHTTP)";
|
extensions += "\n- " + tr("Legacy Browser Integration (KeePassHTTP)");
|
||||||
#endif
|
#endif
|
||||||
#ifdef WITH_XC_SSHAGENT
|
#ifdef WITH_XC_SSHAGENT
|
||||||
extensions += "\n- SSH Agent";
|
extensions += "\n- " + tr("SSH Agent");
|
||||||
#endif
|
#endif
|
||||||
#ifdef WITH_XC_YUBIKEY
|
#ifdef WITH_XC_YUBIKEY
|
||||||
extensions += "\n- YubiKey";
|
extensions += "\n- " + tr("YubiKey");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (extensions.isEmpty())
|
if (extensions.isEmpty())
|
||||||
extensions = " None";
|
extensions = " " + tr("None");
|
||||||
|
|
||||||
debugInfo.append(tr("Enabled extensions:").append(extensions));
|
debugInfo.append(tr("Enabled extensions:").append(extensions));
|
||||||
|
|
||||||
|
@ -534,12 +534,12 @@ void DatabaseTabWidget::updateTabName(Database* db)
|
|||||||
if (db->metadata()->name().isEmpty()) {
|
if (db->metadata()->name().isEmpty()) {
|
||||||
tabName = tr("New database");
|
tabName = tr("New database");
|
||||||
} else {
|
} else {
|
||||||
tabName = QString("%1 [%2]").arg(db->metadata()->name(), tr("New database"));
|
tabName = tr("%1 [New database]", "tab modifier").arg(db->metadata()->name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbStruct.dbWidget->currentMode() == DatabaseWidget::LockedMode) {
|
if (dbStruct.dbWidget->currentMode() == DatabaseWidget::LockedMode) {
|
||||||
tabName.append(QString(" [%1]").arg(tr("locked")));
|
tabName = tr("%1 [locked]", "tab modifier").arg(tabName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbStruct.modified) {
|
if (dbStruct.modified) {
|
||||||
|
@ -216,7 +216,7 @@ void DetailsWidget::updateEntryAttributesTab()
|
|||||||
if (m_currentEntry->attributes()->isProtected(key)) {
|
if (m_currentEntry->attributes()->isProtected(key)) {
|
||||||
value = "<i>" + tr("[PROTECTED]") + "</i>";
|
value = "<i>" + tr("[PROTECTED]") + "</i>";
|
||||||
}
|
}
|
||||||
attributesText.append(QString("<b>%1</b>: %2<br/>").arg(key, value));
|
attributesText.append(tr("<b>%1</b>: %2", "attributes line").arg(key, value).append("<br/>"));
|
||||||
}
|
}
|
||||||
m_ui->entryAttributesEdit->setText(attributesText);
|
m_ui->entryAttributesEdit->setText(attributesText);
|
||||||
}
|
}
|
||||||
|
@ -673,7 +673,7 @@ void MainWindow::updateWindowTitle()
|
|||||||
customWindowTitlePart.remove(customWindowTitlePart.size() - 1, 1);
|
customWindowTitlePart.remove(customWindowTitlePart.size() - 1, 1);
|
||||||
}
|
}
|
||||||
if (m_ui->tabWidget->readOnly(tabWidgetIndex)) {
|
if (m_ui->tabWidget->readOnly(tabWidgetIndex)) {
|
||||||
customWindowTitlePart.append(QString(" [%1]").arg(tr("read-only")));
|
customWindowTitlePart = tr("%1 [read-only]", "window title modifier").arg(customWindowTitlePart);
|
||||||
}
|
}
|
||||||
m_ui->actionDatabaseSave->setEnabled(m_ui->tabWidget->canSave(tabWidgetIndex));
|
m_ui->actionDatabaseSave->setEnabled(m_ui->tabWidget->canSave(tabWidgetIndex));
|
||||||
} else if (stackedWidgetIndex == 1) {
|
} else if (stackedWidgetIndex == 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user