Add English and Russian ChatGUI interface translations

This commit is contained in:
evgeny committed 2026-10-05 16:55:43 +02:00
1 parent 972c6b7f0a
commit 27d93ecaf9
50 files changed
+4978 -491

No files matched your search

+20 -19
View File
@@ -1,3 +1,4 @@
#include <QCoreApplication>
#include "accountlist.h"
#include "accountdelegate.h"
#include "memberlistmodel.h"
@@ -57,10 +58,10 @@ QString AccountList::relativeTimeStr(qint64 timestamp) {
if (timestamp <= 0) return "";
qint64 diff = QDateTime::currentSecsSinceEpoch() - timestamp;
if (diff < 0) diff = 0;
if (diff < 60) return QString("%1s").arg(diff);
if (diff < 3600) return QString("%1m").arg(diff / 60);
if (diff < 86400) return QString("%1h").arg(diff / 3600);
return QString("%1d").arg(diff / 86400);
if (diff < 60) return QCoreApplication::translate("ChatGui", "%1s").arg(diff);
if (diff < 3600) return QCoreApplication::translate("ChatGui", "%1m").arg(diff / 60);
if (diff < 86400) return QCoreApplication::translate("ChatGui", "%1h").arg(diff / 3600);
return QCoreApplication::translate("ChatGui", "%1d").arg(diff / 86400);
}
AccountList::AccountList(DbManager* db, QWidget *parent)
@@ -75,7 +76,7 @@ AccountList::AccountList(DbManager* db, QWidget *parent)
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
m_header = new QLabel("Members", this);
m_header = new QLabel(QCoreApplication::translate("ChatGui", "Members"), this);
m_header->setAlignment(Qt::AlignCenter);
m_header->setStyleSheet("font-weight: bold; padding: 8px; background: palette(window);");
layout->addWidget(m_header);
@@ -104,7 +105,7 @@ AccountList::AccountList(DbManager* db, QWidget *parent)
detailLayout->setContentsMargins(0, 0, 0, 0);
detailLayout->setSpacing(0);
m_detailHeader = new QLabel("Select a member", m_detailPanel);
m_detailHeader = new QLabel(QCoreApplication::translate("ChatGui", "Select a member"), m_detailPanel);
m_detailHeader->setWordWrap(true);
m_detailHeader->setStyleSheet("font-weight: bold; padding: 4px 8px; background: palette(window);");
detailLayout->addWidget(m_detailHeader);
@@ -177,11 +178,11 @@ void AccountList::setChannel(const QString& channelId) {
m_detailTimer->stop();
m_linkTimer->stop();
m_detailNodeId = 0;
m_detailHeader->setText("Select a member");
m_detailHeader->setText(QCoreApplication::translate("ChatGui", "Select a member"));
m_detailText->clear();
m_header->setText(isOwner ? QString::fromUtf8("Members \xF0\x9F\x94\x91") : QStringLiteral("Members"));
m_header->setToolTip(isOwner ? QStringLiteral("Channel owner (has private key)") : QString());
m_header->setText(isOwner ? QCoreApplication::translate("ChatGui", "Members 🔑") : QCoreApplication::translate("ChatGui", "Members"));
m_header->setToolTip(isOwner ? QCoreApplication::translate("ChatGui", "Channel owner (has private key)") : QString());
}
void AccountList::refresh() { m_model->refresh(); }
@@ -371,9 +372,9 @@ void AccountList::updateDetailDisplay() {
hdr.append(QString("<span style='color:%1;'>●</span> %2 %3")
.arg(dotColor, m_detailName.toHtmlEscaped(), nodeHex));
if (m_detailLastSeen > 0)
hdr.append(QString("seen %1").arg(relativeTimeStr(m_detailLastSeen)));
hdr.append(QCoreApplication::translate("ChatGui", "seen %1").arg(relativeTimeStr(m_detailLastSeen)));
if (m_detailCreated > 0)
hdr.append(QString("created %1").arg(relativeTimeStr(m_detailCreated)));
hdr.append(QCoreApplication::translate("ChatGui", "created %1").arg(relativeTimeStr(m_detailCreated)));
m_detailHeader->setText(hdr.join(" "));
/* ── Body ── */
@@ -385,7 +386,7 @@ void AccountList::updateDetailDisplay() {
};
if (!m_detailAddrs.isEmpty()) {
lines.append("── Addresses ──");
lines.append(QCoreApplication::translate("ChatGui", "── Addresses ──"));
for (const auto& a : m_detailAddrs) {
lines.append(QString(" [sock%1] %2 %3 %4:%5 %6")
.arg(a.socket_id)
@@ -398,7 +399,7 @@ void AccountList::updateDetailDisplay() {
}
if (isSelf) {
lines.append("── Listen ──");
lines.append(QCoreApplication::translate("ChatGui", "── Listen ──"));
for (const auto& s : m_snapSocks) {
const DetailAddress* a = nullptr;
for (const auto& da : m_detailAddrs) {
@@ -413,7 +414,7 @@ void AccountList::updateDetailDisplay() {
}
} else {
if (!m_snapLinks.isEmpty()) {
lines.append("── Connections ──");
lines.append(QCoreApplication::translate("ChatGui", "── Connections ──"));
for (const auto& lk : m_snapLinks) {
bool up = (lk.linkState == 3 && lk.linkStatus == 1);
QString c = up ? "#4CAF50" : "#E53935";
@@ -482,15 +483,15 @@ void AccountList::onMemberContextMenu(const QPoint& pos) {
QString name = m_model->data(index, Qt::DisplayRole).toString();
QMenu menu(m_listView);
QAction* pmAction = menu.addAction(QString::fromUtf8("Написать сообщение"));
QAction* pmAction = menu.addAction(QCoreApplication::translate("ChatGui", "Send message"));
if (nodeId == m_db->myNodeId()) pmAction->setEnabled(false);
QAction* callAction = menu.addAction(QString::fromUtf8("Позвонить"));
QAction* callAction = menu.addAction(QCoreApplication::translate("ChatGui", "Call peer"));
if (nodeId == m_db->myNodeId() || !m_model->isOnlineAt(index.row())) callAction->setEnabled(false);
QAction* connectAction = menu.addAction("Connect");
QAction* connectAction = menu.addAction(QCoreApplication::translate("ChatGui", "Connect"));
if (nodeId == m_db->myNodeId()) connectAction->setEnabled(false);
QAction* renameAction = menu.addAction("Rename");
QAction* renameAction = menu.addAction(QCoreApplication::translate("ChatGui", "Rename"));
if (nodeId == m_db->myNodeId()) renameAction->setEnabled(false);
QAction* editAction = menu.addAction("Edit");
QAction* editAction = menu.addAction(QCoreApplication::translate("ChatGui", "Edit"));
QAction* chosen = menu.exec(m_listView->viewport()->mapToGlobal(pos));
if (chosen == pmAction) {