Compare commits
9 Commits
master
...
work/tobia
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d51d43709 | ||
|
|
ded0a8a74e | ||
|
|
2a2ee9adb7 | ||
|
|
f696a0bb37 | ||
|
|
a351f988ed | ||
|
|
ce5b527be9 | ||
|
|
fbf39ffcf5 | ||
|
|
9498f76bfb | ||
|
|
c8eb62989c |
@@ -4,3 +4,4 @@
|
||||
[BlueprintSettings]
|
||||
kde/applications/neochat.packageAppx=True
|
||||
libs/qt.qtMajorVersion=6
|
||||
qt-libs/libquotient.version=rust
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "6.10",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"sdk-extensions" : [
|
||||
"org.freedesktop.Sdk.Extension.rust-stable"
|
||||
],
|
||||
"build-options": {
|
||||
"append-path": "/usr/lib/sdk/rust-stable/bin",
|
||||
"env": {
|
||||
"RUST_BACKTRACE": "1",
|
||||
"CARGO_NET_OFFLINE": "true",
|
||||
"RUSTFLAGS": "--remap-path-prefix =../"
|
||||
}
|
||||
},
|
||||
"command": "neochat",
|
||||
"tags": [
|
||||
"nightly"
|
||||
@@ -61,26 +72,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "olm",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": [
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
|
||||
"-DOLM_TESTS=OFF"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://gitlab.matrix.org/matrix-org/olm.git",
|
||||
"tag": "3.2.16",
|
||||
"x-checker-data": {
|
||||
"type": "git",
|
||||
"tag-pattern": "^([\\d.]+)$"
|
||||
},
|
||||
"commit": "7e0c8277032e40308987257b711b38af8d77cc69"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libsecret",
|
||||
"buildsystem": "meson",
|
||||
@@ -129,21 +120,37 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libQuotient",
|
||||
"name": "corrosion",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/quotient-im/libQuotient.git",
|
||||
"branch": "dev",
|
||||
"disable-submodules": true
|
||||
"url": "https://github.com/corrosion-rs/corrosion",
|
||||
"tag": "v0.6.0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libQuotient",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
"flatpak/generated-sources.json",
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/quotient-im/libquotient",
|
||||
"branch": "tobias/rust-sdk-crypto"
|
||||
}
|
||||
],
|
||||
"config-opts": [
|
||||
"-DBUILD_WITH_QT6=ON",
|
||||
"-DQuotient_ENABLE_E2EE=ON",
|
||||
"-DBUILD_TESTING=OFF"
|
||||
]
|
||||
],
|
||||
"build-options": {
|
||||
"env": {
|
||||
"CARGO_HOME": "/run/build/libQuotient/cargo"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cmark",
|
||||
|
||||
@@ -12,7 +12,7 @@ include:
|
||||
- /gitlab-templates/linux-qt6.yml
|
||||
- /gitlab-templates/linux-qt6-next.yml
|
||||
- /gitlab-templates/windows-qt6.yml
|
||||
# - /gitlab-templates/freebsd-qt6.yml
|
||||
- /gitlab-templates/freebsd-qt6.yml
|
||||
- /gitlab-templates/flatpak.yml
|
||||
- /gitlab-templates/snap-snapcraft-lxd.yml
|
||||
- /gitlab-templates/craft-android-qt6-apks.yml
|
||||
|
||||
@@ -28,6 +28,7 @@ Dependencies:
|
||||
'frameworks/qqc2-desktop-style': '@latest-kf6'
|
||||
'frameworks/kio': '@latest-kf6'
|
||||
'frameworks/kwindowsystem': '@latest-kf6'
|
||||
'frameworks/kstatusnotifieritem': '@latest-kf6'
|
||||
- 'on': ['Linux', 'FreeBSD']
|
||||
'require':
|
||||
'frameworks/kdbusaddons': '@latest-kf6'
|
||||
|
||||
@@ -88,7 +88,7 @@ if(ANDROID)
|
||||
)
|
||||
else()
|
||||
find_package(Qt6 ${QT_MIN_VERSION} COMPONENTS Widgets)
|
||||
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS QQC2DesktopStyle KIO WindowSystem)
|
||||
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS QQC2DesktopStyle KIO WindowSystem StatusNotifierItem)
|
||||
find_package(KF6SyntaxHighlighting ${KF_MIN_VERSION} REQUIRED)
|
||||
set_package_properties(KF6QQC2DesktopStyle PROPERTIES
|
||||
TYPE RUNTIME
|
||||
@@ -106,7 +106,7 @@ if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU)
|
||||
find_package(KF6DBusAddons ${KF_MIN_VERSION} REQUIRED)
|
||||
endif()
|
||||
|
||||
find_package(QuotientQt6 0.9.5)
|
||||
find_package(QuotientQt6 0.9.3)
|
||||
set_package_properties(QuotientQt6 PROPERTIES
|
||||
TYPE REQUIRED
|
||||
DESCRIPTION "Qt wrapper around Matrix API"
|
||||
|
||||
@@ -105,12 +105,6 @@ ecm_add_test(
|
||||
TEST_NAME modeltest
|
||||
)
|
||||
|
||||
ecm_add_test(
|
||||
blockcachetest.cpp
|
||||
LINK_LIBRARIES neochat Qt::Test
|
||||
TEST_NAME blockcachetest
|
||||
)
|
||||
|
||||
macro(add_qml_tests)
|
||||
if (WIN32)
|
||||
set(_extra_args -platform offscreen)
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
#include <QVariantList>
|
||||
|
||||
#include "accountmanager.h"
|
||||
#include "blockcache.h"
|
||||
#include "chatbarcache.h"
|
||||
#include "enums/messagecomponenttype.h"
|
||||
#include "models/actionsmodel.h"
|
||||
|
||||
#include "server.h"
|
||||
@@ -90,8 +88,8 @@ void ActionsTest::testActions()
|
||||
QFETCH(std::optional<QString>, resultText);
|
||||
QFETCH(std::optional<Quotient::RoomMessageEvent::MsgType>, type);
|
||||
|
||||
auto cache = new ChatBarCache(room);
|
||||
cache->cache() += Block::CacheItem{.type = MessageComponentType::Text, .content = QTextDocumentFragment::fromMarkdown(command)};
|
||||
auto cache = new ChatBarCache(this);
|
||||
cache->setText(command);
|
||||
auto result = ActionsModel::handleAction(room, cache);
|
||||
QCOMPARE(resultText, std::get<std::optional<QString>>(result));
|
||||
QCOMPARE(type, std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result));
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include <QObject>
|
||||
#include <QTest>
|
||||
|
||||
#include "blockcache.h"
|
||||
|
||||
#include "enums/messagecomponenttype.h"
|
||||
|
||||
using namespace Block;
|
||||
|
||||
class BlockCacheTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private Q_SLOTS:
|
||||
void toStringTest_data();
|
||||
void toStringTest();
|
||||
};
|
||||
|
||||
void BlockCacheTest::toStringTest_data()
|
||||
{
|
||||
QTest::addColumn<QString>("inputString");
|
||||
QTest::addColumn<MessageComponentType::Type>("itemType");
|
||||
QTest::addColumn<QString>("outputstring");
|
||||
|
||||
QTest::newRow("plainText") << u"test string"_s << MessageComponentType::Text << u"test string"_s;
|
||||
QTest::newRow("list") << u"- list 1\n- list 2\n- list 3\n"_s << MessageComponentType::Text << u"- list 1\n- list 2\n- list 3"_s;
|
||||
QTest::newRow("code") << u"for (some code) {\n\n do something\n\n}"_s << MessageComponentType::Code
|
||||
<< u"```\nfor (some code) {\n do something\n}\n```"_s;
|
||||
QTest::newRow("quote") << u"\"this is a quote\""_s << MessageComponentType::Quote << u"> this is a quote"_s;
|
||||
QTest::newRow("heading") << u"# heading\n\nnext line"_s << MessageComponentType::Text << u"# heading\n\nnext line"_s;
|
||||
}
|
||||
|
||||
void BlockCacheTest::toStringTest()
|
||||
{
|
||||
QFETCH(QString, inputString);
|
||||
QFETCH(MessageComponentType::Type, itemType);
|
||||
QFETCH(QString, outputstring);
|
||||
|
||||
Cache cache;
|
||||
cache += CacheItem{
|
||||
.type = itemType,
|
||||
.content = QTextDocumentFragment::fromMarkdown(inputString),
|
||||
};
|
||||
|
||||
QCOMPARE(cache.toString(), outputstring);
|
||||
}
|
||||
|
||||
QTEST_MAIN(BlockCacheTest)
|
||||
#include "blockcachetest.moc"
|
||||
@@ -14,7 +14,6 @@
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include "accountmanager.h"
|
||||
#include "blockcache.h"
|
||||
#include "chatbarcache.h"
|
||||
#include "neochatroom.h"
|
||||
|
||||
@@ -37,6 +36,8 @@ private Q_SLOTS:
|
||||
void initTestCase();
|
||||
|
||||
void empty();
|
||||
void noRoom();
|
||||
void badParent();
|
||||
void reply();
|
||||
void replyMissingUser();
|
||||
void edit();
|
||||
@@ -76,7 +77,7 @@ void ChatBarCacheTest::empty()
|
||||
{
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(room));
|
||||
|
||||
QCOMPARE(chatBarCache->cache().toString(), QString());
|
||||
QCOMPARE(chatBarCache->text(), QString());
|
||||
QCOMPARE(chatBarCache->isReplying(), false);
|
||||
QCOMPARE(chatBarCache->replyId(), QString());
|
||||
QCOMPARE(chatBarCache->isEditing(), false);
|
||||
@@ -86,14 +87,47 @@ void ChatBarCacheTest::empty()
|
||||
QCOMPARE(chatBarCache->attachmentPath(), QString());
|
||||
}
|
||||
|
||||
void ChatBarCacheTest::noRoom()
|
||||
{
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache());
|
||||
chatBarCache->setReplyId(eventId);
|
||||
|
||||
// These should return empty even though a reply ID has been set because the
|
||||
// ChatBarCache has no parent.
|
||||
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QCOMPARE(chatBarCache->relationAuthor(), Quotient::RoomMember());
|
||||
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QCOMPARE(chatBarCache->relationMessage(), QString());
|
||||
}
|
||||
|
||||
void ChatBarCacheTest::badParent()
|
||||
{
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QScopedPointer<QObject> badParent(new QObject());
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(badParent.get()));
|
||||
chatBarCache->setReplyId(eventId);
|
||||
|
||||
// These should return empty even though a reply ID has been set because the
|
||||
// ChatBarCache has no parent.
|
||||
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QCOMPARE(chatBarCache->relationAuthor(), Quotient::RoomMember());
|
||||
|
||||
QTest::ignoreMessage(QtWarningMsg, "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.");
|
||||
QCOMPARE(chatBarCache->relationMessage(), QString());
|
||||
}
|
||||
|
||||
void ChatBarCacheTest::reply()
|
||||
{
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(room));
|
||||
chatBarCache->cache() += Block::CacheItem{.type = MessageComponentType::Text, .content = QTextDocumentFragment::fromMarkdown(u"some text"_s)};
|
||||
chatBarCache->setText(u"some text"_s);
|
||||
chatBarCache->setAttachmentPath(u"some/path"_s);
|
||||
chatBarCache->setReplyId(eventId);
|
||||
|
||||
QCOMPARE(chatBarCache->cache().toString(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->text(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->isReplying(), true);
|
||||
QCOMPARE(chatBarCache->replyId(), eventId);
|
||||
QCOMPARE(chatBarCache->isEditing(), false);
|
||||
@@ -107,11 +141,11 @@ void ChatBarCacheTest::reply()
|
||||
void ChatBarCacheTest::replyMissingUser()
|
||||
{
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(room));
|
||||
chatBarCache->cache() += Block::CacheItem{.type = MessageComponentType::Text, .content = QTextDocumentFragment::fromMarkdown(u"some text"_s)};
|
||||
chatBarCache->setText(u"some text"_s);
|
||||
chatBarCache->setAttachmentPath(u"some/path"_s);
|
||||
chatBarCache->setReplyId(eventId);
|
||||
|
||||
QCOMPARE(chatBarCache->cache().toString(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->text(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->isReplying(), true);
|
||||
QCOMPARE(chatBarCache->replyId(), eventId);
|
||||
QCOMPARE(chatBarCache->isEditing(), false);
|
||||
@@ -138,7 +172,7 @@ void ChatBarCacheTest::edit()
|
||||
{
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(room));
|
||||
|
||||
chatBarCache->cache() += Block::CacheItem{.type = MessageComponentType::Text, .content = QTextDocumentFragment::fromMarkdown(u"some text"_s)};
|
||||
chatBarCache->setText(u"some text"_s);
|
||||
chatBarCache->setAttachmentPath(u"some/path"_s);
|
||||
connect(chatBarCache.get(), &ChatBarCache::relationIdChanged, this, [this](const QString &oldEventId, const QString &newEventId) {
|
||||
QCOMPARE(oldEventId, QString());
|
||||
@@ -146,7 +180,7 @@ void ChatBarCacheTest::edit()
|
||||
});
|
||||
chatBarCache->setEditId(eventId);
|
||||
|
||||
QCOMPARE(chatBarCache->cache().toString(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->text(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->isReplying(), false);
|
||||
QCOMPARE(chatBarCache->replyId(), QString());
|
||||
QCOMPARE(chatBarCache->isEditing(), true);
|
||||
@@ -159,11 +193,11 @@ void ChatBarCacheTest::edit()
|
||||
void ChatBarCacheTest::attachment()
|
||||
{
|
||||
QScopedPointer<ChatBarCache> chatBarCache(new ChatBarCache(room));
|
||||
chatBarCache->cache() += Block::CacheItem{.type = MessageComponentType::Text, .content = QTextDocumentFragment::fromMarkdown(u"some text"_s)};
|
||||
chatBarCache->setText(u"some text"_s);
|
||||
chatBarCache->setEditId(eventId);
|
||||
chatBarCache->setAttachmentPath(u"some/path"_s);
|
||||
|
||||
QCOMPARE(chatBarCache->cache().toString(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->text(), u"some text"_s);
|
||||
QCOMPARE(chatBarCache->isReplying(), false);
|
||||
QCOMPARE(chatBarCache->replyId(), QString());
|
||||
QCOMPARE(chatBarCache->isEditing(), false);
|
||||
|
||||
@@ -30,14 +30,14 @@ public:
|
||||
|
||||
ChatTextItemHelper *textItem() const
|
||||
{
|
||||
return m_keyHelper->textItem();
|
||||
return m_keyHelper->textItem;
|
||||
}
|
||||
void setTextItem(ChatTextItemHelper *textItem)
|
||||
{
|
||||
if (textItem == m_keyHelper->textItem()) {
|
||||
if (textItem == m_keyHelper->textItem) {
|
||||
return;
|
||||
}
|
||||
m_keyHelper->setTextItem(textItem);
|
||||
m_keyHelper->textItem = textItem;
|
||||
Q_EMIT textItemChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -400,6 +400,7 @@ void ModelTest::testCompletionModel()
|
||||
auto model = new CompletionModel(this);
|
||||
auto tester = new QAbstractItemModelTester(model, model);
|
||||
tester->setUseFetchMore(true);
|
||||
model->setRoom(room);
|
||||
model->setAutoCompletionType(CompletionModel::Room);
|
||||
auto roomListModel = new RoomListModel(this);
|
||||
roomListModel->setConnection(connection);
|
||||
|
||||
@@ -121,7 +121,7 @@ void Server::start()
|
||||
QFile key(QStringLiteral(DATA_DIR) + u"/localhost.key"_s);
|
||||
void(key.open(QFile::ReadOnly));
|
||||
config.setPrivateKey(QSslKey(&key, QSsl::Rsa));
|
||||
config.setLocalCertificate(QSslCertificate::fromPath(QStringLiteral(DATA_DIR) + u"/localhost.crt"_s).constFirst());
|
||||
config.setLocalCertificate(QSslCertificate::fromPath(QStringLiteral(DATA_DIR) + u"/localhost.crt"_s).front());
|
||||
m_sslServer.setSslConfiguration(config);
|
||||
if (!m_sslServer.listen(QHostAddress::LocalHost, 1234) || !m_server.bind(&m_sslServer)) {
|
||||
qFatal() << "Server failed to listen on a port.";
|
||||
@@ -227,8 +227,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
QJsonObject joinRooms;
|
||||
auto token = request.query().queryItemValue(u"since"_s).toInt();
|
||||
|
||||
const auto changes = m_state.mid(token);
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &newRoom : change.newRooms) {
|
||||
QJsonArray stateEvents;
|
||||
stateEvents += QJsonObject{
|
||||
@@ -273,7 +272,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &invitation : change.invitations) {
|
||||
// TODO: The invitation could be for a room we haven't joined yet. Shouldn't be necessary for now, though.
|
||||
auto stateEvents = joinRooms[invitation.roomId][u"state"_s][u"events"_s].toArray();
|
||||
@@ -300,7 +299,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &ban : change.bans) {
|
||||
// TODO: The ban could be for a room we haven't joined yet. Shouldn't be necessary for now, though.
|
||||
auto stateEvents = joinRooms[ban.roomId][u"state"_s][u"events"_s].toArray();
|
||||
@@ -327,7 +326,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &join : change.joins) {
|
||||
// TODO: The join could be for a room we haven't joined yet. Shouldn't be necessary for now, though.
|
||||
auto stateEvents = joinRooms[join.roomId][u"state"_s][u"events"_s].toArray();
|
||||
@@ -354,7 +353,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &state : change.stateEvents) {
|
||||
const auto &roomId = state.fullJson[u"room_id"_s].toString();
|
||||
// TODO: The join could be for a room we haven't joined yet. Shouldn't be necessary for now, though.
|
||||
@@ -366,7 +365,7 @@ void Server::sync(const QHttpServerRequest &request, QHttpServerResponder &respo
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &change : changes) {
|
||||
for (const auto &change : m_state.mid(token)) {
|
||||
for (const auto &event : change.events) {
|
||||
// TODO the room might be in a different join state.
|
||||
auto timeline = joinRooms[event.fullJson[u"room_id"_s].toString()][u"timeline"_s][u"events"_s].toArray();
|
||||
|
||||
@@ -73,16 +73,6 @@ void WindowControllerTest::toggle()
|
||||
instance.toggleWindow();
|
||||
QCOMPARE(window.windowState(), Qt::WindowNoState);
|
||||
QCOMPARE(window.isVisible(), false);
|
||||
|
||||
// make sure we restore maximized state when toggling
|
||||
instance.toggleWindow();
|
||||
window.setVisibility(QWindow::Maximized);
|
||||
QCOMPARE(window.windowState(), Qt::WindowMaximized);
|
||||
instance.toggleWindow();
|
||||
QCOMPARE(window.isVisible(), false);
|
||||
instance.toggleWindow();
|
||||
QCOMPARE(window.windowState(), Qt::WindowMaximized);
|
||||
QCOMPARE(window.isVisible(), true);
|
||||
}
|
||||
|
||||
QTEST_MAIN(WindowControllerTest)
|
||||
|
||||
3895
flatpak/generated-sources.json
Normal file
3895
flatpak/generated-sources.json
Normal file
File diff suppressed because it is too large
Load Diff
2
flatpak/generated-sources.json.license
Normal file
2
flatpak/generated-sources.json.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: none
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
@@ -263,7 +263,6 @@
|
||||
<li xml:lang="ar">موقع الأحداث - MSC3488</li>
|
||||
<li xml:lang="ca">Esdeveniments d'ubicació - MSC3488</li>
|
||||
<li xml:lang="ca-valencia">Esdeveniments d'ubicació - MSC3488</li>
|
||||
<li xml:lang="de">Veranstaltungen mit Ortsangabe – MSC3488</li>
|
||||
<li xml:lang="el">Τοποθεσία γεγονότα - MSC3488</li>
|
||||
<li xml:lang="en-GB">Location Events - MSC3488</li>
|
||||
<li xml:lang="eo">Lokaj Eventoj - MSC3488</li>
|
||||
@@ -490,7 +489,6 @@
|
||||
<content_attribute id="social-chat">intense</content_attribute>
|
||||
</content_rating>
|
||||
<releases>
|
||||
<release version="25.12.3" date="2026-03-05"/>
|
||||
<release version="25.12.2" date="2026-02-05"/>
|
||||
<release version="25.12.1" date="2026-01-08"/>
|
||||
<release version="25.12.0" date="2025-12-11"/>
|
||||
@@ -522,137 +520,97 @@
|
||||
<p xml:lang="ar">في الإصدار الأحدث، عند تشغيل التطبيق، ستظهر صفحة ترحيب تتيح اختيار الحساب المراد استخدامه وتسمح بالولوج إلى حسابات أخرى. كما تحذر شاشة الترحيب عندما يتعذر على نيوتشات تحميل حساب ما.</p>
|
||||
<p xml:lang="ca">En la versió més recent, en llançar l'aplicació, obtindreu una pàgina de benvinguda que us permetrà triar quin compte voleu utilitzar i permetrà iniciar sessió en altres comptes. La pantalla de benvinguda també us avisarà quan el NeoChat no pugui carregar un compte.</p>
|
||||
<p xml:lang="ca-valencia">En la versió més recent, en iniciar l'aplicació, obtindreu una pàgina de benvinguda que us permetrà triar quin compte voleu utilitzar i permetrà iniciar sessió en altres comptes. La pantalla de benvinguda també vos avisarà quan NeoChat no puga carregar un compte.</p>
|
||||
<p xml:lang="it">Nella versione più recente, all'avvio dell'applicazione, sarà visualizzata una pagina di benvenuto che consente di scegliere l'account da utilizzare e di accedere ad altri account. La schermata di benvenuto avvisa anche quando NeoChat non riesce a caricare un account.</p>
|
||||
<p xml:lang="ka">უახლეს ვერსიაში აპის გაშვებისას თქვენ მიღებთ მისალმების გვერდს, რომელიც საშუალებას გაძლევთ, აირჩიოთ ანგარიში, რომლის გამოყენებაც გსურთ და საშუალებას მოგცემთ, სხვა ანგარიშებში შეხვიდეთ. მისალმების ეკრანი ასევე გაგაფრთხილებთ, როცა NeoChat-ს ანგარიშის ჩატვირთვა არ შეეძლება.</p>
|
||||
<p xml:lang="nl">In de nieuwste versie krijgt u bij het opstarten van de toepassing een welkomstpagina te zien waar u kunt kiezen welk account u wilt gebruiken en waarmee u zich kunt aanmelden op andere accounts. Het welkomstscherm waarschuwt u ook als NeoChat een account niet kan laden.</p>
|
||||
<p xml:lang="pt-BR">Na versão mais recente, ao iniciar o aplicativo, você verá uma página de boas-vindas que permite escolher qual conta deseja usar e fazer login em outras contas. A tela de boas-vindas também avisará quando o NeoChat não conseguir carregar uma conta.</p>
|
||||
<p xml:lang="ru">В новой версии при запуске приложения открывается страница приветствия, на которой можно выбрать учётную запись для входа или добавить другие учётные записи. Также на странице приветствия отображается предупреждение, если NeoChat не удалось загрузить учётную запись.</p>
|
||||
<p xml:lang="sl">V najnovejši različici boste ob zagonu aplikacije prejeli pozdravno stran, kjer lahko izberete, kateri račun želite uporabiti, in se prijavite v druge račune. Pozdravna stran vas bo opozorila tudi, ko NeoChat ne bo mogel naložiti računa.</p>
|
||||
<p xml:lang="tr">In the newest version, when launching the app, you will get a welcome page that lets you choose which account you want to use and lets you log in to other accounts. The welcome screen will also warn you when NeoChat cannot load an account.</p>
|
||||
<p xml:lang="uk">У найновішій версії, під час запуску програми, ви побачите сторінку вітання, за допомогою якої ви можете вибрати обліковий запис, яким ви хочете скористатися, та надасть вам змогу увійти в інші облікові записи. Сторінка вітання також попередить вас, коли NeoChat не зможе завантажити обліковий запис.</p>
|
||||
<p>NeoChat will also let you register a new account directly from the app itself. Deactivating your Matrix account is also possible from within NeoChat.</p>
|
||||
<p xml:lang="ar">يتيح نيوتشات أيضاً تسجيل حساب جديد مباشرة من التطبيق نفسه. كما يمكن تعطيل حساب ماتركس من داخل نيوتشات.</p>
|
||||
<p xml:lang="ca">El NeoChat també us permetrà registrar un compte nou directament des de l'aplicació mateixa. També és possible desactivar el vostre compte de Matrix des del NeoChat.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat també us permetrà registrar un compte nou directament des de l'aplicació mateixa. També és possible desactivar el vostre compte de Matrix des de NeoChat.</p>
|
||||
<p xml:lang="it">NeoChat ti permetterà anche di registrare un nuovo account direttamente dall'applicazione. Puoi anche disattivare il tuo account Matrix direttamente da NeoChat.</p>
|
||||
<p xml:lang="ka">NeoChat ასევე საშუალებას მოგცემთ, დაარეგისტრიროთ ახალი ანგარიში პირდაპირ აპიდან. NeoChat-იდან ასევე შესაძლებელია თქვენი მატრიცის ანგარიშის დეაქტივაციაც.</p>
|
||||
<p xml:lang="nl">NeoChat biedt u ook de mogelijkheid om direct vanuit de toepassing een nieuw account aan te maken. U kunt uw Matrix-account ook deactiveren vanuit NeoChat.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat também permite que você registre uma nova conta diretamente pelo aplicativo. Desativar sua conta Matrix também é possível a partir do NeoChat.</p>
|
||||
<p xml:lang="ru">В NeoChat также можно зарегистрировать новую учётную запись Matrix. Учётную запись Matrix также можно деактивировать непосредственно в NeoChat.</p>
|
||||
<p xml:lang="sl">NeoChat vam omogoča tudi registracijo novega računa neposredno iz same aplikacije. Deaktivacija računa Matrix je mogoča tudi znotraj NeoChata.</p>
|
||||
<p xml:lang="tr">NeoChat will also let you register a new account directly from the app itself. Deactivating your Matrix account is also possible from within NeoChat.</p>
|
||||
<p xml:lang="uk">NeoChat також надасть вам змогу зареєструвати новий обліковий запис безпосередньо з програми. Деактивувати обліковий запис Matrix також можна з NeoChat.</p>
|
||||
<p>Spaces are a relatively new feature of Matrix that let you group chat channels together. This is used to improve the discoverability of rooms, manage large communities, or just tidy all the channels you are in. You can now do all this without leaving NeoChat.</p>
|
||||
<p xml:lang="ar">الفضاءات هي ميزة جديدة نسبياً في ماتركس تسمح بتجميع قنوات الدردشة معاً. يُستخدم هذا لتحسين قابلية اكتشاف الغرف، أو إدارة المجتمعات الكبيرة، أو مجرد ترتيب القنوات المشترك فيها. يمكن القيام بكل ذلك الآن دون مغادرة نيوتشات.</p>
|
||||
<p xml:lang="ca">Els espais són una característica relativament nova de Matrix que us permet agrupar canals de xat junts. Això s'utilitza per a millorar la descoberta de sales, gestionar comunitats grans, o simplement ordenar tots els canals en els quals esteu. Ara podeu fer tot això sense sortir del NeoChat.</p>
|
||||
<p xml:lang="ca-valencia">Els espais són una característica relativament nova de Matrix que us permet agrupar canals de xat junts. Açò s'utilitza per a millorar la descoberta de sales, gestionar comunitats grans, o senzillament ordenar tots els canals en els quals esteu. Ara podeu fer tot açò sense eixir de NeoChat.</p>
|
||||
<p xml:lang="it">Gli spazi sono una funzionalità relativamente nuova di Matrix che consente di raggruppare i canali di chat. Questa funzionalità viene utilizzata per migliorare la visibilità delle stanze, gestire grandi comunità o semplicemente riordinare tutti i canali in cui si è presenti. Ora è possibile fare tutto questo senza uscire da NeoChat.</p>
|
||||
<p xml:lang="ka">სივრცეები მატრიცის, შედარებით, ახალი ფუნქციაა, რომელიც ჩატის არხების დაჯგუფების საშუალებას გაძლევთ. ის გამოიყენება ოთახების აღმოჩენადობისთვის, დიდი საზოგადოებების სამართავად და ზოგადად არხების ერთად შესაკრებად. ამისი გაკეთება NeoChat-იდან გაუსვლელად შეგიძლიათ.</p>
|
||||
<p xml:lang="nl">Ruimtes zijn een relatief nieuwe functie van Matrix waarmee u chatkanalen kunt groeperen. Dit wordt gebruikt om de vindbaarheid van rooms te verbeteren, grote gemeenschappen te beheren of gewoon alle kanalen waarin u zit overzichtelijk te houden. U kunt dit nu allemaal doen zonder NeoChat te verlaten.</p>
|
||||
<p xml:lang="pt-BR">Os Espaços são um recurso relativamente novo do Matrix que permite agrupar canais de bate-papo. Isso é usado para melhorar a visibilidade das salas, gerenciar grandes comunidades ou simplesmente organizar todos os canais dos quais você participa. Agora você pode fazer tudo isso sem sair do NeoChat.</p>
|
||||
<p xml:lang="ru">Пространства — это относительно новая функция Matrix, позволяющая группировать каналы чатов. Они используются для упрощения поиска комнат, управления большими сообществами или просто для упорядочивания всех ваших каналов. Теперь это можно делать, не покидая NeoChat.</p>
|
||||
<p xml:lang="sl">Prostori so relativno nova funkcija Matrixa, ki omogoča združevanje klepetalnih kanalov. To se uporablja za izboljšanje vidnosti sob, upravljanje velikih skupnosti ali preprosto urejanje vseh kanalov, v katerih ste. Zdaj lahko vse to storite, ne da bi zapustili NeoChat.</p>
|
||||
<p xml:lang="tr">Spaces are a relatively new feature of Matrix that let you group chat channels together. This is used to improve the discoverability of rooms, manage large communities, or just tidy all the channels you are in. You can now do all this without leaving NeoChat.</p>
|
||||
<p xml:lang="uk">Простори — відносно нова можливість Matrix, яка надає змогу групувати канали спілкування. Це використовують для покращення видимості кімнат, керування великими спільнотами або просто сортування всіх каналів, у яких ви перебуваєте. Тепер ви можете робити все це, не виходячи з NeoChat.</p>
|
||||
<p>NeoChat won't let you miss any new notifications anymore. We added a new page that includes all your recent notifications and when NeoChat is closed, you will still be able to receive push notifications. The main timeline will let you know when more messages are loading and when you reach the end of it.</p>
|
||||
<p xml:lang="ar">لن يفوّت نيوتشات أي تنبيهات جديدة بعد الآن. أُضيفت صفحة جديدة تتضمن كافة التنبيهات الأخيرة، وعند إغلاق نيوتشات، ستظل القدرة على استقبال التنبيهات الدفعية قائمة. يُعلِمك الخط الزمني الرئيسي عند تحميل مزيد من الرسائل وعند الوصول إلى نهايته.</p>
|
||||
<p xml:lang="ca">El NeoChat ja no deixarà que us perdeu cap notificació nova. Hem afegit una pàgina nova que inclou totes les notificacions recents i quan el NeoChat estigui tancat, encara podreu rebre notificacions automàtiques. La línia de temps principal us avisarà quan s'estiguin carregant més missatges i quan arribeu al seu final.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat ja no deixarà que vos perdeu cap notificació nova. Hem afegit una pàgina nova que inclou totes les notificacions recents i quan NeoChat estiga tancat, encara podreu rebre notificacions automàtiques. La línia de temps principal vos avisarà quan s'estiguen carregant més missatges i quan arribeu fins al seu final.</p>
|
||||
<p xml:lang="it">NeoChat non ti farà più perdere nessuna nuova notifica. Abbiamo aggiunto una nuova pagina che include tutte le tue notifiche recenti e, anche quando NeoChat è chiuso, potrai comunque ricevere notifiche push. La cronologia principale ti informerà quando vengono caricati altri messaggi e quando ne hai raggiunto la fine.</p>
|
||||
<p xml:lang="ka">NeoChat აღარ მოგცემთ საშუალებას, ახალი შეტყობინებები გამოტოვოთ. ჩვენ დავამატეთ ახალი გვერდი, რომელიც თქვენს უახლეს გაფრთხილებებს შეიცავს და როცა NeoChat დახურულია, თქვენ მაინც შეძლებთ, პუშ-გაფრთხილებები მიიღოთ. მთავარი დროის ხაზი საშუალებას მოგცემთ, გაიგოთ, როდის მოხდება მეტი შეტყობინების ჩატვირთვა და როცა ბოლოში გახვალთ.</p>
|
||||
<p xml:lang="nl">NeoChat zorgt ervoor dat u geen nieuwe meldingen meer mist. We hebben een nieuwe pagina toegevoegd met al uw recente meldingen. Zelfs als NeoChat gesloten is, kunt u nog steeds push-meldingen ontvangen. De hoofdtijdlijn laat u weten wanneer er meer berichten worden geladen en wanneer u het einde van de tijdlijn hebt bereikt.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat não deixará você perder mais nenhuma notificação. Adicionamos uma nova página que inclui todas as suas notificações recentes e, mesmo com o NeoChat fechado, você ainda poderá receber notificações push. A linha do tempo principal mostrará quando novas mensagens estiverem sendo carregadas e quando você chegar ao final.</p>
|
||||
<p xml:lang="ru">Вы более не пропустите ни одного нового уведомления NeoChat. Добавлена страница со всеми последними уведомлениями, а при закрытии приложения будут приходить push-уведомления. Основная лента сообщений теперь показывает процесс загрузки новых сообщений и её окончание.</p>
|
||||
<p xml:lang="sl">Z NeoChatom ne boste več zamudili nobenega novega obvestila. Dodali smo novo stran, ki vključuje vsa vaša nedavna obvestila, in ko je NeoChat zaprt, boste še vedno lahko prejemali potisna obvestila. Glavna časovnica vas bo obvestila, kdaj se nalagajo nova sporočila in kdaj pridete do konca.</p>
|
||||
<p xml:lang="tr">NeoChat won't let you miss any new notifications anymore. We added a new page that includes all your recent notifications and when NeoChat is closed, you will still be able to receive push notifications. The main timeline will let you know when more messages are loading and when you reach the end of it.</p>
|
||||
<p xml:lang="uk">З новою версією NeoChat ви більше не пропускатимете нові сповіщення Ми додали нову сторінку, яка містить усі ваші останні сповіщення, і коли NeoChat буде закрито, ви все одно зможете отримувати імпульсні повідомлення.</p>
|
||||
<p>More NeoChat Goodies</p>
|
||||
<p xml:lang="ar">مزايا إضافية في نيوتشات</p>
|
||||
<p xml:lang="ca">Més millores del NeoChat</p>
|
||||
<p xml:lang="ca-valencia">Més millores de NeoChat</p>
|
||||
<p xml:lang="he">עוד פינוקים ב־NeoChat</p>
|
||||
<p xml:lang="it">Altre chicche di NeoChat</p>
|
||||
<p xml:lang="ka">NeoChat-ის მეტი სიკეთე</p>
|
||||
<p xml:lang="nl">Meer NeoChat-goodies</p>
|
||||
<p xml:lang="pt-BR">Mais novidades do NeoChat</p>
|
||||
<p xml:lang="ru">Дополнительные возможности NeoChat</p>
|
||||
<p xml:lang="sl">Več dobrot NeoChata</p>
|
||||
<p xml:lang="tr">More NeoChat Goodies</p>
|
||||
<p xml:lang="uk">Додаткові корисні можливості NeoChat</p>
|
||||
<ul>
|
||||
<li>QR Codes to share contacts</li>
|
||||
<li xml:lang="ar">رموز استجابة سريعة (QR) لمشاركة جهات الاتصال</li>
|
||||
<li xml:lang="ca">Codis QR per a compartir contactes</li>
|
||||
<li xml:lang="ca-valencia">Codis QR per a compartir contactes</li>
|
||||
<li xml:lang="es">Códigos QR para compartir contactos</li>
|
||||
<li xml:lang="he">קודים מסוג QR לשיתוף אנשי קשר</li>
|
||||
<li xml:lang="ia">Codices QR per compartir contactos</li>
|
||||
<li xml:lang="it">Codice QR per condividere i contatti</li>
|
||||
<li xml:lang="ka">QR კოდები კონტაქტების გასაზიარებლად</li>
|
||||
<li xml:lang="nl">QR-codes om contactpersonen te delen</li>
|
||||
<li xml:lang="pt-BR">Códigos QR para compartilhar contatos</li>
|
||||
<li xml:lang="ru">QR-коды для обмена контактами;</li>
|
||||
<li xml:lang="sl">QR kode za deljenje stikov</li>
|
||||
<li xml:lang="tr">QR Codes to share contacts</li>
|
||||
<li xml:lang="uk">QR-коди для оприлюднення записів контактів</li>
|
||||
<li>Improved room upgrades</li>
|
||||
<li xml:lang="ar">ترقيات محسّنة للغرف</li>
|
||||
<li xml:lang="ca">Actualitzacions millorades de les sales</li>
|
||||
<li xml:lang="ca-valencia">Actualitzacions millorades de les sales</li>
|
||||
<li xml:lang="he">שדרוגי חדרים משופרים</li>
|
||||
<li xml:lang="ia">Meliorate actualisationes de sala</li>
|
||||
<li xml:lang="it">Aggiornamenti delle stanze migliorati</li>
|
||||
<li xml:lang="ka">გაუმჯობესდა ოთახის განახლებები</li>
|
||||
<li xml:lang="nl">Opwaarderen van room verbeterd</li>
|
||||
<li xml:lang="pt-BR">Melhorias nas salas</li>
|
||||
<li xml:lang="ru">Улучшены процедуры обновления комнат;</li>
|
||||
<li xml:lang="sl">Izboljšane nadgradnje sob</li>
|
||||
<li xml:lang="tr">Improved room upgrades</li>
|
||||
<li xml:lang="uk">Удосконалено оновлення кімнати</li>
|
||||
<li>Added button to reject invitation and ignore user</li>
|
||||
<li xml:lang="ar">أُضيف زر لرفض الدعوة وتجاهل المستخدم</li>
|
||||
<li xml:lang="ca">S'ha afegit un botó per a rebutjar una invitació i ignorar l'usuari</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit un botó per a rebutjar una invitació i ignorar l'usuari</li>
|
||||
<li xml:lang="he">נוסף כפתור לדחיית הזמנה והתעלמות ממשתמש</li>
|
||||
<li xml:lang="ia">Addite button per refusar invitation e ignorar usator</li>
|
||||
<li xml:lang="it">Aggiunto un pulsante per rifiutare l'invito e ignorare l'utente</li>
|
||||
<li xml:lang="ka">დაემატა ღილაკი მოსაწვევის უარყოფისთვის და მომხმარებლის დასაიგნორებლად</li>
|
||||
<li xml:lang="nl">Toegevoegde knop om uitnodiging af te wijzen en gebruiker te negeren</li>
|
||||
<li xml:lang="pt-BR">Adicionado botão para rejeitar convite e ignorar usuário</li>
|
||||
<li xml:lang="ru">Добавлена кнопка для отклонения приглашения и игнорирования пользователя;</li>
|
||||
<li xml:lang="sl">Dodan gumb za zavrnitev povabila in ignoriranje uporabnika</li>
|
||||
<li xml:lang="tr">Added button to reject invitation and ignore user</li>
|
||||
<li xml:lang="uk">Додано кнопку для відмови у запрошенні та ігнорування користувача</li>
|
||||
<li>Display device security details</li>
|
||||
<li xml:lang="ar">عرض تفاصيل أمان الجهاز</li>
|
||||
<li xml:lang="ca">Mostra els detalls de seguretat del dispositiu</li>
|
||||
<li xml:lang="ca-valencia">Mostra els detalls de seguretat del dispositiu</li>
|
||||
<li xml:lang="es">Mostrar detalles de la seguridad del dispositivo</li>
|
||||
<li xml:lang="he">הצגת פרטי אבטחת מכשיר</li>
|
||||
<li xml:lang="ia">Monstra detalios de securitate de dispositivo</li>
|
||||
<li xml:lang="it">Visualizza i dettagli di sicurezza del dispositivo</li>
|
||||
<li xml:lang="ka">მოწყობილობის უსაფრთხოების დეტალების ჩვენება</li>
|
||||
<li xml:lang="nl">Details van apparaatbeveiliging tonen</li>
|
||||
<li xml:lang="pt-BR">Exibir detalhes de segurança do dispositivo</li>
|
||||
<li xml:lang="ru">Просмотр подробных сведений о безопасности устройства;</li>
|
||||
<li xml:lang="sl">Prikaži varnostne podrobnosti naprave</li>
|
||||
<li xml:lang="tr">Display device security details</li>
|
||||
<li xml:lang="uk">Реалізовано показ подробиць щодо захисту пристрою</li>
|
||||
<li>Added room security settings</li>
|
||||
<li xml:lang="ar">أُضيفت إعدادات أمان الغرفة</li>
|
||||
<li xml:lang="ca">S'ha afegit la configuració de seguretat de la sala</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit la configuració de seguretat de la sala</li>
|
||||
<li xml:lang="es">Se han añadido ajustes de la seguridad de las salas</li>
|
||||
<li xml:lang="he">נוספו הגדרות אבטחת חדר</li>
|
||||
<li xml:lang="ia">Addite preferentias de securitate de sala</li>
|
||||
<li xml:lang="it">Aggiunte impostazioni di sicurezza delle stanze</li>
|
||||
<li xml:lang="ka">დაემატა ოთახის უსაფრთხოების პარამეტრები</li>
|
||||
<li xml:lang="nl">Beveiligingsinstelling voor room toegevoegd</li>
|
||||
<li xml:lang="pt-BR">Adicionadas configurações de segurança da sala</li>
|
||||
<li xml:lang="ru">Добавлены параметры безопасности комнат;</li>
|
||||
<li xml:lang="sl">Dodane varnostne nastavitve sobe</li>
|
||||
<li xml:lang="tr">Added room security settings</li>
|
||||
<li xml:lang="uk">Додано параметри захисту кімнати</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
@@ -667,14 +625,11 @@
|
||||
<p xml:lang="ar">بعيداً عن التجديد البصري، يمكن لنيوتشات الآن عرض أحداث الموقع وكذلك خريطة بمواقع جميع المستخدمين الذين يبثون مواقعهم حالياً باستخدام تكامل ماتركس مع Itineray. يعد هذا رائعاً لتحديد أماكن الأصدقاء.</p>
|
||||
<p xml:lang="ca">A part d'una revisió visual, ara el NeoChat pot mostrar esdeveniments d'ubicació i també un mapa amb la ubicació de tots els usuaris que actualment emeten la seva ubicació utilitzant la integració de Matrix de l'Itineray. És genial per a localitzar on són els vostres amics.</p>
|
||||
<p xml:lang="ca-valencia">A part d'una revisió visual, ara NeoChat pot mostrar esdeveniments d'ubicació i també un mapa amb la ubicació de tots els usuaris que actualment emeten la seua ubicació utilitzant la integració de Matrix de l'Itineray. És genial per a localitzar on són els vostres amics.</p>
|
||||
<p xml:lang="it">Oltre a una revisione visuale, NeoChat ora può visualizzare eventi di localizzazione e anche una mappa con la posizione di tutti gli utenti che attualmente trasmettono la loro posizione utilizzando l'integrazione Matrix di Itineray. Ottimo per localizzare dove si trovano i tuoi amici.</p>
|
||||
<p xml:lang="ka">ვიზუალური მხრის განახლებასთან ერთად NeoChat-ს ახლა შეუძლია მდებარეობის მოვლენების ჩვენება და ასევე შეუძლია ყველა მომხმარებელი, რომელიც გადმოსცემს თავის მდებარეობას, Itinerary-ის მატრიცის ინტეგრაციით გაჩვენოთ. ეს კარგია იმისთვის, რომ გაიგოთ, სად არიან თქვენი მეგობრები.</p>
|
||||
<p xml:lang="nl">Naast een visuele herziening kan NeoChat nu locatiegebeurtenissen tonen en ook een kaart met de locatie van alle gebruikers die nu hun locatie uitzenden met de Matrix-integratie van Itineray. Geweldig voor lokaliseren waar uw vrienden zijn.</p>
|
||||
<p xml:lang="pt-BR">Além de uma reformulação visual, o NeoChat agora pode exibir eventos de localização e também um mapa com a localização de todos os usuários que estão transmitindo sua localização usando a integração Matrix do Itineray. Ótimo para localizar seus amigos.</p>
|
||||
<p xml:lang="ru">Помимо визуального обновления, в NeoChat добавлена возможность отображения событий местоположения, а также карты с местоположением всех пользователей, которые в данный момент транслируют свои геоданные через интеграцию с Itineray в Matrix. Это удобно для того, чтобы узнать, где находятся ваши друзья.</p>
|
||||
<p xml:lang="sl">Poleg vizualne prenove lahko NeoChat zdaj prikazuje lokacijske dogodke in tudi zemljevid z lokacijo vseh uporabnikov, ki trenutno oddajajo svojo lokacijo, z uporabo integracije Itineray Matrix. Odlično za iskanje lokacij vaših prijateljev.</p>
|
||||
<p xml:lang="tr">Apart from a visual overhaul, NeoChat can now display location events and also a map with the location of all the users currently broadcasting their location using Itineray's Matrix integration. Great for locating where your friends are.</p>
|
||||
<p xml:lang="uk">Окрім оновлення візуальної частини, у новій версії NeoChat можливий показ пов'язаних із місцями подій, а також реалізовано карту з місцями, про які повідомляють трансляції користувачів, на основі інтеграції Itinerary та Matrix. Чудова можливість для визначення місця перебування ваших друзів.</p>
|
||||
</description>
|
||||
</release>
|
||||
<release version="23.04.3" date="2023-07-06"/>
|
||||
@@ -687,38 +642,26 @@
|
||||
<p xml:lang="ar">يُحسّن نيوتشات تصميمه بتعديلات توفر مخططاً أكثر ضغطاً وقائمة أبسط تعمل بشكل أفضل مع قائمة الغرف المطوية.</p>
|
||||
<p xml:lang="ca">El NeoChat millora el seu disseny amb retocs que proporcionen una disposició més compacta i un menú més senzill que funciona millor per a la llista reduïda de sales.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat millora el seu disseny amb retocs que proporcionen una disposició més compacta i un menú més senzill que funciona millor per a la llista reduïda de sales.</p>
|
||||
<p xml:lang="it">NeoChat migliora il suo aspetto con modifiche che offrono una disposizione più compatta e un menu più semplice, più adatto all'elenco delle stanze ridotto.</p>
|
||||
<p xml:lang="ka">NeoChat-მა გააუმჯობესა თავისი დიზაინი ცვლილებებით, რომლებიც გაწვდით უფრო კომპაქტური განლაგებას და გამარტივებულ მენიუს, რომელიც უკეთ მუშაობს აკეცილი ოთახების სიისთვის.</p>
|
||||
<p xml:lang="nl">NeoChat verbetert zijn ontwerp met aanpassingen die zorgen voor een compactere indeling en een eenvoudiger menu dat beter werkt voor de ingeklapte roomslijst.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat aprimorou seu design com ajustes que proporcionam um layout mais compacto e um menu mais simples, que funciona melhor para a lista de salas recolhida.</p>
|
||||
<p xml:lang="ru">В оформлении NeoChat реализованы изменения для более компактного расположения элементов и упрощённого меню, которое лучше работает со свёрнутым списком комнат.</p>
|
||||
<p xml:lang="sl">NeoChat izboljšuje svojo zasnovo s prilagoditvami, ki zagotavljajo bolj kompaktno postavitev in enostavnejši meni, ki bolje deluje za strnjen seznam sob.</p>
|
||||
<p xml:lang="tr">NeoChat improves its design with tweaks that provide a more compact layout and a simpler menu which works better for the collapsed room list.</p>
|
||||
<p xml:lang="uk">У новій версії NeoChat удосконалено дизайн програм, зокрема компонування стало компактнішим, а меню простішим, отже, меню працює краще для згорнутого списку кімнат.</p>
|
||||
<p>We have also improved the video controls, added a new command /knock <room-id> to send a knock event to a room, and you can now edit a prior message inline, within the chat pane.</p>
|
||||
<p xml:lang="ar">حُسّنت أيضاً عناصر التحكم في الفيديو، وأُضيف أمر جديد /knock <room-id> لإرسال حدث طرق إلى غرفة، ويمكن الآن تحرير رسالة سابقة في السطر نفسه داخل لوحة الدردشة.</p>
|
||||
<p xml:lang="ca">També hem millorat els controls de vídeo, s'ha afegit una nova ordre /knock <id-sala> per a enviar un esdeveniment «knock» a una sala, i ara podeu editar un missatge anterior inclòs, dins de la subfinestra de xat.</p>
|
||||
<p xml:lang="ca-valencia">També hem millorat els controls de vídeo, s'ha afegit una nova ordre /knock <id-sala> per a enviar un esdeveniment «knock» a una sala, i ara podeu editar un missatge anterior inclòs, dins de la subfinestra de xat.</p>
|
||||
<p xml:lang="it">Abbiamo anche migliorato i controlli video, aggiunto un nuovo comando /knock <room-id> per inviare un evento knock a una stanza e ora puoi modificare un messaggio precedente in linea, all'interno del riquadro della chat.</p>
|
||||
<p xml:lang="ka">ჩვენ ასევე გავაუმჯობესეთ ვიდეოს მართვა, დავამატეთ ახალი ბრძანება /knock <ოთახის-id> ოთახში დაკაკუნების მოვლენის გასაგზავნად და ასევე შეგიძლიათ, წინა შეტყობინება ხაზშივე, ჩატის პანელში ჩაასწოროთ.</p>
|
||||
<p xml:lang="nl">We hebben ook de videobediening verbeterd, een nieuw commando /knock <room-id> toegevoegd om een klopgebeurtenis naar een room te sturen, en u kunt nu een eerder bericht rechtstreeks in het chatvenster bewerken.</p>
|
||||
<p xml:lang="pt-BR">Também melhoramos os controles de vídeo, adicionamos um novo comando /knock <room-id> para enviar um evento knock para uma sala, e agora você pode editar uma mensagem anterior em linha, no painel de bate-papo.</p>
|
||||
<p xml:lang="ru">Также улучшены элементы управления видео, добавлена новая команда /knock <room-id> для отправки события knock в комнату, а также реализовано редактирование предыдущих сообщений непосредственно в области чата.</p>
|
||||
<p xml:lang="sl">Izboljšali smo tudi video kontrole, dodali nov ukaz /knock <room-id> za pošiljanje dogodka knock v sobo, zdaj pa lahko urejate prejšnje sporočilo v vrstici, v podoknu za klepet.</p>
|
||||
<p xml:lang="tr">We have also improved the video controls, added a new command /knock <room-id> to send a knock event to a room, and you can now edit a prior message inline, within the chat pane.</p>
|
||||
<p xml:lang="uk">Нами також удосконалено засоби керування відео, додано нову команду `/knock <ідентифікатор_кімнати>` для надсилання події *стук* до кімнати. У новій версії ви зможете редагувати попереднє повідомлення на місці, у межах панелі спілкування.</p>
|
||||
<p>Other usability improvements include an overhaul of the keyboard navigation and shortcuts like Ctrl+PgUp/PgDn that allow you to skip from room to room.</p>
|
||||
<p xml:lang="ar">تتضمن تحسينات سهولة الاستخدام الأخرى تجديد التنقل عبر لوحة المفاتيح واختصارات مثل Ctrl+PgUp/PgDn التي تسمح بالانتقال السريع بين الغرف.</p>
|
||||
<p xml:lang="ca">Altres millores d'usabilitat inclouen una revisió de la navegació amb el teclat i dreceres com Ctrl+Re Pàg/Av Pàg que us permeten saltar de sala en sala.</p>
|
||||
<p xml:lang="ca-valencia">Altres millores d'usabilitat inclouen una revisió de la navegació amb el teclat i dreceres com Ctrl+«Re Pàg»/«Av Pàg» que vos permeten saltar de sala en sala.</p>
|
||||
<p xml:lang="it">Altri miglioramenti dell'usabilità includono una revisione della navigazione tramite tastiera e scorciatoie come Ctrl+PagSu/PagGiù che consentono di passare da una stanza all'altra.</p>
|
||||
<p xml:lang="ka">სხვა გამოყენებადობის გაუმჯობესებები შეიცავს კლავიატურის ნავიგაციის გადაკეთებას და ისეთ მალსახმობებს, როგორიცაა Ctrl+PgUp/PgDn, რომელიც ოთახიდან ოთახზე გადასვლის საშუალებას გაძლევთ.</p>
|
||||
<p xml:lang="nl">Andere verbeteringen op het gebied van gebruiksgemak zijn onder meer een herziening van de toetsenbordnavigatie en sneltoetsen zoals Ctrl+PgUp/PgDn waarmee u van room naar room kunt springen.</p>
|
||||
<p xml:lang="pt-BR">Outras melhorias de usabilidade incluem uma reformulação da navegação pelo teclado e atalhos como Ctrl+PgUp/PgDn que permitem que você pule de sala em sala.</p>
|
||||
<p xml:lang="ru">К другим улучшениям в удобстве использования относится переработанная навигация с клавиатурой и комбинации клавиш, такие как Ctrl+PgUp/PgDn, для быстрого перехода между комнатами.</p>
|
||||
<p xml:lang="sl">Druge izboljšave uporabnosti vključujejo prenovo navigacije s tipkovnico in bližnjice, kot sta Ctrl+PgUp/PgDn, ki omogočajo preskakovanje med sobami.</p>
|
||||
<p xml:lang="tr">Other usability improvements include an overhaul of the keyboard navigation and shortcuts like Ctrl+PgUp/PgDn that allow you to skip from room to room.</p>
|
||||
<p xml:lang="uk">Серед інших удосконалень користування перегляд навігації за допомогою клавіатури та комбінації клавіш, такі як Ctrl+PgUp/PgDn, які надають змогу переходити з кімнати в кімнату.</p>
|
||||
</description>
|
||||
<artifacts>
|
||||
<artifact type="binary" platform="x86_64-windows-msvc">
|
||||
@@ -736,104 +679,72 @@
|
||||
<p xml:lang="ca">Característiques noves i correccions d'errors:</p>
|
||||
<p xml:lang="ca-valencia">Característiques noves i esmenes d'errors:</p>
|
||||
<p xml:lang="es">Nuevas funciones y corrección de fallos:</p>
|
||||
<p xml:lang="he">יכולות חדשות ותיקוני תקלות:</p>
|
||||
<p xml:lang="ia">Nove characteristicas e correctiones de faltas:</p>
|
||||
<p xml:lang="it">Nuove funzionalità e correzioni di bug:</p>
|
||||
<p xml:lang="ka">ახალი ფუნქციები და შეცდომების გასწორებები:</p>
|
||||
<p xml:lang="nl">Nieuwe functies en reparaties van bugs:</p>
|
||||
<p xml:lang="pt-BR">Novas funcionalidades e correções de bugs:</p>
|
||||
<p xml:lang="ru">Новые возможности и исправления ошибок:</p>
|
||||
<p xml:lang="sl">Nove zmožnosti in popravki napak:</p>
|
||||
<p xml:lang="tr">New features and bugfixes:</p>
|
||||
<p xml:lang="uk">Нові можливості і виправлення вад:</p>
|
||||
<ul>
|
||||
<li>Notifications will now be shown for all accounts, not just the active one</li>
|
||||
<li xml:lang="ar">تُعرض التنبيهات الآن لكافة الحسابات، وليس فقط الحساب النشط</li>
|
||||
<li xml:lang="ca">Ara es mostraran les notificacions per a tots els comptes, no només l'actiu</li>
|
||||
<li xml:lang="ca-valencia">Ara es mostraran les notificacions per a tots els comptes, no només l'actiu</li>
|
||||
<li xml:lang="es">Se muestran notificaciones de todas las cuentas, no solo de la activa</li>
|
||||
<li xml:lang="he">התראות תופענה לכל החשבונות, לא רק לחשבון הפעיל</li>
|
||||
<li xml:lang="ia">Notificationes nunc essera monstrate per tote le contos,non solmente perlo que es active</li>
|
||||
<li xml:lang="it">Le notifiche saranno ora visualizzate per tutti gli account, non solo per quello attivo</li>
|
||||
<li xml:lang="ka">გაფრთხილებები ნაჩვენები იქნება ყველა ანგარიშისთვის და არა, მხოლოდ, აქტიურისთვის</li>
|
||||
<li xml:lang="nl">Meldingen worden nu voor alle accounts weergegeven, niet alleen voor het actieve account.</li>
|
||||
<li xml:lang="pt-BR">Agora, as notificações serão exibidas para todas as contas, não apenas para a conta ativa</li>
|
||||
<li xml:lang="ru">Уведомления будут выводиться для всех учётных записей, а не только для активной;</li>
|
||||
<li xml:lang="sl">Obvestila bodo zdaj prikazana za vse račune, ne le za aktivnega</li>
|
||||
<li xml:lang="tr">Notifications will now be shown for all accounts, not just the active one</li>
|
||||
<li xml:lang="uk">Сповіщення тепер буде показано для всіх облікових записів, а не лише для активного</li>
|
||||
<li>There is a new "compact" mode for the room list</li>
|
||||
<li xml:lang="ar">يوجد وضع "مضغوط" جديد لقائمة الغرف</li>
|
||||
<li xml:lang="ca">Hi ha un mode «compacte» nou per a la llista de sales</li>
|
||||
<li xml:lang="ca-valencia">Hi ha un mode «compacte» nou per a la llista de sales</li>
|
||||
<li xml:lang="es">Nuevo modo «compacto» para la lista de salas</li>
|
||||
<li xml:lang="he">יש מצב „מצומצם” חדש לרשימת החדרים</li>
|
||||
<li xml:lang="ia">Il ha un nove modo 'compacte' per le lista de sala</li>
|
||||
<li xml:lang="it">C'è una nuova modalità «compatta» per l'elenco delle stanze</li>
|
||||
<li xml:lang="ka">ოთახების სიისთვის არსებობს ახალი "კომპაქტური" რეჟიმი</li>
|
||||
<li xml:lang="nl">Er is een nieuwe "compacte" modus voor de roomslijst.</li>
|
||||
<li xml:lang="pt-BR">Existe um novo modo "compacto" para a lista de salas</li>
|
||||
<li xml:lang="ru">Добавлен новый компактный режим списка комнат;</li>
|
||||
<li xml:lang="sl">Za seznam sob je na voljo nov "kompaktni" način.</li>
|
||||
<li xml:lang="tr">There is a new "compact" mode for the room list</li>
|
||||
<li xml:lang="uk">Передбачено новий «компактний» режим для списку кімнат</li>
|
||||
<li>You can now search in the room history</li>
|
||||
<li xml:lang="ar">يمكن البحث الآن في تاريخ الغرفة</li>
|
||||
<li xml:lang="ca">Ara podeu cercar a l'historial de sales</li>
|
||||
<li xml:lang="ca-valencia">Ara podeu buscar en l'historial de sales</li>
|
||||
<li xml:lang="es">Ahora se puede buscar en el historial de salas</li>
|
||||
<li xml:lang="he">אפשר לחפש מעתה בהיסטוריית החדר</li>
|
||||
<li xml:lang="ia">Tu pote nunc cercar in lechronologia de sala</li>
|
||||
<li xml:lang="it">Ora è possibile cercare nella cronologia della stanza</li>
|
||||
<li xml:lang="ka">ახლა ოთახის ისტორიაში ძებნა შეგიძლიათ</li>
|
||||
<li xml:lang="nl">U kunt nu zoeken in de roomgeschiedenis.</li>
|
||||
<li xml:lang="pt-BR">Agora você pode pesquisar no histórico da sala</li>
|
||||
<li xml:lang="ru">Добавлен поиск по истории комнат;</li>
|
||||
<li xml:lang="sl">Zdaj lahko iščete po zgodovini sobe</li>
|
||||
<li xml:lang="tr">You can now search in the room history</li>
|
||||
<li xml:lang="uk">У новій версії ви можете шукати у журналі кімнати</li>
|
||||
<li>Emojis and Reactions have been significantly improved</li>
|
||||
<li xml:lang="ar">حُسّنت الرموز التعبيرية والتفاعلات بشكل ملحوظ</li>
|
||||
<li xml:lang="ca">Els emojis i les reaccions s'han millorat significativament</li>
|
||||
<li xml:lang="ca-valencia">Els emoji i les reaccions s'han millorat significativament</li>
|
||||
<li xml:lang="es">Los emojis y las reacciones se han mejorado significativamente</li>
|
||||
<li xml:lang="ia">Emojis e Reactiones ha essite meliorate significativemente</li>
|
||||
<li xml:lang="it">Emoji e reazioni sono state notevolmente migliorate</li>
|
||||
<li xml:lang="ka">ემოჯიები და რეაქციები საგრძნობლად გაუმჯობესდა</li>
|
||||
<li xml:lang="nl">Emoji's en reacties zijn aanzienlijk verbeterd.</li>
|
||||
<li xml:lang="pt-BR">Os emojis e as reações foram significativamente aprimorados</li>
|
||||
<li xml:lang="ru">Эмодзи и реакции были значительно улучшены;</li>
|
||||
<li xml:lang="sl">Čustvenčki in reakcije so bili znatno izboljšani</li>
|
||||
<li xml:lang="tr">Emojis and Reactions have been significantly improved</li>
|
||||
<li xml:lang="uk">Значно удосконалено емоційки і реакції</li>
|
||||
<li>Fixed several crashes around user invitations</li>
|
||||
<li xml:lang="ar">أُصلحت عدة انهيارات تتعلق بدعوات المستخدمين</li>
|
||||
<li xml:lang="ca">S'han corregit diverses fallades respecte les invitacions d'usuari</li>
|
||||
<li xml:lang="ca-valencia">S'han corregit diverses fallades respecte les invitacions d'usuari</li>
|
||||
<li xml:lang="es">Se han corregido varios fallos relacionados con las invitaciones de los usuarios</li>
|
||||
<li xml:lang="ia">Corrigite multe fracassos circa invitationes de usator</li>
|
||||
<li xml:lang="it">Corretti diversi arresti anomali relativi agli inviti degli utenti</li>
|
||||
<li xml:lang="ka">გასწორდა რამდენიმე შეცდომა მომხმარებლის მოწვევის ფუნქციის გარშემო</li>
|
||||
<li xml:lang="nl">Diverse crashes rondom gebruikersuitnodigingen zijn verholpen.</li>
|
||||
<li xml:lang="pt-BR">Corrigidas várias falhas relacionadas a convites de usuários</li>
|
||||
<li xml:lang="ru">Исправлено несколько аварийных завершений, связанных с приглашениями пользователей;</li>
|
||||
<li xml:lang="sl">Odpravljenih je bilo več sesutij pri povabilih uporabnikov</li>
|
||||
<li xml:lang="tr">Fixed several crashes around user invitations</li>
|
||||
<li xml:lang="uk">Усунено декілька аварійних завершень роботи при запрошенні користувачів</li>
|
||||
<li>Room permission settings can now be configured</li>
|
||||
<li xml:lang="ar">يمكن ضبط إعدادات أذونات الغرفة الآن</li>
|
||||
<li xml:lang="ca">Ara es pot configurar les opcions dels permisos de sala</li>
|
||||
<li xml:lang="ca-valencia">Ara es pot configurar les opcions dels permisos de sala</li>
|
||||
<li xml:lang="es">Ahora se pueden configurar los ajustes de los permisos de las salas</li>
|
||||
<li xml:lang="ia">Preferentias depermission de sala nun pote esser configurate</li>
|
||||
<li xml:lang="it">Ora è possibile configurare le impostazioni dei permessi della stanza</li>
|
||||
<li xml:lang="ka">ახლა შეგიძლიათ ოთახზე წვდომების მორგება</li>
|
||||
<li xml:lang="nl">De toegangsinstellingen voor rooms kunnen nu worden geconfigureerd.</li>
|
||||
<li xml:lang="pt-BR">Agora é possível configurar as permissões da sala</li>
|
||||
<li xml:lang="ru">Добавлена возможность настраивать разрешения для комнат;</li>
|
||||
<li xml:lang="sl">Nastavitve dovoljenj za sobo je zdaj mogoče konfigurirati</li>
|
||||
<li xml:lang="tr">Room permission settings can now be configured</li>
|
||||
<li xml:lang="uk">У новій версії може бути налаштовано параметри доступу до кімнат</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
@@ -852,128 +763,85 @@
|
||||
<p xml:lang="ca-valencia">Esta versió vos oferix diverses esmenes d'errors i millores xicotetes:</p>
|
||||
<p xml:lang="es">Esta versión proporciona diversas mejoras menores y correcciones de fallos:</p>
|
||||
<p xml:lang="ia">Iste version te porta varie parve correctiones de faltas e melioramentos:</p>
|
||||
<p xml:lang="it">Questa versione apporta diverse piccole correzioni di bug e miglioramenti:</p>
|
||||
<p xml:lang="ka">ეს ვერსია შეიცავს რამდენიმე პატარა შეცდომის გასწორებას და გაუმჯობესებას:</p>
|
||||
<p xml:lang="nl">Deze uitgave bevat diverse kleine reparaties van fouten en verbeteringen:</p>
|
||||
<p xml:lang="pt-BR">Esta versão traz diversas pequenas correções de bugs e melhorias:</p>
|
||||
<p xml:lang="ru">В этом выпуске исправлены различные ошибки и внесены улучшения:</p>
|
||||
<p xml:lang="sl">Ta izdaja vam prinaša različne manjše popravke napak in izboljšave:</p>
|
||||
<p xml:lang="tr">This release brings you various small bugfixes and improvements:</p>
|
||||
<p xml:lang="uk">У цьому випуску ви зможете скористатися різноманітними невеличкими виправленнями вад і удосконаленнями:</p>
|
||||
<ul>
|
||||
<li>Sending of typing notifications can now be disabled.</li>
|
||||
<li xml:lang="ar">يمكن تعطيل إرسال تنبيهات الكتابة الآن.</li>
|
||||
<li xml:lang="ca">Ara es pot desactivar l'enviament de notificacions d'escriptura.</li>
|
||||
<li xml:lang="ca-valencia">Ara es pot desactivar l'enviament de notificacions d'escriptura.</li>
|
||||
<li xml:lang="it">Ora è possibile disattivare l'invio di notifiche di digitazione.</li>
|
||||
<li xml:lang="ka">ახლა შეგიძლიათ, კრეფის შესახებ გაფრთხილება გამორთოთ.</li>
|
||||
<li xml:lang="nl">Het verzenden van meldingen over typen kan nu worden uitgeschakeld.</li>
|
||||
<li xml:lang="pt-BR">Agora é possível desativar o envio de notificações de digitação.</li>
|
||||
<li xml:lang="ru">Отправку уведомлений о наборе текста теперь можно отключить;</li>
|
||||
<li xml:lang="sl">Pošiljanje obvestil o tipkanju je zdaj mogoče onemogočiti.</li>
|
||||
<li xml:lang="tr">Sending of typing notifications can now be disabled.</li>
|
||||
<li xml:lang="uk">У новій версії можна вимкнути сповіщення щодо набирання тексту повідомлення.</li>
|
||||
<li>In the room list, the scrollbar will now disappear correctly when it is not needed.</li>
|
||||
<li xml:lang="ar">في قائمة الغرف، يختفي شريط التمرير الآن بشكل صحيح عند عدم الحاجة إليه.</li>
|
||||
<li xml:lang="ca">A la llista de sales, la barra de desplaçament ara desapareixerà correctament quan no es necessiti.</li>
|
||||
<li xml:lang="ca-valencia">En la llista de sales, la barra de desplaçament ara desapareixerà correctament quan no es necessite.</li>
|
||||
<li xml:lang="it">NeoChat migliora il suo aspetto con modifiche che offrono una disposizione più compatta e un menu più semplice, più adatto all'elenco delle stanze ridotto.</li>
|
||||
<li xml:lang="ka">ოთახების სიაში ჩოჩია ახლა სწორად ქრება, როცა ის საჭირო არაა.</li>
|
||||
<li xml:lang="nl">In de roomlijst verdwijnt de schuifbalk nu correct wanneer deze niet nodig is.</li>
|
||||
<li xml:lang="pt-BR">Na lista de salas, a barra de rolagem agora desaparecerá corretamente quando não for necessária.</li>
|
||||
<li xml:lang="ru">В списке комнат полоса прокрутки теперь скрывается, если не нужна;</li>
|
||||
<li xml:lang="sl">Na seznamu sob bo drsnik zdaj pravilno izginil, ko ga ne boste potrebovali.</li>
|
||||
<li xml:lang="tr">In the room list, the scrollbar will now disappear correctly when it is not needed.</li>
|
||||
<li xml:lang="uk">У списку кімнат реалізовано належне зникнення смужки гортання, коли вона непотрібна.</li>
|
||||
<li>On wayland, NeoChat will now raise correctly when clicking on a notification.</li>
|
||||
<li xml:lang="ar">في ويلاند، يبرز نيوتشات الآن بشكل صحيح عند النقر على التنبيه.</li>
|
||||
<li xml:lang="ca">Al Wayland, ara el NeoChat elevarà correctament en fer clic a una notificació.</li>
|
||||
<li xml:lang="ca-valencia">A Wayland, ara NeoChat elevarà correctament quan es clique damunt d'una notificació.</li>
|
||||
<li xml:lang="it">Su Wayland, NeoChat ora si aprirà correttamente quando fai clic su una notifica.</li>
|
||||
<li xml:lang="ka">Wayland-ზე NeoChat ახლა სწორად ამოიწევა, როცა გაფრთხილებაზე დააწკაპუნებთ.</li>
|
||||
<li xml:lang="nl">Op Wayland zal NeoChat nu correct openen wanneer u op een melding klikt.</li>
|
||||
<li xml:lang="pt-BR">No Wayland, o NeoChat agora será exibido corretamente ao clicar em uma notificação.</li>
|
||||
<li xml:lang="ru">В сеансах Wayland NeoChat теперь активируется при щелчке по уведомлению;</li>
|
||||
<li xml:lang="sl">Na Waylandu se NeoChat zdaj pravilno sproži ob kliku na obvestilo.</li>
|
||||
<li xml:lang="tr">On wayland, NeoChat will now raise correctly when clicking on a notification.</li>
|
||||
<li xml:lang="uk">У wayland NeoChat у новій версії належним чином відкривається при натисканні на сповіщенні.</li>
|
||||
<li>Several bugs have been fixed that would sometimes cause messages containing markdown and/or HTML elements to be sent incorrectly.</li>
|
||||
<li xml:lang="ar">أُصلحت عدة علل كانت تتسبب أحياناً في إرسال الرسائل التي تحتوي على عناصر markdown أو HTML بشكل غير صحيح.</li>
|
||||
<li xml:lang="ca">S'han corregit diversos errors que de vegades feien que els missatges que contenien elements de Markdown i/o HTML s'enviessin incorrectament.</li>
|
||||
<li xml:lang="ca-valencia">S'han corregit diversos errors que de vegades feien que els missatges que contenien elements de Markdown i/o HTML s'enviaren incorrectament.</li>
|
||||
<li xml:lang="it">Sono stati corretti diversi bug che a volte causavano l'invio errato di messaggi contenenti elementi markdown e/o HTML.</li>
|
||||
<li xml:lang="ka">გასწორდა რამდენიმე შეცდომა, რომლებიც ხანდახან შეტყობინებებს, რომლებიც markdown-ს, ან/და HTML ელემენტებს შეიცავენ, არასწორად აგზავნიდნენ.</li>
|
||||
<li xml:lang="nl">Er zijn diverse fouten verholpen die er soms voor zorgden dat berichten met markdown- en/of HTML-elementen onjuist werden verzonden.</li>
|
||||
<li xml:lang="pt-BR">Diversos erros foram corrigidos, os quais, por vezes, causavam o envio incorreto de mensagens contendo elementos Markdown e/ou HTML.</li>
|
||||
<li xml:lang="ru">Исправлены ошибки, из-за которых сообщения, содержащие элементы разметки Markdown и/или HTML, иногда отправлялись некорректно;</li>
|
||||
<li xml:lang="sl">Odpravljenih je bilo več hroščev, zaradi katerih so bila sporočila, ki so vsebovala elemente Markdown in/ali HTML, včasih napačno poslana.</li>
|
||||
<li xml:lang="tr">Several bugs have been fixed that would sometimes cause messages containing markdown and/or HTML elements to be sent incorrectly.</li>
|
||||
<li xml:lang="uk">Виправлено кілька помилок, які іноді призводили до неправильного надсилання повідомлень, що містили елементи markdown та/або HTML.</li>
|
||||
<li>The quick switcher can now be controlled using the mouse.</li>
|
||||
<li xml:lang="ar">يمكن التحكم في المبدل السريع باستخدام الفأرة الآن.</li>
|
||||
<li xml:lang="ca">El commutador ràpid ara es pot controlar amb el ratolí.</li>
|
||||
<li xml:lang="ca-valencia">El commutador ràpid ara es pot controlar amb el ratolí.</li>
|
||||
<li xml:lang="it">Ora è possibile controllare il cambio rapido tramite mouse.</li>
|
||||
<li xml:lang="ka">სწრაფი გადამრთველის მართვა ახლა თაგუნათი შეგიძლიათ.</li>
|
||||
<li xml:lang="nl">De snelschakelaar kan nu met de muis worden bediend.</li>
|
||||
<li xml:lang="pt-BR">O seletor rápido agora pode ser controlado usando o mouse.</li>
|
||||
<li xml:lang="ru">Для быстрого переключения теперь возможно использовать мышь;</li>
|
||||
<li xml:lang="sl">Hitri preklopnik je zdaj mogoče upravljati z miško.</li>
|
||||
<li xml:lang="tr">The quick switcher can now be controlled using the mouse.</li>
|
||||
<li xml:lang="uk">У новій версії швидким перемикачем можна керувати за допомогою миші.</li>
|
||||
<li>There is now an option to disable automatic room sidebar opening when resizing the window.</li>
|
||||
<li xml:lang="ar">يتوفر الآن خيار لتعطيل الفتح الآلي للشريط الجانبي للغرفة عند تغيير حجم النافذة.</li>
|
||||
<li xml:lang="ca">Ara hi ha una opció per a desactivar l'obertura automàtica de la barra lateral de la sala en canviar la mida de la finestra.</li>
|
||||
<li xml:lang="ca-valencia">Ara hi ha una opció per a desactivar l'obertura automàtica de la barra lateral de la sala en canviar la mida de la finestra.</li>
|
||||
<li xml:lang="it">Ora è disponibile un'opzione per disattivare l'apertura automatica della barra laterale della stanza quando si ridimensiona la finestra.</li>
|
||||
<li xml:lang="ka">ახლა გაქვთ არჩევანი, რომ გამორთოთ ავტომატური ოთახის გვერდითი პანელის გახსნა ფანჯრის ზომის შეცვლისას.</li>
|
||||
<li xml:lang="nl">Er is nu een optie om het automatisch openen van de roomzijbalk bij het wijzigen van de venstergrootte uit te schakelen.</li>
|
||||
<li xml:lang="pt-BR">Agora existe uma opção para desativar a abertura automática da barra lateral da sala ao redimensionar a janela.</li>
|
||||
<li xml:lang="ru">Добавлена возможность отключить автоматическое открытие боковой панели комнат при изменении размера окна;</li>
|
||||
<li xml:lang="sl">Zdaj je na voljo možnost onemogočanja samodejnega odpiranja stranske vrstice sobe pri spreminjanju velikosti okna.</li>
|
||||
<li xml:lang="tr">There is now an option to disable automatic room sidebar opening when resizing the window.</li>
|
||||
<li xml:lang="uk">У новій версії передбачено пункт вимикання автоматичного відкриття бічної панелі кімнати під час зміни розміру вікна.</li>
|
||||
<li>Creation of custom emojis has been fixed.</li>
|
||||
<li xml:lang="ar">أُصلح إنشاء الرموز التعبيرية المخصصة.</li>
|
||||
<li xml:lang="ca">S'ha corregit la creació d'emojis personalitzats.</li>
|
||||
<li xml:lang="ca-valencia">S'ha corregit la creació d'emoji personalitzats.</li>
|
||||
<li xml:lang="es">Se ha corregido la creación de emojis personalizados.</li>
|
||||
<li xml:lang="he">יצירת אמוג׳ים בהתאמה אישית תוקנה.</li>
|
||||
<li xml:lang="ia">Creation de emojis personalisate ha essite corrigite.</li>
|
||||
<li xml:lang="it">È stata corretta la creazione di emoji personalizzate.</li>
|
||||
<li xml:lang="ka">გასწორდა მომხმარებლის ემოჯიების შექმნა.</li>
|
||||
<li xml:lang="nl">Het aanmaken van aangepaste emoji's is nu verholpen.</li>
|
||||
<li xml:lang="pt-BR">A criação de emojis personalizados foi corrigida.</li>
|
||||
<li xml:lang="ru">Исправлено создание пользовательских эмодзи;</li>
|
||||
<li xml:lang="sl">Ustvarjanje čustvenčkov po meri je bilo popravljeno.</li>
|
||||
<li xml:lang="tr">Creation of custom emojis has been fixed.</li>
|
||||
<li xml:lang="uk">Виправлено створення нетипових емоційок.</li>
|
||||
<li>Editing or replying to the last message using the keyboard shortcuts now works correctly.</li>
|
||||
<li xml:lang="ar">يعمل تحرير الرسالة الأخيرة أو الرد عليها باستخدام اختصارات لوحة المفاتيح بشكل صحيح الآن.</li>
|
||||
<li xml:lang="ca">L'edició o la resposta a l'últim missatge utilitzant les dreceres de teclat ara funciona correctament.</li>
|
||||
<li xml:lang="ca-valencia">L'edició o la resposta a l'últim missatge utilitzant les dreceres de teclat ara funciona correctament.</li>
|
||||
<li xml:lang="he">עריכה או תגובה להודעה האחרונה באמצעות מקשי קיצור במקלדת עובדת כראוי מעתה.</li>
|
||||
<li xml:lang="it">Ora la modifica o la risposta all'ultimo messaggio tramite le scorciatoie da tastiera funzionano correttamente.</li>
|
||||
<li xml:lang="ka">ბოლო შეტყობინების ჩასწორება და მასზე პასუხი კლავიატურის მალსახმობებით ახლა სწორად მუშაობს.</li>
|
||||
<li xml:lang="nl">Het bewerken of beantwoorden van het laatste bericht met behulp van de sneltoetsen werkt nu correct.</li>
|
||||
<li xml:lang="pt-BR">Agora, editar ou responder à última mensagem usando os atalhos de teclado funciona corretamente.</li>
|
||||
<li xml:lang="ru">Исправлена работа комбинаций клавиш для редактирования или ответа на последнее сообщение.</li>
|
||||
<li xml:lang="sl">Urejanje ali odgovarjanje na zadnje sporočilo z uporabo bližnjic na tipkovnici zdaj deluje pravilno.</li>
|
||||
<li xml:lang="tr">Editing or replying to the last message using the keyboard shortcuts now works correctly.</li>
|
||||
<li xml:lang="uk">Відновлено належну роботу редагування або створення відповіді на останнє повідомлення за допомогою клавіатурних скорочень.</li>
|
||||
<li>When switching between rooms using the keyboard, the switching direction is now correct.</li>
|
||||
<li xml:lang="ar">عند التبديل بين الغرف باستخدام لوحة المفاتيح، يكون اتجاه التبديل صحيحاً الآن.</li>
|
||||
<li xml:lang="ca">Quan es canvia entre sales utilitzant el teclat, la direcció de commutació ara és correcta.</li>
|
||||
<li xml:lang="ca-valencia">Quan es canvia entre sales utilitzant el teclat, la direcció de commutació ara és correcta.</li>
|
||||
<li xml:lang="he">בעת מעבר בין חדרים בעזרת המקלדת, כיוון ההחלפה הוא נכון מעתה.</li>
|
||||
<li xml:lang="it">Quando si passa da una stanza all'altra tramite la tastiera, la direzione del cambio è ora corretta.</li>
|
||||
<li xml:lang="ka">ოთახებს შორის კლავიატურით გადართვისას გადართვის მიმართულება ახლა სწორია.</li>
|
||||
<li xml:lang="nl">Bij het wisselen tussen rooms met behulp van het toetsenbord is de wisselrichting nu correct.</li>
|
||||
<li xml:lang="pt-BR">Ao alternar entre salas usando o teclado, a direção da alternância agora está correta.</li>
|
||||
<li xml:lang="ru">При переключении между комнатами с клавиатуры направление переключения теперь корректное;</li>
|
||||
<li xml:lang="sl">Pri preklapljanju med sobami s tipkovnico je smer preklapljanja zdaj pravilna.</li>
|
||||
<li xml:lang="tr">When switching between rooms using the keyboard, the switching direction is now correct.</li>
|
||||
<li xml:lang="uk">Реалізовано правильний напрямок при перемиканні між кімнатами за допомогою клавіатури.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
@@ -984,14 +852,10 @@
|
||||
<p xml:lang="ar">يتيح نيوتشات الآن ترشيح ودخول الغرفة مباشرة من KRunner (بحث بلازما). وبالإضافة إلى ذلك، تتوفر إصلاحات متنوعة للعلل المتعلقة بتنبيهات الكتابة.</p>
|
||||
<p xml:lang="ca">El NeoChat ara permet filtrar i entrar a una sala directament des del KRunner (Cerca del Plasma). A part d'això també hi ha diverses correccions d'errors pel que fa a les notificacions d'escriptura.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat ara permet filtrar i entrar a una sala directament des de KRunner (Busca de Plasma). A part d'açò també hi ha diverses esmenes d'errors pel que fa a les notificacions d'escriptura.</p>
|
||||
<p xml:lang="it">NeoChat ora consente di filtrare e accedere a una stanza direttamente da KRunner (Plasma Search). Oltre a ciò, sono state apportate diverse correzioni di bug riguardanti le notifiche di digitazione.</p>
|
||||
<p xml:lang="ka">NeoChat ახლა საშუალებას გაძლევთ, გაფილტროთ და შეხვიდეთ ოთახში პირდაპი KRunner-დან (Plasma-ის ძებნა). ამის გარდა ასევე გასწორდა სხვადასხვა შეცდომა კრეფის გაფრთხილების შესახებ.</p>
|
||||
<p xml:lang="nl">NeoChat biedt nu de mogelijkheid om rechtstreeks vanuit KRunner (Plasma zoeken) een chatroom te filteren en binnen te gaan. Daarnaast zijn er diverse reparaties van fouten doorgevoerd met betrekking tot de meldingen over typen.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat agora permite filtrar e entrar em uma sala diretamente do KRunner (Busca do Plasma). Além disso, também foram feitas diversas correções de bugs relacionados às notificações de digitação.</p>
|
||||
<p xml:lang="ru">Добавлена возможность фильтрации и входа в комнату прямо из KRunner (поиск Plasma). Кроме того, исправлены различные ошибки, связанные с уведомлениями о наборе текста.</p>
|
||||
<p xml:lang="sl">NeoChat zdaj omogoča filtriranje in vstop v sobo neposredno iz KRunnerja (iskanje v Plasmi). Poleg tega so bile odpravljene tudi različne napake v zvezi z obvestili o tipkanju.</p>
|
||||
<p xml:lang="tr">NeoChat now lets you filter and enter a room directly from KRunner (Plasma Search). Aside from that there is also various bug fixes regarding the typing notifications.</p>
|
||||
<p xml:lang="uk">У новій версії NeoChat уможливлено фільтрування та вхід до кімнати безпосередньо з KRunner (Пошуку Плазми). Окрім цього, також виправлено різні помилки щодо сповіщень про введення тексту.</p>
|
||||
</description>
|
||||
</release>
|
||||
<release version="22.02" date="2022-02-09">
|
||||
@@ -1000,96 +864,61 @@
|
||||
<p xml:lang="ar">يركز نيوتشات 22.02 على الاستقرار ويضيف بعض تحسينات جودة الاستخدام</p>
|
||||
<p xml:lang="ca">El NeoChat 22.02 se centra en l'estabilitat i afegeix algunes millores de qualitat de vida</p>
|
||||
<p xml:lang="ca-valencia">NeoChat 22.02 se centra en l'estabilitat i afig algunes millores de qualitat de vida</p>
|
||||
<p xml:lang="he">NeoChat 22.02 מתמקד ביציבות ומוסיף מגוון שיפורים באיכות החיים</p>
|
||||
<p xml:lang="it">NeoChat 22.02 si concentra sulla stabilità e aggiunge alcuni miglioramenti alla qualità della vita</p>
|
||||
<p xml:lang="ka">NeoChat 22.02-ის ფოკუსია სტაბილურობა და ამატებს რამდენიმე ცხოვრების დონის გაუმჯობესებას</p>
|
||||
<p xml:lang="nl">NeoChat 22.02 richt zich op stabiliteit en voegt een aantal verbeteringen toe die het gebruiksgemak vergroten.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat 22.02 foca na estabilidade e adiciona algumas melhorias de usabilidade</p>
|
||||
<p xml:lang="ru">В NeoChat 22.02 основное внимание уделено стабильности и добавлено несколько улучшений для удобства использования.</p>
|
||||
<p xml:lang="sl">NeoChat 22.02 se osredotoča na stabilnost in dodaja nekaj izboljšav kakovosti življenja</p>
|
||||
<p xml:lang="tr">NeoChat 22.02 focus on stability and adds a few quality of life improvements</p>
|
||||
<p xml:lang="uk">Акцент у NeoChat 22.02 зосереджено на стабільності та додано кілька удосконалень, пов'язаних із зручністю</p>
|
||||
<ul>
|
||||
<li>Add support for minimizing to system tray on startup</li>
|
||||
<li xml:lang="ar">إضافة دعم التصغير إلى صينية النظام عند بدء التشغيل</li>
|
||||
<li xml:lang="ca">Afegeix la implementació per a minimitzar a la safata del sistema en iniciar</li>
|
||||
<li xml:lang="ca-valencia">Afig la implementació per a minimitzar a la safata del sistema en iniciar</li>
|
||||
<li xml:lang="he">נוספה תמיכה למזעור לשורת המערכת עם ההפעלה</li>
|
||||
<li xml:lang="it">Aggiunge il supporto per la minimizzazione nella barra delle applicazioni all'avvio</li>
|
||||
<li xml:lang="ka">დაემატა გაშვებისას საათთან ჩაკეცვის მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Voeg ondersteuning toe voor het minimaliseren naar het systeemvak bij het opstarten</li>
|
||||
<li xml:lang="pt-BR">Adicionado suporte para minimizar para a bandeja do sistema na inicialização</li>
|
||||
<li xml:lang="ru">Добавлена поддержка сворачивания в системный лоток при запуске;</li>
|
||||
<li xml:lang="sl">Dodajte podporo za minimitziranje v sistemsko vrstico ob zagonu</li>
|
||||
<li xml:lang="tr">Add support for minimizing to system tray on startup</li>
|
||||
<li xml:lang="uk">Додано підтримку мінімізації до системного лотка після запуску</li>
|
||||
<li>Improved internet connectivity check</li>
|
||||
<li xml:lang="ar">تحسين فحص الاتصال بالإنترنت</li>
|
||||
<li xml:lang="ca">Millora de la verificació de la connectivitat a Internet</li>
|
||||
<li xml:lang="ca-valencia">Millora de la verificació de la connectivitat a Internet</li>
|
||||
<li xml:lang="es">Se ha mejorado la comprobación de la conectividad con internet.</li>
|
||||
<li xml:lang="he">בדיקת החיבור לאינטרנט השתפרה</li>
|
||||
<li xml:lang="it">Controllo della connettività Internet migliorato</li>
|
||||
<li xml:lang="ka">გაუმჯობესდა ინტერნეტკავშირის შემოწმება</li>
|
||||
<li xml:lang="nl">Verbeterde controle van internetverbinding</li>
|
||||
<li xml:lang="pt-BR">Verificação de conectividade de internet aprimorada</li>
|
||||
<li xml:lang="ru">Улучшена проверка подключения к Интернету;</li>
|
||||
<li xml:lang="sl">Izboljšano preverjanje internetne povezave</li>
|
||||
<li xml:lang="tr">Improved internet connectivity check</li>
|
||||
<li xml:lang="uk">Удосконалено перевірку можливості з'єднання з інтернетом</li>
|
||||
<li>Add support for sharing images and files with other apps (Nextcloud, Imgur, ...)</li>
|
||||
<li xml:lang="ar">إضافة دعم مشاركة الصور والملفات مع تطبيقات أخرى (نكست كلاود، إمجور، ...)</li>
|
||||
<li xml:lang="ca">Afegeix la implementació per a compartir imatges i fitxers amb altres aplicacions (Nextcloud, Imgur...)</li>
|
||||
<li xml:lang="ca-valencia">Afig la implementació per a compartir imatges i fitxers amb altres aplicacions (Nextcloud, Imgur…)</li>
|
||||
<li xml:lang="es">Se ha añadido compatibilidad para compartir imágenes y archivos con otras aplicaciones (Nextcloud, Imgur, etc.).</li>
|
||||
<li xml:lang="he">נוספה תמיכה בשיתוף תמונות וקבצים עם יישומים אחרים (Nextcloud, Imgur, …)</li>
|
||||
<li xml:lang="it">Aggiunge il supporto per la condivisione di immagini e file con altre applicazioni (Nextcloud, Imgur, ...)</li>
|
||||
<li xml:lang="ka">დაემატა გამოსახულებებისა და ფაილების სხვა აპებთან (Nextcloud, Imgur,...) გაზიარების მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Voeg ondersteuning toe voor het delen van afbeeldingen en bestanden met andere toepassingen (Nextcloud,Imgur, ...).</li>
|
||||
<li xml:lang="pt-BR">Adicionado suporte para compartilhamento de imagens e arquivos com outros aplicativos (Nextcloud, Imgur, ...)</li>
|
||||
<li xml:lang="ru">Добавлена возможность обмена изображениями и файлами с другими приложениями (Nextcloud, Imgur, и прочими службами);</li>
|
||||
<li xml:lang="sl">Doda podporo za deljenje slik in datotek z drugimi aplikacijami (Nextcloud, Imgur, ...)</li>
|
||||
<li xml:lang="tr">Add support for sharing images and files with other apps (Nextcloud, Imgur, ...)</li>
|
||||
<li xml:lang="uk">Додано підтримку оприлюднення зображень і файлів за допомогою інших програм (Nextcloud, Imgur, ...)</li>
|
||||
<li>Implement adding labels for account. This allow for an easier organization when using multiple accounts.</li>
|
||||
<li xml:lang="ar">تطبيق إضافة لصائق للحساب. يسمح هذا بتنظيم أسهل عند استخدام حسابات متعددة.</li>
|
||||
<li xml:lang="ca">Implementa l'addició d'etiquetes al compte. Això permet una organització més fàcil quan s'utilitzen diversos comptes.</li>
|
||||
<li xml:lang="ca-valencia">Implementa l'addició d'etiquetes al compte. Açò permet una organització més fàcil quan s'utilitzen diversos comptes.</li>
|
||||
<li xml:lang="he">מומשה הוספהת תוויות לחשבון. כך אפשר לסדר בקלות יותר כשמשתמשים במגוון חשבונות.</li>
|
||||
<li xml:lang="it">Implementa l'aggiunta di etichette per account. Ciò semplifica l'organizzazione quando si utilizzano più account.</li>
|
||||
<li xml:lang="ka">ახლა ანგარიშებს შეიძლიათ, ჭდეები დაამატოთ. ეს აადვილებს ორგანიზებას, როცა ერთზე მეტ ანგარიშს იყენებთ.</li>
|
||||
<li xml:lang="nl">Voeg labels toe aan accounts. Dit maakt een overzichtelijkere organisatie mogelijk bij het gebruik van meerdere accounts.</li>
|
||||
<li xml:lang="pt-BR">Implementada a adição de etiquetas para contas. Isso facilita a organização ao usar várias contas.</li>
|
||||
<li xml:lang="ru">Реализовано добавление меток для учётных записей; это упрощает организацию при использовании нескольких учётных записей.</li>
|
||||
<li xml:lang="sl">Implementira dodajanje oznak za račun. To omogoča lažjo organizacijo pri uporabi več računov.</li>
|
||||
<li xml:lang="tr">Implement adding labels for account. This allow for an easier organization when using multiple accounts.</li>
|
||||
<li xml:lang="uk">Реалізовано додавання міток до облікового запису. Це спрощує упорядковування під час використання кількох облікових записів.</li>
|
||||
<li>Redesign of our config dialogs to follow the new Plasma System Settings style</li>
|
||||
<li xml:lang="ar">إعادة تصميم حوارات الضبط لاتباع نمط إعدادات نظام بلازما الجديد</li>
|
||||
<li xml:lang="ca">Redisseny dels diàlegs de configuració per a seguir l'estil nou de l'arranjament del sistema del Plasma</li>
|
||||
<li xml:lang="ca-valencia">Redisseny dels diàlegs de configuració per a seguir l'estil nou de Configuració del sistema de Plasma</li>
|
||||
<li xml:lang="he">חלוניות ההגדרות שלנו עוצבו מחדש כך שתיראנה יותר כמו סגנון הגדרות מערכת פלזמה החדש</li>
|
||||
<li xml:lang="it">Riprogettazione delle nostre finestre di configurazione per seguire il nuovo stile delle impostazioni di sistema di Plasma</li>
|
||||
<li xml:lang="ka">შეიცვალა დიზაინი კონფიგურაციის დიალოგებისთვის, რომ ისინი Plasma-ის სისტემური პარამეტრების სტილს მიჰყვებოდნენ</li>
|
||||
<li xml:lang="nl">Het ontwerp van onze configuratiedialogen is aangepast aan de nieuwe stijl van de Plasma-systeeminstellingen</li>
|
||||
<li xml:lang="pt-BR">Redesenho das caixas de diálogo de configuração para seguir o novo estilo das Configurações do Sistema do Plasma.</li>
|
||||
<li xml:lang="ru">Реализован редизайн диалогов настройки в соответствии со стилем нового приложения «Параметры системы» Plasma;</li>
|
||||
<li xml:lang="sl">Preoblikovanje naših konfiguracijskih pogovornih oken, da sledijo novemu slogu nastavitev sistema Plasma</li>
|
||||
<li xml:lang="tr">Redesign of our config dialogs to follow the new Plasma System Settings style</li>
|
||||
<li xml:lang="uk">Перероблено дизайн наших діалогових вікон налаштування відповідно до нового стилю «Системних параметрів» Плазми</li>
|
||||
<li>Fix various others issues and small feature requests. Decreasing the total amount of open issues by 20%.</li>
|
||||
<li xml:lang="ar">إصلاح قضايا متنوعة أخرى وطلبات ميزات صغيرة، مما يقلل إجمالي القضايا المفتوحة بنسبة 20%.</li>
|
||||
<li xml:lang="ca">Corregeix diversos problemes i peticions de funcionalitats petites. Disminució de la quantitat total de problemes oberts en un 20%.</li>
|
||||
<li xml:lang="ca-valencia">Corregix diversos problemes i peticions de característiques xicotetes. Disminució de la quantitat total de problemes oberts en un 20%.</li>
|
||||
<li xml:lang="he">תוקנו מגוון תקלות שונות ובקשות מימוש קטנות. מה שמקטין את כמות הסוגיות הפתוחות ב־20%.</li>
|
||||
<li xml:lang="it">Corregge vari altri problemi e richieste di piccole funzionalità. Riduzione del 20% del numero totale di problemi aperti.</li>
|
||||
<li xml:lang="ka">გასწორდა სხვადასხვა შეცდომები და პატარა ფუნქციის მოთხოვნები. ღია პრობლემების ჯამური რაოდენობა შემცირდა 20%-ით.</li>
|
||||
<li xml:lang="nl">Diverse andere problemen en kleine functieverzoeken opgelost. Het totale aantal openstaande problemen met 20% verminderd.</li>
|
||||
<li xml:lang="pt-BR">Corrigido diversos outros problemas e implementação de pequenas solicitações de melhorias. Reduzido o número total de bugs em aberto em 20%.</li>
|
||||
<li xml:lang="ru">Исправлены прочие ошибки и реализованы небольшие запросы на новые возможности; общее количество открытых проблем сокращено на 20%.</li>
|
||||
<li xml:lang="sl">Odpravi različne druge težave in manjše zahteve za zmožnosti. Zmanjšajte skupno število odprtih težav za 20%.</li>
|
||||
<li xml:lang="tr">Fix various others issues and small feature requests. Decreasing the total amount of open issues by 20%.</li>
|
||||
<li xml:lang="uk">Виправлення різних інших проблем та невеликих запитів на нові функції. Зменшення загальної кількості відкритих вад на 20%.</li>
|
||||
</ul>
|
||||
</description>
|
||||
<url>https://www.plasma-mobile.org/2022/02/09/plasma-mobile-gear-22-02/#neochat</url>
|
||||
@@ -1101,219 +930,140 @@
|
||||
<p xml:lang="ca">El NeoChat 21.12 aporta moltes funcionalitats noves i correccions</p>
|
||||
<p xml:lang="ca-valencia">NeoChat 21.12 aporta moltes característiques noves i correccions</p>
|
||||
<p xml:lang="es">NeoChat 21.12 proporciona muchas funciones nuevas y correcciones.</p>
|
||||
<p xml:lang="he">ב־NeoChat 21.12 הוצגו מגוון יכולות ותיקונים חדשים</p>
|
||||
<p xml:lang="it">NeoChat 21.12 porta con sé tante nuove funzionalità e correzioni</p>
|
||||
<p xml:lang="ka">NeoChat 21.12 ბევრ ახალი ფუნქციას და შეცდომების გასწორებას შეიცავს</p>
|
||||
<p xml:lang="nl">NeoChat 21.12 brengt veel nieuwe functies en reparaties van fouten met zich mee.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat 21.12 traz muitas novidades e correções</p>
|
||||
<p xml:lang="ru">В NeoChat 21.12 добавлено множество новых возможностей и исправлений</p>
|
||||
<p xml:lang="sl">NeoChat 21.12 prinaša veliko novih zmožnosti in popravkov</p>
|
||||
<p xml:lang="tr">NeoChat 21.12 brings lots of new features and fixes</p>
|
||||
<p xml:lang="uk">У NeoChat 21.12 реалізовано багато нових можливостей і виправлень</p>
|
||||
<ul>
|
||||
<li>Solved various problems related to login, logout and account switching</li>
|
||||
<li xml:lang="ar">حُلّت مشكلات متنوعة متعلقة بالولوج والخروج وتبديل الحسابات</li>
|
||||
<li xml:lang="ca">S'han resolt diversos problemes relacionats amb l'inici de sessió, la sortida i el canvi de compte</li>
|
||||
<li xml:lang="ca-valencia">S'han resolt diversos problemes relacionats amb l'inici de sessió, l'eixida i el canvi de compte</li>
|
||||
<li xml:lang="es">Se han solucionado diversos problemas relacionados con el inicio y el cierre de sesión y con el cambio de cuenta.</li>
|
||||
<li xml:lang="he">נפתרו מספר בעיות שקשורות בכניסה ויציאה לחשבון והחלפת חשבונות</li>
|
||||
<li xml:lang="it">Risolti vari problemi relativi all'accesso, alla disconnessione e al cambio di account</li>
|
||||
<li xml:lang="ka">გადაიჭრა შესვლასთან, გასვლასთან და ანგარიშის გადართვასთან დაკავშირებული სხვადასხვა პრობლემა</li>
|
||||
<li xml:lang="nl">Diverse problemen opgelost met betrekking tot aanmelden, afmelden en wisseling van account.</li>
|
||||
<li xml:lang="pt-BR">Resolvidos diversos problemas relacionados a login, logout e troca de contas</li>
|
||||
<li xml:lang="ru">Устранены проблемы, связанные с входом, выходом и переключением учётных записей;</li>
|
||||
<li xml:lang="sl">Rešene različne težave, povezane s prijavo, odjavo in preklapljanjem računov</li>
|
||||
<li xml:lang="tr">Solved various problems related to login, logout and account switching</li>
|
||||
<li xml:lang="uk">Виправлено різноманітні проблеми, пов'язані із входом, виходом та перемиканням облікових записів</li>
|
||||
<li>Fixed a few problems in the timeline layout</li>
|
||||
<li xml:lang="ar">أُصلحت بعض المشكلات في مخطط الخط الزمني</li>
|
||||
<li xml:lang="ca">S'han corregit alguns problemes en la disposició de la línia de temps</li>
|
||||
<li xml:lang="ca-valencia">S'han corregit alguns problemes en la disposició de la línia de temps</li>
|
||||
<li xml:lang="es">Se han corregido varios problemas en la disposición de la línea de tiempo</li>
|
||||
<li xml:lang="he">תוקנו מספר בעיות בפריסת ציר הזמן</li>
|
||||
<li xml:lang="it">Corretti alcuni problemi nella disposizione della linea temporale</li>
|
||||
<li xml:lang="ka">გასწორდა დროის ხაზის განლაგების რამდენიმე პრობლემა</li>
|
||||
<li xml:lang="nl">Enkele problemen in de tijdlijnindeling zijn opgelost</li>
|
||||
<li xml:lang="pt-BR">Corrigidos alguns problemas no layout da linha do tempo</li>
|
||||
<li xml:lang="ru">Исправлены некоторые проблемы в расположении ленты событий;</li>
|
||||
<li xml:lang="sl">Odpravljenih je bilo nekaj težav v postavitvi časovnice</li>
|
||||
<li xml:lang="tr">Fixed a few problems in the timeline layout</li>
|
||||
<li xml:lang="uk">Виправлено декілька проблем із компонуванням розкладу</li>
|
||||
<li>Added Spell checking while writing a message</li>
|
||||
<li xml:lang="ar">أُضيف التدقيق الإملائي أثناء كتابة الرسالة</li>
|
||||
<li xml:lang="ca">S'ha afegit la verificació ortogràfica mentre s'escriu un missatge</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit la verificació ortogràfica mentre s'escriu un missatge</li>
|
||||
<li xml:lang="es">Se ha añadido comprobación ortográfica durante la escritura de mensajes.</li>
|
||||
<li xml:lang="he">נוספה בדיקת איות בזמן כתיבת הודעות</li>
|
||||
<li xml:lang="it">Aggiunto il controllo ortografico durante la scrittura di un messaggio</li>
|
||||
<li xml:lang="ka">დაემატა მართლწერის შემოწმება შეტყობინების წერისას</li>
|
||||
<li xml:lang="nl">Spellingcontrole toegevoegd tijdens het schrijven van een bericht</li>
|
||||
<li xml:lang="pt-BR">Adicionada verificação ortográfica durante a escrita de mensagens</li>
|
||||
<li xml:lang="ru">Добавлена проверка орфографии при написании сообщения;</li>
|
||||
<li xml:lang="sl">Dodano preverjanje črkovanja med pisanjem sporočila</li>
|
||||
<li xml:lang="tr">Added Spell checking while writing a message</li>
|
||||
<li xml:lang="uk">Додано перевірку правопису під час написання повідомлення</li>
|
||||
<li>Improved Settings pages</li>
|
||||
<li xml:lang="ar">تحسين صفحات الإعدادات</li>
|
||||
<li xml:lang="ca">Pàgines de configuració millorades</li>
|
||||
<li xml:lang="ca-valencia">Pàgines de configuració millorades</li>
|
||||
<li xml:lang="es">Se han mejorado las páginas de preferencias.</li>
|
||||
<li xml:lang="he">עמודי ההגדרות השתפרו</li>
|
||||
<li xml:lang="it">Pagine delle impostazioni migliorate</li>
|
||||
<li xml:lang="ka">გაუმჯობესდა მორგების გვერდები</li>
|
||||
<li xml:lang="nl">Verbeterde instellingenpagina's</li>
|
||||
<li xml:lang="pt-BR">Páginas de configurações aprimoradas</li>
|
||||
<li xml:lang="ru">Улучшены страницы настроек;</li>
|
||||
<li xml:lang="sl">Izboljšane strani z nastavitvami</li>
|
||||
<li xml:lang="tr">Improved Settings pages</li>
|
||||
<li xml:lang="uk">Удосконалено сторінку параметрів</li>
|
||||
<li>Many improvements to the android and general mobile support</li>
|
||||
<li xml:lang="ar">تحسينات كثيرة لدعم أندرويد والأجهزة المحمولة بشكل عام</li>
|
||||
<li xml:lang="ca">Moltes millores a l'Android i suport general de mòbils</li>
|
||||
<li xml:lang="ca-valencia">Moltes millores a Android i suport general de mòbils</li>
|
||||
<li xml:lang="he">מגוון שיפורים לתמיכה ב־Android ובניידים בכלל</li>
|
||||
<li xml:lang="it">Molti miglioramenti al supporto Android e mobile in generale</li>
|
||||
<li xml:lang="ka">ბევრი გაუმჯობესება Android-ის და ზოგადი მობილური მხარდაჭერაში</li>
|
||||
<li xml:lang="nl">Veel verbeteringen aan de Android- en algemene mobiele ondersteuning</li>
|
||||
<li xml:lang="pt-BR">Muitas melhorias no Android e no suporte geral para dispositivos móveis</li>
|
||||
<li xml:lang="ru">Многочисленные улучшения для Android и мобильных устройств в целом;</li>
|
||||
<li xml:lang="sl">Številne izboljšave podpore za Android in splošno mobilno tehnologijo</li>
|
||||
<li xml:lang="tr">Many improvements to the android and general mobile support</li>
|
||||
<li xml:lang="uk">Багато удосконалень у версії для android та загальній підтримці мобільних пристроїв</li>
|
||||
<li>Show blurhashes while images load</li>
|
||||
<li xml:lang="ar">عرض blurhashes أثناء تحميل الصور</li>
|
||||
<li xml:lang="ca">Mostra «blurhashes» mentre es carreguen les imatges</li>
|
||||
<li xml:lang="ca-valencia">Mostra «blurhashes» mentre es carreguen les imatges</li>
|
||||
<li xml:lang="it">Mostra i trattini sfocati durante il caricamento delle immagini</li>
|
||||
<li xml:lang="ka">დაბინდული ადგილების ჩვენება, სანამ გამოსახულებები ჩაიტვირთება</li>
|
||||
<li xml:lang="nl">Toon wazige hashes terwijl de afbeeldingen laden</li>
|
||||
<li xml:lang="pt-BR">Exibir os ícones de desfoque enquanto as imagens carregam</li>
|
||||
<li xml:lang="ru">Отображение размытых хешей во время загрузки изображений;</li>
|
||||
<li xml:lang="sl">Prikaži zamegljene črtice med nalaganjem slik</li>
|
||||
<li xml:lang="tr">Show blurhashes while images load</li>
|
||||
<li xml:lang="uk">Реалізовано пошук розмитої схеми, доки завантажується зображення</li>
|
||||
<li>Support showing custom emojis</li>
|
||||
<li xml:lang="ar">دعم عرض الرموز التعبيرية المخصصة</li>
|
||||
<li xml:lang="ca">Permet mostrar emojis personalitzats</li>
|
||||
<li xml:lang="ca-valencia">Permet mostrar emoji personalitzats</li>
|
||||
<li xml:lang="es">Compatibilidad con emojis personalizados.</li>
|
||||
<li xml:lang="he">תמיכה בהצגת אמוג׳ים מותאמים אישית</li>
|
||||
<li xml:lang="it">Supporto per la visualizzazione di emoji personalizzati</li>
|
||||
<li xml:lang="ka">მორგებული ემოჯიების ჩვენების მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Ondersteuning voor het weergeven van aangepaste emoji's</li>
|
||||
<li xml:lang="pt-BR">Suporte para exibição de emojis personalizados</li>
|
||||
<li xml:lang="ru">Отображение пользовательских эмодзи;</li>
|
||||
<li xml:lang="sl">Podpora za prikazovanje čustvenčkov po meri</li>
|
||||
<li xml:lang="tr">Support showing custom emojis</li>
|
||||
<li xml:lang="uk">Підтримка показу нетипових емоційок</li>
|
||||
<li>Added a global menu</li>
|
||||
<li xml:lang="ar">أُضيفت قائمة عامة</li>
|
||||
<li xml:lang="ca">S'ha afegit un menú global</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit un menú global</li>
|
||||
<li xml:lang="es">Se ha añadido un menú global.</li>
|
||||
<li xml:lang="he">נוסף תפריט מקיף</li>
|
||||
<li xml:lang="it">Aggiunto un menu globale</li>
|
||||
<li xml:lang="ka">დაემატა გლობალური მენიუ</li>
|
||||
<li xml:lang="nl">Een globaal menu toegevoegd</li>
|
||||
<li xml:lang="pt-BR">Adicionado um menu global</li>
|
||||
<li xml:lang="ru">Добавлено глобальное меню;</li>
|
||||
<li xml:lang="sl">Dodan globalni meni</li>
|
||||
<li xml:lang="tr">Added a global menu</li>
|
||||
<li xml:lang="uk">Додано загальне меню</li>
|
||||
<li>Added support for spoilers</li>
|
||||
<li xml:lang="ar">أُضيف دعم المحتوى المحروق</li>
|
||||
<li xml:lang="ca">S'ha afegit la implementació per als espòilers</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit la implementació per als espòilers</li>
|
||||
<li xml:lang="he">נוספה תמיכה בקלקלנים</li>
|
||||
<li xml:lang="it">Aggiunto supporto per gli spoiler</li>
|
||||
<li xml:lang="ka">დაემატა სპოილერების მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Ondersteuning voor spoilers toegevoegd</li>
|
||||
<li xml:lang="pt-BR">Adicionado suporte para spoilers</li>
|
||||
<li xml:lang="ru">Добавлена поддержка скрытого текста;</li>
|
||||
<li xml:lang="sl">Dodana podpora za spojlerje</li>
|
||||
<li xml:lang="tr">Added support for spoilers</li>
|
||||
<li xml:lang="uk">Додано підтримку спойлерів</li>
|
||||
<li>Added a quick switcher to switch between rooms</li>
|
||||
<li xml:lang="ar">أُضيف مبدل سريع للتبديل بين الغرف</li>
|
||||
<li xml:lang="ca">S'ha afegit un commutador ràpid per a canviar entre sales</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit un commutador ràpid per a canviar entre sales</li>
|
||||
<li xml:lang="es">Se ha añadido un selector rápido para cambiar de sala.</li>
|
||||
<li xml:lang="he">נוסף בורר מהיר למעבר בין חדרים</li>
|
||||
<li xml:lang="it">Aggiunto un commutatore rapido per passare da una stanza all'altra</li>
|
||||
<li xml:lang="ka">დაემატა სწრაფი გადამრთველი ოთახებს შორის</li>
|
||||
<li xml:lang="nl">Een snelschakelaar toegevoegd om tussen rooms te wisselen</li>
|
||||
<li xml:lang="pt-BR">Adicionado um botão de troca rápida para alternar entre salas</li>
|
||||
<li xml:lang="ru">Добавлен быстрый переключатель для перехода между комнатами;</li>
|
||||
<li xml:lang="sl">Dodan hitri preklopnik za preklapljanje med sobami</li>
|
||||
<li xml:lang="tr">Added a quick switcher to switch between rooms</li>
|
||||
<li xml:lang="uk">Додано швидкий перемикач між кімнатами</li>
|
||||
<li>Added support for an optional fancy blur background effect</li>
|
||||
<li xml:lang="ar">أُضيف دعم لتأثير خلفية ضبابية أنيقة اختياري</li>
|
||||
<li xml:lang="ca">S'ha afegit la implementació per a un efecte de difuminat de fons opcional</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit la implementació per a un efecte de difuminat de fons opcional</li>
|
||||
<li xml:lang="he">נוספה תמיכה באפקט רקע מטושטש מרהיב כרשות</li>
|
||||
<li xml:lang="it">Aggiunto supporto per un effetto di sfocatura dello sfondo opzionale</li>
|
||||
<li xml:lang="ka">დაემატა არასავალდებულო მდიდრული ბუნდოვანი ფონის ეფექტის მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Ondersteuning toegevoegd voor een optioneel, fraai wazig achtergrondeffect</li>
|
||||
<li xml:lang="pt-BR">Adicionada a opção de um efeito de desfoque de fundo sofisticado</li>
|
||||
<li xml:lang="ru">Добавлена поддержка необязательного эффекта размытого фона;</li>
|
||||
<li xml:lang="sl">Dodana podpora za izbirni učinek zameglitve ozadja</li>
|
||||
<li xml:lang="tr">Added support for an optional fancy blur background effect</li>
|
||||
<li xml:lang="uk">Додано підтримку додаткового ефекту розмивання тла</li>
|
||||
<li>Resizable left and right drawers</li>
|
||||
<li xml:lang="ar">أدراج يمنى ويسرى قابلة لتغيير الحجم</li>
|
||||
<li xml:lang="ca">Calaixos esquerra i dreta redimensionables</li>
|
||||
<li xml:lang="ca-valencia">Calaixos esquerra i dreta redimensionables</li>
|
||||
<li xml:lang="he">מגירות גמישות משמאל ומימין</li>
|
||||
<li xml:lang="it">Cassetti sinistro e destro ridimensionabili</li>
|
||||
<li xml:lang="ka">ზომაცვლადი მარცხენა და მარჯვენა უჯრები</li>
|
||||
<li xml:lang="nl">Verstelbare lades links en rechts</li>
|
||||
<li xml:lang="pt-BR">Gavetas redimensionáveis à esquerda e à direita</li>
|
||||
<li xml:lang="ru">Изменяемые размеры левой и правой панелей;</li>
|
||||
<li xml:lang="sl">Spremenljiva velikost levega in desnega predala</li>
|
||||
<li xml:lang="tr">Resizable left and right drawers</li>
|
||||
<li xml:lang="uk">Реалізовано ліву і праву бічні ковзні панелі змінної ширини</li>
|
||||
<li>Added Syntax highlighting in raw json messages</li>
|
||||
<li xml:lang="ar">أُضيف تمييز الصيغة في رسائل json الخام</li>
|
||||
<li xml:lang="ca">S'ha afegit el ressaltat de sintaxi en els missatges JSON en brut</li>
|
||||
<li xml:lang="ca-valencia">S'ha afegit el ressaltat de sintaxi en els missatges JSON en brut</li>
|
||||
<li xml:lang="he">נוספה הדגשת תחביר בהודעות json גולמיות</li>
|
||||
<li xml:lang="it">Aggiunta l'evidenziazione della sintassi nei messaggi JSON non elaborati</li>
|
||||
<li xml:lang="ka">დაემატა სინტაქსის გამოკვეთა დაუმუშავებელ JSON შეტყობინებებში</li>
|
||||
<li xml:lang="nl">Accentuering van syntaxis toegevoegd aan onbewerkte JSON-berichten</li>
|
||||
<li xml:lang="pt-BR">Adicionada a coloração de sintaxe em mensagens JSON brutas</li>
|
||||
<li xml:lang="ru">Добавлена подсветка синтаксиса в необработанных JSON-сообщениях;</li>
|
||||
<li xml:lang="sl">Dodano označevanje skladnje v sporočilih raw json</li>
|
||||
<li xml:lang="tr">Added Syntax highlighting in raw json messages</li>
|
||||
<li xml:lang="uk">Додано підсвічування синтаксису у прості повідомлення json</li>
|
||||
<li>Better wayland support</li>
|
||||
<li xml:lang="ar">دعم أفضل لويلاند</li>
|
||||
<li xml:lang="ca">Millor suport del Wayland</li>
|
||||
<li xml:lang="ca-valencia">Millor suport de Wayland</li>
|
||||
<li xml:lang="es">Mejor compatibilidad con Wayland.</li>
|
||||
<li xml:lang="he">תמיכה משופרת ב־Wayland</li>
|
||||
<li xml:lang="it">Miglior supporto Wayland</li>
|
||||
<li xml:lang="ka">Wayland-ის უკეთესი მხარდაჭერა</li>
|
||||
<li xml:lang="nl">Betere Wayland-ondersteuning</li>
|
||||
<li xml:lang="pt-BR">Melhor suporte ao Wayland</li>
|
||||
<li xml:lang="ru">Улучшена поддержка Wayland;</li>
|
||||
<li xml:lang="sl">Boljša podpora za Wayland</li>
|
||||
<li xml:lang="tr">Better wayland support</li>
|
||||
<li xml:lang="uk">Удосконалено підтримку wayland</li>
|
||||
<li>Improved file reception and download</li>
|
||||
<li xml:lang="ar">تحسين استقبال الملفات وتنزيلها</li>
|
||||
<li xml:lang="ca">Recepció i baixada de fitxers millorades</li>
|
||||
<li xml:lang="ca-valencia">Recepció i baixada de fitxers millorades</li>
|
||||
<li xml:lang="es">Se ha mejorado la recepción y la descarga de archivos.</li>
|
||||
<li xml:lang="he">קבלה והורדה משופרת של קבצים</li>
|
||||
<li xml:lang="it">Miglioramento della ricezione e dello scaricamento dei file</li>
|
||||
<li xml:lang="ka">გაუმჯობესდა ფაილების მიღება და გადმოწერა</li>
|
||||
<li xml:lang="nl">Verbeterde bestandsontvangst en -download</li>
|
||||
<li xml:lang="pt-BR">Recepção e download de arquivos aprimorados</li>
|
||||
<li xml:lang="ru">Улучшены приём и загрузка файлов;</li>
|
||||
<li xml:lang="sl">Izboljšan sprejem in prenos datotek</li>
|
||||
<li xml:lang="tr">Improved file reception and download</li>
|
||||
<li xml:lang="uk">Удосконалено прийняття і отримання файлів</li>
|
||||
</ul>
|
||||
</description>
|
||||
<url>https://www.plasma-mobile.org/2021/12/07/plasma-mobile-gear-21-12/</url>
|
||||
@@ -1324,40 +1074,26 @@
|
||||
<p xml:lang="ar">يوفر نيوتشات 1.2 إعادة تصميم كبرى لواجهة المستخدم. تستخدم صفحة الدردشة الآن فقاعات للرسائل، كما أُعيدت كتابة مكون الإدخال بالكامل بمظهر أجمل.</p>
|
||||
<p xml:lang="ca">El NeoChat 1.2 aporta un redisseny important de la interfície d'usuari. La pàgina de xat ara utilitza bombolles per als missatges i el component d'entrada s'ha reescrit completament amb un aspecte més agradable també.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat 1.2 aporta un redisseny important de la interfície d'usuari. La pàgina de xat ara utilitza bambolles per als missatges i el component d'entrada s'ha reescrit completament amb un aspecte més agradable també.</p>
|
||||
<p xml:lang="it">NeoChat 1.2 presenta un'importante riprogettazione dell'interfaccia utente. La pagina della chat ora utilizza le bolle per i messaggi e anche il componente di input è stato completamente riscritto con un aspetto più gradevole.</p>
|
||||
<p xml:lang="ka">NeoChat 1.2 მომხმარებლის ინტერფეისის დიზაინის თითქმის სრულ ცვლილებას შეიცავს. ჩატის გვერდი ახლა შეტყობინებებისთვის ბუშტებს იყენებს და შეყვანის კომპონენტი მთლიანად თავიდანაა დაწერილი, რომ უკეთ გამოიყურებოდეს.</p>
|
||||
<p xml:lang="nl">NeoChat 1.2 brengt een grote herziening van de gebruikersinterface. De chatpagina gebruikt nu bubbels voor de berichten en het invoerveld is volledig opnieuw ontworpen met een mooier uiterlijk.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat 1.2 traz uma grande reformulação da interface do usuário. A página de bate-papo agora utiliza balões para as mensagens e o componente de entrada foi completamente reescrito com um visual mais agradável.</p>
|
||||
<p xml:lang="ru">В версии NeoChat 1.2 полностью изменён пользовательский интерфейс. На странице чата сообщения отображаются в виде пузырей, а компонент ввода был полностью переписан и получил более приятный внешний вид.</p>
|
||||
<p xml:lang="sl">NeoChat 1.2 prinaša veliko prenovo uporabniškega vmesnika. Stran za klepet zdaj uporablja mehurčke za sporočila, vhodna komponenta pa je bila popolnoma prepisana in ima lepši videz.</p>
|
||||
<p xml:lang="tr">NeoChat 1.2 brings a major redesign of the user interface. The chat page is now using bubbles for the messages and the input component was completely rewritten with a nicer look as well.</p>
|
||||
<p xml:lang="uk">NeoChat 1.2 пропонує суттєво перероблений інтерфейс користувача. Сторінка спілкування у новій версії використовує вигулькні панелі для повідомлень, а компонент введення також був повністю переписаний і тепер має приємніший вигляд.</p>
|
||||
<p>It's now possible to send custom reactions by replying to a comment with /react <message>.</p>
|
||||
<p xml:lang="ar">أصبح من الممكن الآن إرسال تفاعلات مخصصة عبر الرد على تعليق بالأمر /react <message>.</p>
|
||||
<p xml:lang="ca">Ara és possible enviar reaccions personalitzades responent a un comentari amb /react <missatge>.</p>
|
||||
<p xml:lang="ca-valencia">Ara és possible enviar reaccions personalitzades responent a un comentari amb /react <missatge>.</p>
|
||||
<p xml:lang="he">מעתה ניתן לשלוח סימני רגש מותאמים אישית על ידי תגובה להערה עם /react <message>.</p>
|
||||
<p xml:lang="it">Ora è possibile inviare reazioni personalizzate rispondendo a un commento con /react <messaggio>.</p>
|
||||
<p xml:lang="ka">ახლა შესაძლებელია მორგებული რეაქციების გაგზავნა კომენტარზე ბრძანებით /react <message> პასუხის საშუალებით.</p>
|
||||
<p xml:lang="nl">Het is nu mogelijk om aangepaste reacties te versturen door op een opmerking te antwoorden met /react <bericht>.</p>
|
||||
<p xml:lang="pt-BR">Agora é possível enviar reações personalizadas respondendo a um comentário com /react <mensagem>.</p>
|
||||
<p xml:lang="ru">Теперь можно отправлять собственные реакции, ответив на сообщение командой /react <сообщение>.</p>
|
||||
<p xml:lang="sl">Zdaj je mogoče poslati odzive po meri tako, da na komentar odgovorite z /react <message>.</p>
|
||||
<p xml:lang="tr">It's now possible to send custom reactions by replying to a comment with /react <message>.</p>
|
||||
<p xml:lang="uk">Тепер можна надсилати власні реакції, відповідаючи на коментар з використанням /react <повідомлення>.</p>
|
||||
<p>NeoChat now supports opening Matrix URIs from your browser.</p>
|
||||
<p xml:lang="ar">يدعم نيوتشات الآن فتح معرفات Matrix URI من المتصفح.</p>
|
||||
<p xml:lang="ca">El NeoChat ara permet obrir els URI de Matrix des del navegador.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat ara permet obrir els URI de Matrix des del navegador.</p>
|
||||
<p xml:lang="he">NeoChat תומך מעתה בפתיחת כתובות פנימיות של Matrix מהדפדפן שלך.</p>
|
||||
<p xml:lang="it">NeoChat ora supporta l'apertura degli URI Matrix dal tuo browser.</p>
|
||||
<p xml:lang="ka">NeoChat-ს ახლა მატრიცის URI-ების გახსნა შეუძლია თქვენი ბრაუზერიდან.</p>
|
||||
<p xml:lang="nl">NeoChat ondersteunt nu het openen van Matrix-URI's vanuit uw browser.</p>
|
||||
<p xml:lang="pt-BR">O NeoChat agora suporta a abertura de URIs do Matrix a partir do seu navegador.</p>
|
||||
<p xml:lang="ru">В NeoChat добавлена поддержка открытия URI Matrix из браузера.</p>
|
||||
<p xml:lang="sl">NeoChat zdaj podpira odpiranje URI-jev Matrix iz vašega brskalnika.</p>
|
||||
<p xml:lang="tr">NeoChat now supports opening Matrix URIs from your browser.</p>
|
||||
<p xml:lang="uk">У новій версії NeoChat передбачено підтримку відкриття адрес Matrix з вашого браузера</p>
|
||||
</description>
|
||||
<url>https://carlschwan.eu/2021/06/01/neochat-1.2/</url>
|
||||
</release>
|
||||
@@ -1368,66 +1104,42 @@
|
||||
<p xml:lang="ar">لعل أبرز ما في هذا الإصدار هو صفحة الولوج الجديدة كلياً. فهي تكتشف ضبط الخادم بناءً على معرف ماتركس الخاص بك. يتيح هذا الولوج إلى الخوادم التي تتطلب الولوج الموحد (SSO) (مثل خوادم موزيلا أو خادم ماتركس القادم لفيدورا).</p>
|
||||
<p xml:lang="ca">Probablement el més destacat d'aquest llançament és la pàgina d'inici de sessió completament nova. Detecta la configuració del servidor basant-se en l'identificador de Matrix. Això permet iniciar sessió en servidors que requereixen inici de sessió únic (SSO) (com el Mozilla o la instància d'entrada de Matrix de Fedora).</p>
|
||||
<p xml:lang="ca-valencia">Probablement el més destacat d'este llançament és la pàgina d'inici de sessió completament nova. Detecta la configuració del servidor basant-se en l'identificador de Matrix. Açò permet iniciar sessió en servidors que requerixen inici de sessió únic (SSO) (com Mozilla o la instància d'entrada de Matrix de Fedora).</p>
|
||||
<p xml:lang="it">Probabilmente il punto forte di questa versione è la pagina di accesso completamente rinnovata. Rileva la configurazione del server in base al tuo ID Matrix. Questo ti permette di accedere ai server che richiedono Single Sign-On (SSO) (come Mozilla o l'istanza Matrix in arrivo di Fedora).</p>
|
||||
<p xml:lang="ka">ალბათ ამ ვერსიის გამოკვეთილი ცვლილება სრულიად ახალი შესვლის გვერდია. ის სერვერის კონფიგურაციას თქვენი მატრიცის ID-ის მიხედვით ადგენს. ეს საშუალებას გაძლევთ, შეხვიდეთ სერვერებზე, რომლებიც SSO-ით (მაგ Mozilla, ან შემომავალი Fedora-ის მატრიცის გაშვებული ასლი) შესვლას ითხოვს.</p>
|
||||
<p xml:lang="nl">Het hoogtepunt van deze release is waarschijnlijk de volledig nieuwe aanmeldpagina. Deze detecteert de serverconfiguratie op basis van uw Matrix-ID. Hierdoor kunt u zich aanmelden op servers die Single Sign-On (SSO) vereisen (zoals Mozilla of het aankomende Fedora Matrix-exemplaar).</p>
|
||||
<p xml:lang="pt-BR">Provavelmente, o grande destaque desta versão é a página de login completamente nova. Ela detecta a configuração do servidor com base no seu ID do Matrix. Isso permite que você faça login em servidores que exigem Single Sign-On (SSO) (como a instância do Mozilla Matrix ou a futura instância do Fedora Matrix).</p>
|
||||
<p xml:lang="ru">Главным нововведением этой версии стала полностью переработанная страница входа. Она определяет конфигурацию сервера по вашему идентификатору Matrix, что позволяет входить на серверы с единой системой аутентификации (например, Mozilla или готовящийся к запуску экземпляр Fedora Matrix).</p>
|
||||
<p xml:lang="sl">Verjetno vrhunec te izdaje je popolnoma nova prijavna stran. Zazna konfiguracijo strežnika na podlagi vašega Matrix ID-ja. To vam omogoča prijavo na strežnike, ki zahtevajo enotno prijavo (SSO) (kot sta Mozilla ali prihajajoči pojavek Fedora Matrix).</p>
|
||||
<p xml:lang="tr">Probably the highlight of this release is the completely new login page. It detects the server configuration based on your Matrix Id. This allows you to login to servers requiring Single Sign On (SSO) (like the Mozilla or the incoming Fedora Matrix instance).</p>
|
||||
<p xml:lang="uk">Ймовірно, родзинкою цього випуску є абсолютно нова сторінка входу. Вона визначає налаштування сервера на основі вашого ідентифікатора Matrix. Це надає вам змогу входити на сервери, що вимагають єдиного засобу входу (SSO) (наприклад, Mozilla або вхідний екземпляр Fedora Matrix).</p>
|
||||
<p>Servers that require agreeing to the TOS before usage are correctly detected now and redirect to their TOS webpage, allowing the user to agree to them instead of silently failing to load the account.</p>
|
||||
<p xml:lang="ar">تُكتشف الخوادم التي تتطلب الموافقة على شروط الخدمة قبل الاستخدام بشكل صحيح الآن وتُحوّل إلى صفحة شروط الخدمة الخاصة بها، مما يسمح للمستخدم بالموافقة عليها بدلاً من فشل تحميل الحساب بصمت.</p>
|
||||
<p xml:lang="ca">Els servidors que requereixen acceptar el TOS abans de l'ús ara es detecten correctament i redirigeixen a la seva pàgina web del TOS, que permet a l'usuari acceptar-lo en lloc de no carregar el compte en silenci.</p>
|
||||
<p xml:lang="ca-valencia">Els servidors que requerixen acceptar TOS abans de l'ús ara es detecten correctament i redirigixen a la seua pàgina web de TOS, que permet a l'usuari acceptar-lo en lloc de no carregar el compte en silenci.</p>
|
||||
<p xml:lang="he">שרתים שדורשים הסכמה לתנאי השירות לפי שאפשר להשתמש בהם מזוהים כעת ומופנים לעמוד תנאי השירות שלהם, כך מתאפשר למשתמש להסכים להם במקום להיכשל בשקט ולהיכשל בטעינת החשבון.</p>
|
||||
<p xml:lang="it">I server che richiedono l'accettazione dei termini di servizio prima dell'utilizzo ora vengono rilevati correttamente e reindirizzano alla pagina web dei termini di servizio, consentendo all'utente di accettarli invece di bloccare silenziosamente il caricamento dell'account.</p>
|
||||
<p xml:lang="ka">სერვერები, რომლებიც გამოყენების პირობებზე დათანხმებას ითხოვენ, ახლა სწორად არიან აღმოჩენილები და გადაგამისამართებთ მათი გამოყენების პირობების ვებგვერდზე, სადაც მომხმარებელს საშუალება აქვს, დაეთანხმოს მას იმის მაგიერ, ანგარიშის ჩატვირთვა შეცდომის გარეშე, ჩუმად ჩავარდეს.</p>
|
||||
<p xml:lang="nl">Servers die vereisen dat de gebruiker akkoord gaat met de gebruiksvoorwaarden voordat ze gebruikt kunnen worden, worden nu correct gedetecteerd en doorverwezen naar de pagina met de gebruiksvoorwaarden, waardoor de gebruiker hiermee akkoord kan gaan in plaats van dat het laden van het account stilzwijgend wordt geweigerd.</p>
|
||||
<p xml:lang="pt-BR">Os servidores que exigem a aceitação dos Termos de Serviço antes do uso agora são detectados corretamente e redirecionam para a página dos Termos de Serviço, permitindo que o usuário os aceite em vez de simplesmente não conseguir carregar a conta.</p>
|
||||
<p xml:lang="ru">Теперь серверы, требующие согласия с условиями использования перед началом работы, определяются корректно и перенаправляют пользователя на соответствующую веб-страницу, позволяя принять условия вместо аварийного завершения загрузки учётной записи.</p>
|
||||
<p xml:lang="sl">Strežniki, ki pred uporabo zahtevajo strinjanje s pogoji uporabe, so zdaj pravilno zaznani in preusmerjajo na njihovo spletno stran s pogoji uporabe, kar uporabniku omogoča, da se z njimi strinja, namesto da se račun tiho ne naloži.</p>
|
||||
<p xml:lang="tr">Servers that require agreeing to the TOS before usage are correctly detected now and redirect to their TOS webpage, allowing the user to agree to them instead of silently failing to load the account.</p>
|
||||
<p xml:lang="uk">Сервери, які вимагають погодження з умовами використання перед використанням, у новій версії правильно виявляються та перенаправляють на свою вебсторінку з умовами використання, що надає змогу користувачеві погодитися з ними, замість того, щоб мовчки не завантажувати обліковий запис.</p>
|
||||
<p>It is now possible to open a room into a new window. This allows you to view and interact with multiple rooms at the same time.</p>
|
||||
<p xml:lang="ar">أصبح من الممكن الآن فتح غرفة في نافذة جديدة. يتيح هذا عرض غرف متعددة والتفاعل معها في الوقت ذاته.</p>
|
||||
<p xml:lang="ca">Ara és possible obrir una sala en una finestra nova. Això permet veure i interactuar amb diverses sales alhora.</p>
|
||||
<p xml:lang="ca-valencia">Ara és possible obrir una sala en una finestra nova. Açò permet veure i interactuar amb diverses sales alhora.</p>
|
||||
<p xml:lang="he">מעתה ניתן לפתוח חדר בחלון חדש. כך ניתן לצפות ולהתנהל מול מגוון חדרים באותו הזמן.</p>
|
||||
<p xml:lang="it">Ora è possibile aprire una stanza in una nuova finestra. Questo consente di visualizzare e interagire con più stanze contemporaneamente.</p>
|
||||
<p xml:lang="ka">ახლა შესაძლებელია, ოთახი ცალკე ფანჯარაში გახსნათ. ეს საშუალებას გაძლევთ, ერთდროულად მრავალ ოთახში ისაუბროთ.</p>
|
||||
<p xml:lang="nl">Het is nu mogelijk om een room in een nieuw venster te openen. Hierdoor kunt u meerdere kamers tegelijk bekijken en ermee werken.</p>
|
||||
<p xml:lang="pt-BR">Agora é possível abrir uma sala em uma nova janela. Isso permite visualizar e interagir com várias salas ao mesmo tempo.</p>
|
||||
<p xml:lang="ru">Добавлена возможность открытия комнаты в отдельном окне для одновременного просмотра и взаимодействия с несколькими комнатами.</p>
|
||||
<p xml:lang="sl">Zdaj je mogoče odpreti sobo v novem oknu. To vam omogoča ogled in interakcijo z več sobami hkrati.</p>
|
||||
<p xml:lang="tr">It is now possible to open a room into a new window. This allows you to view and interact with multiple rooms at the same time.</p>
|
||||
<p xml:lang="uk">У новій версії можна відкрити кімнату у новому вікні. Це надає змогу переглядати та взаємодіяти з кількома кімнатами одночасно.</p>
|
||||
<p>We added a few commands to NeoChat (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="ar">أُضيفت بضعة أوامر لنيوتشات (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="ca">Hem afegit algunes ordres al NeoChat (/shrug, /lenny, /join, /ignore...).</p>
|
||||
<p xml:lang="ca-valencia">Hem afegit algunes ordres a NeoChat (/shrug, /lenny, /join, /ignore…).</p>
|
||||
<p xml:lang="he">הוספנו מספר פקודות ל־NeoChat (/shrug, /lenny, /join, /ignore, …).</p>
|
||||
<p xml:lang="it">Abbiamo aggiunto alcuni comandi a NeoChat (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="ka">NeoChat-ს რამდენიმე ბრძანება (/shrug, /lenny, /join, /ignore, ...) დავამატეთ.</p>
|
||||
<p xml:lang="nl">We hebben een paar commando's aan NeoChat toegevoegd (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="pt-BR">Adicionamos alguns comandos ao NeoChat (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="ru">Добавлены команды для NeoChat (/shrug, /lenny, /join, /ignore, …).</p>
|
||||
<p xml:lang="sl">V NeoChat smo dodali nekaj ukazov (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="tr">We added a few commands to NeoChat (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p xml:lang="uk">Нами додано декілька команд NeoChat (/shrug, /lenny, /join, /ignore, ...).</p>
|
||||
<p>We improved the Plasma integration a bit. Now the number of unread messages is displayed in the Plasma Taskbar.</p>
|
||||
<p xml:lang="ar">حُسّن تكامل بلازما قليلاً. يُعرض الآن عدد الرسائل غير المقروءة في شريط مهام بلازما.</p>
|
||||
<p xml:lang="ca">Hem millorat una mica la integració amb el Plasma. Ara es mostra el nombre de missatges sense llegir a la barra de tasques del Plasma.</p>
|
||||
<p xml:lang="ca-valencia">Hem millorat una mica la integració amb Plasma. Ara es mostra el nombre de missatges sense llegir a la barra de tasques de Plasma.</p>
|
||||
<p xml:lang="he">שיפרנו מעט את השילוב מול פלזמה. כעת מספר ההודעות שלא נקראות מופיע בשורת המשימות של פלזמה.</p>
|
||||
<p xml:lang="it">Abbiamo migliorato leggermente l'integrazione con Plasma. Ora il numero di messaggi non letti viene visualizzato nella barra delle applicazioni di Plasma.</p>
|
||||
<p xml:lang="ka">ოდნავ გავაუმჯობესეთ Plasma-ის ინტეგრაცია. ახლა წაუკითხავი შეტყობინებების რაოდენობა Plasma-ის ამოცანათა პანელზე გამოჩნდება.</p>
|
||||
<p xml:lang="nl">We hebben de Plasma-integratie iets verbeterd. Het aantal ongelezen berichten wordt nu weergegeven in de Plasma-taakbalk.</p>
|
||||
<p xml:lang="pt-BR">Aprimoramos um pouco a integração com o Plasma. Agora, o número de mensagens não lidas é exibido na barra de tarefas do Plasma.</p>
|
||||
<p xml:lang="ru">Улучшена интеграция с Plasma. Теперь число непрочитанных сообщений отображается в панели задач Plasma.</p>
|
||||
<p xml:lang="sl">Nekoliko smo izboljšali integracijo s Plasmo. Zdaj je število neprebranih sporočil prikazano v opravilni vrstici Plasme.</p>
|
||||
<p xml:lang="tr">We improved the Plasma integration a bit. Now the number of unread messages is displayed in the Plasma Taskbar.</p>
|
||||
<p xml:lang="uk">Нами дещо удосконалено інтеграцію з Плазмою. Тепер кількість непрочитаних повідомлень буде показано на панелі завдань Плазми.</p>
|
||||
</description>
|
||||
<url>https://carlschwan.eu/2021/02/22/neochat-1.1/</url>
|
||||
</release>
|
||||
@@ -1438,94 +1150,59 @@
|
||||
<p xml:lang="ca">Aquesta versió corregeix diversos errors.</p>
|
||||
<p xml:lang="ca-valencia">Esta versió corregix diversos errors.</p>
|
||||
<p xml:lang="es">Esta versión corrige algunos fallos.</p>
|
||||
<p xml:lang="he">הגרסה הזאת מתקנת מגוון תקלות.</p>
|
||||
<p xml:lang="it">Questa versione corregge diversi bug.</p>
|
||||
<p xml:lang="ka">ეს ვერსია რამდენიმე შეცდომას ასწორებს.</p>
|
||||
<p xml:lang="nl">Deze versie verhelpt diverse fouten.</p>
|
||||
<p xml:lang="pt-BR">Esta versão corrige vários bugs.</p>
|
||||
<p xml:lang="ru">В этой версии исправлены несколько ошибок.</p>
|
||||
<p xml:lang="sl">Ta različica odpravlja več napak.</p>
|
||||
<p xml:lang="tr">This version fixes several bugs.</p>
|
||||
<p xml:lang="uk">У цій версії виправлено декілька вад.</p>
|
||||
<ul>
|
||||
<li>NeoChat doesn't require a .well-know configuration in the server to work.</li>
|
||||
<li xml:lang="ar">لا يتطلب نيوتشات ضبط .well-know في الخادم ليعمل.</li>
|
||||
<li xml:lang="ca">El NeoChat no requereix una configuració «.well-know» al servidor per a funcionar.</li>
|
||||
<li xml:lang="ca-valencia">NeoChat no requerix una configuració «.well-know» al servidor per a funcionar.</li>
|
||||
<li xml:lang="he">NeoChat לא דורש הגדרות .well-know בשרת כדי לעבוד.</li>
|
||||
<li xml:lang="it">Per funzionare, NeoChat non richiede una configurazione .well-know sul server.</li>
|
||||
<li xml:lang="ka">NeoChat-ს სამუშაოდ სერვერზე .well-know კონფიგურაცია არ სჭირდება.</li>
|
||||
<li xml:lang="nl">NeoChat vereist geen .well-know-configuratie op de server om te functioneren.</li>
|
||||
<li xml:lang="pt-BR">O NeoChat não requer uma configuração .well-know no servidor para funcionar.</li>
|
||||
<li xml:lang="ru">Для работы NeoChat не требуется конфигурация .well-known на сервере;</li>
|
||||
<li xml:lang="sl">NeoChat za delovanje ne potrebuje konfiguracije .well-know na strežniku.</li>
|
||||
<li xml:lang="tr">NeoChat doesn't require a .well-know configuration in the server to work.</li>
|
||||
<li xml:lang="uk">Для роботи NeoChat не потрібні налаштування .well-know на сервері.</li>
|
||||
<li>Edited messages won't show up duplicated anymore.</li>
|
||||
<li xml:lang="ar">لن تظهر الرسائل المحررة مكررة بعد الآن.</li>
|
||||
<li xml:lang="ca">Els missatges editats ja no es mostraran duplicats.</li>
|
||||
<li xml:lang="ca-valencia">Els missatges editats ja no es mostraran duplicats.</li>
|
||||
<li xml:lang="he">הודעות שנערכו לא תופענה עוד ככפולות.</li>
|
||||
<li xml:lang="it">I messaggi modificati non saranno più visualizzati come duplicati.</li>
|
||||
<li xml:lang="ka">ჩასწორებული შეტყობინებები გამეორებულად აღარ გამოჩნდება.</li>
|
||||
<li xml:lang="nl">Bewerkte berichten worden niet langer dubbel weergegeven.</li>
|
||||
<li xml:lang="pt-BR">As mensagens editadas não aparecerão mais duplicadas.</li>
|
||||
<li xml:lang="ru">Редактируемые сообщения больше не отображаются как дубликаты;</li>
|
||||
<li xml:lang="sl">Urejena sporočila se ne bodo več prikazovala kot podvojena.</li>
|
||||
<li xml:lang="tr">Edited messages won't show up duplicated anymore.</li>
|
||||
<li xml:lang="uk">У новій версії усунено дублювання показу редагованих повідомлень.</li>
|
||||
<li>Various graphic glitches have been fixed.</li>
|
||||
<li xml:lang="ar">أُصلحت مشكلات رسومية متنوعة.</li>
|
||||
<li xml:lang="ca">S'han corregit diversos errors gràfics.</li>
|
||||
<li xml:lang="ca-valencia">S'han corregit diversos errors gràfics.</li>
|
||||
<li xml:lang="he">מגוון עיוותים גרפיים תוקנו.</li>
|
||||
<li xml:lang="it">Sono stati risolti vari problemi grafici.</li>
|
||||
<li xml:lang="ka">გასწორდა სხვადასხვა გრაფიკული შეცდომა.</li>
|
||||
<li xml:lang="nl">Diverse grafische problemen zijn verholpen.</li>
|
||||
<li xml:lang="pt-BR">Diversos problemas gráficos foram corrigidos.</li>
|
||||
<li xml:lang="ru">Исправлены различные графические дефекты;</li>
|
||||
<li xml:lang="sl">Odpravljene so bile različne grafične napake.</li>
|
||||
<li xml:lang="tr">Various graphic glitches have been fixed.</li>
|
||||
<li xml:lang="uk">Виправлено різноманітні помилки у графіці програми.</li>
|
||||
<li>NeoChat now ask for consent to terms and conditions if required instead of displaying nothing.</li>
|
||||
<li xml:lang="ar">يطلب نيوتشات الآن الموافقة على الشروط والأحكام إذا كانت مطلوبة بدلاً من عدم عرض شيء.</li>
|
||||
<li xml:lang="ca">El NeoChat ara demana consentiment als termes i condicions si es requereixen en lloc de no mostrar res.</li>
|
||||
<li xml:lang="ca-valencia">NeoChat ara demana consentiment als termes i condicions si es requerixen en lloc de no mostrar res.</li>
|
||||
<li xml:lang="he">NeoChat מבקש מעתה להסכים לתנאים ולהתניות במקרה הצורך במקום לא להציג כלום.</li>
|
||||
<li xml:lang="it">NeoChat ora chiede il consenso ai termini e alle condizioni, se necessario, anziché non visualizzare nulla.</li>
|
||||
<li xml:lang="ka">NeoChat ახლა გკითხავთ, ეთანხმებით თუ არა გამოყენების პირობებს, თუ ეს აუცილებელია, არაფრის ჩვენების მაგიერ.</li>
|
||||
<li xml:lang="nl">NeoChat vraagt nu, indien nodig, om toestemming voor de algemene voorwaarden in plaats van niets weer te geven.</li>
|
||||
<li xml:lang="pt-BR">O NeoChat agora solicita a aceitação dos termos e condições, se necessário, em vez de não exibir nada.</li>
|
||||
<li xml:lang="ru">В NeoChat реализован запрос согласия с условиями использования, если это требуется;</li>
|
||||
<li xml:lang="sl">NeoChat zdaj po potrebi zahteva soglasje s pogoji uporabe, namesto da ne prikaže ničesar.</li>
|
||||
<li xml:lang="tr">NeoChat now ask for consent to terms and conditions if required instead of displaying nothing.</li>
|
||||
<li xml:lang="uk">У новій версії NeoChat просить про згоду з умовами користування, якщо це необхідно, замість того, щоб нічого не показувати.</li>
|
||||
<li>Users avatar in the room list are now displayed correctly.</li>
|
||||
<li xml:lang="ar">تُعرض صور المستخدمين الرمزية في قائمة الغرف بشكل صحيح الآن.</li>
|
||||
<li xml:lang="ca">Els avatars d'usuaris a la llista de sales ara es mostren correctament.</li>
|
||||
<li xml:lang="ca-valencia">Els avatars d'usuaris a la llista de sales ara es mostren correctament.</li>
|
||||
<li xml:lang="he">התמונות הייצוגיות של המשתמשים מופיעות נכון מעתה ברשימת החדרים.</li>
|
||||
<li xml:lang="it">Gli avatar degli utenti nell'elenco delle stanze ora vengono visualizzati correttamente.</li>
|
||||
<li xml:lang="ka">მომხმარებლის ავატარი ოთახების სიაში ახლა სწორადაა ნაჩვენები.</li>
|
||||
<li xml:lang="nl">De avatars van gebruikers worden nu correct weergegeven in de lijst met rooms.</li>
|
||||
<li xml:lang="pt-BR">Os avatares dos usuários na lista de salas agora são exibidos corretamente.</li>
|
||||
<li xml:lang="ru">Аватары пользователей в списке комнат отображаются корректно;</li>
|
||||
<li xml:lang="sl">Uporabnikovi avatarji v seznamu sob so zdaj pravilno prikazani.</li>
|
||||
<li xml:lang="tr">Users avatar in the room list are now displayed correctly.</li>
|
||||
<li xml:lang="uk">У новій версії програма належним чином показує аватари користувачів у списку кімнат.</li>
|
||||
<li>Fix image saving</li>
|
||||
<li xml:lang="ar">إصلاح حفظ الصور</li>
|
||||
<li xml:lang="ca">Corregeix el desament de les imatges</li>
|
||||
<li xml:lang="ca-valencia">Corregix la guardada de les imatges</li>
|
||||
<li xml:lang="he">תוקנה שמירת תמונות</li>
|
||||
<li xml:lang="it">Corregge il salvataggio delle immagini</li>
|
||||
<li xml:lang="ka">გასწორდა სურათების შენახვა</li>
|
||||
<li xml:lang="nl">Opslaan van afbeeldingen gerepareerd</li>
|
||||
<li xml:lang="pt-BR">Corrigido salvamento de imagem</li>
|
||||
<li xml:lang="ru">Исправлено сохранение изображений;</li>
|
||||
<li xml:lang="sl">Popravi shranjevanje slike</li>
|
||||
<li xml:lang="tr">Fix image saving</li>
|
||||
<li xml:lang="uk">Виправлено збереження зображень</li>
|
||||
</ul>
|
||||
</description>
|
||||
<url>https://carlschwan.eu/2020/01/13/neochat-1.0.1/</url>
|
||||
@@ -1536,15 +1213,10 @@
|
||||
<p xml:lang="ar">الإصدار الأولي لنيوتشات، عميل ماتركس لكيدي.</p>
|
||||
<p xml:lang="ca">Versió inicial de NeoChat, el client de Matrix de KDE.</p>
|
||||
<p xml:lang="ca-valencia">Versió inicial de NeoChat, el client de Matrix de KDE.</p>
|
||||
<p xml:lang="he">המהדורה הראשונית של NeoChat, לקוח המטריקס של KDE.</p>
|
||||
<p xml:lang="it">Versione iniziale di NeoChat, il client matrix di KDE.</p>
|
||||
<p xml:lang="ka">NeoChat-ის, KDE-ის მატრიცის კლიენტის პირველი ვერსია.</p>
|
||||
<p xml:lang="nl">Eerste versie van NeoChat, de KDE Matrix-client.</p>
|
||||
<p xml:lang="pt-BR">Lançamento inicial do NeoChat, o cliente Matrix do KDE.</p>
|
||||
<p xml:lang="ru">Первый выпуск NeoChat — клиента Matrix для KDE.</p>
|
||||
<p xml:lang="sl">Začetna izdaja NeoChata, odjemalca matrixa za KDE.</p>
|
||||
<p xml:lang="tr">Initial release of NeoChat, the KDE matrix client.</p>
|
||||
<p xml:lang="uk">Початковий випуск NeoChat, клієнта matrix KDE.</p>
|
||||
</description>
|
||||
<url>https://carlschwan.eu/2020/12/23/announcing-neochat-1.0-the-kde-matrix-client/</url>
|
||||
</release>
|
||||
|
||||
505
po/ar/neochat.po
505
po/ar/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
||||
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
||||
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 23.08.4\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -25,7 +25,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
@@ -328,7 +328,7 @@ msgid "Attachment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -882,7 +882,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1170,16 +1170,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1191,27 +1191,27 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1230,14 +1230,14 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1417,13 +1417,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1433,13 +1427,13 @@ msgid_plural "and %1 more…"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1671,21 +1665,28 @@ msgstr ""
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
@@ -1896,43 +1897,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -1942,48 +1948,36 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2257,25 +2251,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3140,11 +3134,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3180,9 +3174,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr ""
|
||||
|
||||
@@ -3252,128 +3246,128 @@ msgstr ""
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr ""
|
||||
|
||||
@@ -3462,35 +3456,35 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4007,7 +4001,7 @@ msgid "Stop Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4035,14 +4029,14 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4114,13 +4108,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4194,19 +4188,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4482,13 +4476,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4747,45 +4741,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5053,18 +5015,32 @@ msgstr ""
|
||||
msgid "Show your messages on the right"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr ""
|
||||
@@ -5458,7 +5434,6 @@ msgid "Add keyword"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6000,45 +5975,50 @@ msgstr ""
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6056,39 +6036,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6096,123 +6050,94 @@ msgid ""
|
||||
"is clicked."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
|
||||
461
po/az/neochat.po
461
po/az/neochat.po
File diff suppressed because it is too large
Load Diff
512
po/ca/neochat.po
512
po/ca/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"PO-Revision-Date: 2026-02-27 07:24+0100\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2026-02-17 09:47+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
"Language: ca@valencia\n"
|
||||
@@ -18,9 +18,9 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 25.12.2\n"
|
||||
"X-Generator: Lokalize 25.04.0\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -28,7 +28,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "Rebre les notificacions dels missatges nous"
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Rebre les notificacions automàtiques"
|
||||
@@ -333,7 +333,7 @@ msgid "Attachment:"
|
||||
msgstr "Adjunt:"
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -895,7 +895,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr "Cita"
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1187,17 +1187,19 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr "Contacta a través de correu electrònic (%1)"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgstr "Gestioneu l'emmagatzematge de claus"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestioneu la còpia de seguretat del secret"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgstr "La clau de recuperació no és correcta."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
"La clau de seguretat o la frase de pas de còpia de seguretat no són "
|
||||
"correctes."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
@@ -1208,31 +1210,32 @@ msgstr "S'han restaurat les claus d'encriptació."
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgstr "Desbloqueja utilitzant la clau de recuperació"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
"Desbloqueja utilitzant la clau de seguretat o la frase de pas de còpia de "
|
||||
"seguretat"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
"Si teniu una clau de recuperació (també coneguda com a «clau de seguretat» o "
|
||||
"frase de pas de còpia de seguretat), introduïu-la a continuació o carregueu-"
|
||||
"la com a fitxer."
|
||||
"Si teniu una clau de seguretat o una frase de pas de còpia de seguretat per "
|
||||
"a este compte, introduïu-la a continuació o carregueu-la com a fitxer."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgstr "Clau de recuperació:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clau de seguretat o frase de pas de còpia de seguretat:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgstr "Carrega des d'un fitxer"
|
||||
msgid "Upload from File"
|
||||
msgstr "Carrega des del fitxer"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
@@ -1250,16 +1253,17 @@ msgstr "Desbloqueja a partir d'una signatura creuada"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
"Si heu verificat prèviament este dispositiu, sol·liciteu les claus "
|
||||
"d'encriptació des d'altres dispositius verificats."
|
||||
"Si heu verificat prèviament este dispositiu, podeu intentar de carregar la "
|
||||
"clau de còpia de seguretat des d'altres dispositius clicant damunt del botó "
|
||||
"de davall."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr "Sol·licita des d'altres dispositius"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1441,13 +1445,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr "Sales en comú"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr "No hi ha sales en comú"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1457,13 +1455,13 @@ msgid_plural "and %1 more…"
|
||||
msgstr[0] "i 1 altra…"
|
||||
msgstr[1] "i %1 altres…"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr "Nota privada"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1730,22 +1728,29 @@ msgstr "Mostra"
|
||||
msgid "Quit"
|
||||
msgstr "Ix"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgstr "«Retorn» comença una línia nova"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr "Trieu un fitxer local"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgstr "«Retorn» envia el missatge"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imatge del porta-retalls"
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Emoji i adhesius"
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr "Entra al mode de text enriquit"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr "Ix del mode de text enriquit"
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
#, kde-format
|
||||
@@ -1957,43 +1962,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr "Estil del text"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Emoji i adhesius"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr "Edita l'enllaç"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr "Llista sense ordenar"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr "Llista ordenada"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr "Incrementa el nivell de la llista"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr "Disminuïx el nivell de la llista"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr "Estil de llista"
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -2005,48 +2015,36 @@ msgstr ""
|
||||
"Els adjunts només poden tindre títols de text net, s'eliminaran tots els "
|
||||
"formats enriquits"
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr "Afig al missatge"
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr "Adjunta una imatge o un fitxer"
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr "Envia una ubicació"
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr "Crea una votació"
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr "Envia un missatge de veu"
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr "Oculta els controls de text enriquit"
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr "Mostra els controls de text enriquit"
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2326,12 +2324,12 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr "State Keys"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr "No s'ha trobat el testimoni d'accés: Potser s'ha suprimit?"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
@@ -2339,7 +2337,7 @@ msgstr ""
|
||||
"S'ha denegat l'accés a clauer: Permeteu que NeoChat llija el testimoni "
|
||||
"d'accés"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
@@ -2348,7 +2346,7 @@ msgstr ""
|
||||
"No hi ha cap clauer disponible: Instal·leu un clauer, p. ex., KWallet o "
|
||||
"l'anell de claus de GNOME a Linux"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr "No s'ha pogut llegir el testimoni d'accés: %1"
|
||||
@@ -3218,11 +3216,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr "Envia el missatge indicat com una nota"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3258,9 +3256,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr "%1 se l'ha convidat a esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr "<ID d'usuari>"
|
||||
|
||||
@@ -3330,128 +3328,128 @@ msgstr "Canvia el vostre nom que s'ha de mostrar global"
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr "Canvia el vostre nom que s'ha de mostrar en esta sala"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr "%1 ja és ignorat."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr "%1 ara és ignorat."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr "Ignora l'usuari indicat"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr "%1 no està ignorat."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr "%1 ja no es troba ignorat."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr "Deixa d'ignorar l'usuari indicat"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr "<text de reacció>"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr "Reacciona al missatge amb el text indicat"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr "%1 ja està bandejat d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr "No teniu permís per a bandejar usuaris d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr "No teniu permís per a bandejar l'usuari %1 d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr "%1 fou bandejat d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr "<ID d'usuari> [<motiu>]"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr "Bandeja l'usuari indicat"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr "No teniu permís per a desbandejar usuaris d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr "%1 no està bandejat d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr "%1 fou desbandejat d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr "Elimina el bandeig a l'usuari indicat"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr "No podeu expulsar-vos vós mateix de la sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr "%1 no es troba en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr "No teniu permís per a expulsar usuaris d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr "No teniu permís per a expulsar l'usuari %1 d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr "%1 fou expulsat d'esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr "Elimina l'usuari d'esta sala"
|
||||
|
||||
@@ -3540,7 +3538,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3549,28 +3547,28 @@ msgstr ""
|
||||
"El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del "
|
||||
"servidor Matrix per ajuda."
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No s'ha configurat cap servidor d'identitats"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "No s'ha pogut crear la sala: %1"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "No s'ha pogut crear l'espai: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "L'informe s'ha enviat correctament."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4095,7 +4093,7 @@ msgid "Stop Download"
|
||||
msgstr "Para la baixada"
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4123,14 +4121,14 @@ msgstr "Hora d'entrada: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora d'eixida: %1"
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr "Oculta la imatge"
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4204,13 +4202,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr "S'està carregant la resposta…"
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr "Ha fallat mentre es baixava el fitxer."
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4284,19 +4282,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr "Cancel·la la resposta"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr "Establix un títol d'adjunt…"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr "Envia un missatge encriptat…"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4574,13 +4572,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crea un espai"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Vos ha convidat al xat"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4841,45 +4839,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr "Copia l'adreça de l'espai"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr "Configureu els espais"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr "Informa…"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr "Informa d'un espai"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr "Indiqueu de manera opcional un motiu per a informar d'este espai"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr "Informa"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr "Informa d'un espai"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5147,18 +5113,34 @@ msgstr "Només estarà activat si s'ha habilitat la pàgina transparent de xat."
|
||||
msgid "Show your messages on the right"
|
||||
msgstr "Mostra els vostres missatges a la dreta"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Mostra la vista prèvia dels enllaços"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
"Podeu personalitzar açò a cada sala des de la configuració de la sala. Si no "
|
||||
"està marcada, desactiva la vista prèvia d'enllaços cap a totes les sales."
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr "Mostra els avatars"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr "En el xat"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr "En la barra lateral"
|
||||
@@ -5569,7 +5551,6 @@ msgid "Add keyword"
|
||||
msgstr "Afig una paraula clau"
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6122,45 +6103,50 @@ msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
"Utilitzeu la sintaxi «s/text/substitució» per a editar l'últim missatge"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Envia les notificacions d'escriptura"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr "Configuració de desenvolupament"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr "Activa les eines de desenvolupament"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "Obri les eines de desenvolupament"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr "Eines de desenvolupament"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr "Configuració predeterminada"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr "Reinicia tots els valors de configuració als valors predeterminats…"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr "Reinicia la configuració"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6178,41 +6164,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr "Usuaris ignorats"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr "Missatges"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Mostra la vista prèvia dels enllaços"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
"Podeu personalitzar açò a cada sala des de la configuració de la sala. Si no "
|
||||
"està marcada, desactiva la vista prèvia d'enllaços cap a totes les sales."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Envia les notificacions d'escriptura"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr "Oculta les imatges i vídeos de manera predeterminada"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6222,64 +6180,35 @@ msgstr ""
|
||||
"Quan es marca esta opció, les imatges i els vídeos només es mostren després "
|
||||
"de clicar damunt d'un botó."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr "Tothom"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr "Tothom vos pot enviar invitacions."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgstr "Usuaris coneguts"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr "Rebutja invitacions d'usuaris desconeguts"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
"Només vos poden enviar invitacions els usuaris amb els quals compartiu una "
|
||||
"sala."
|
||||
"Si està marcada, NeoChat rebutjarà invitacions d'usuaris amb els quals no "
|
||||
"compartiu cap sala."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr "El vostre servidor no permet este paràmetre."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr "Ningú"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr "Ningú vos pot enviar invitacions."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Encriptació"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr "Activa l'encriptació als xats nous"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6288,63 +6217,62 @@ msgstr ""
|
||||
"Si s'activa, NeoChat utilitzarà l'encriptació en iniciar missatges directes "
|
||||
"nous."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Encriptació"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgstr "Gestiona l'emmagatzematge de claus"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestiona la còpia de seguretat del secret"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
"Importa o desbloqueja les claus d'encriptació des d'altres dispositius."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestioneu la còpia de seguretat del secret"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importa les claus"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgstr ""
|
||||
"Importa les claus d'encriptació a partir d'un fitxer de còpia de seguretat."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr "Importa les claus d'encriptació a partir d'una còpia de seguretat."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importació de claus"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr "Les claus s'han importat correctament"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr "Exporta les claus"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgstr "Exporta les claus d'encriptació d'este dispositiu a un fitxer."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr "Exporta les claus d'encriptació d'este dispositiu."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
|
||||
447
po/cs/neochat.po
447
po/cs/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2024-09-17 15:24+0200\n"
|
||||
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
|
||||
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Lokalize 24.08.1\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -25,7 +25,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
@@ -333,7 +333,7 @@ msgid "Attachment:"
|
||||
msgstr "Příloha:"
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -893,7 +893,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1192,16 +1192,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1213,27 +1213,27 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1252,14 +1252,14 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1461,15 +1461,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "Placeholder message"
|
||||
#| msgid "No room found"
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr "Žádná místnost nebyla nalezena"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "%1 is the number of other users"
|
||||
#| msgid " and %1 other"
|
||||
@@ -1483,14 +1475,14 @@ msgstr[0] " a 1 další"
|
||||
msgstr[1] " a %1 další"
|
||||
msgstr[2] " a %1 dalších"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Create New"
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr "Vytvořit nový"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1722,25 +1714,29 @@ msgstr "Zobrazit"
|
||||
msgid "Quit"
|
||||
msgstr "Ukončit"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 sent a message"
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgstr "%1 poslal(a) správu"
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Edit Sticker"
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Upravit nálepku"
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
#, kde-format
|
||||
@@ -1950,7 +1946,14 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Edit Sticker"
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Upravit nálepku"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Edit Sticker"
|
||||
@@ -1958,37 +1961,37 @@ msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr "Upravit nálepku"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -1998,32 +2001,32 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 sent a message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr "%1 poslal(a) správu"
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:title"
|
||||
#| msgid "Search Messages"
|
||||
@@ -2031,18 +2034,6 @@ msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr "Hledat zprávy"
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2321,25 +2312,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3211,11 +3202,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3251,9 +3242,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr ""
|
||||
|
||||
@@ -3323,128 +3314,128 @@ msgstr ""
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr ""
|
||||
|
||||
@@ -3533,35 +3524,35 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Vytvoření místnosti selhalo: %1"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Vytvoření místnosti selhalo: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "Hlášení bylo úspěšně odesláno."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4078,7 +4069,7 @@ msgid "Stop Download"
|
||||
msgstr "Zastavit stahování"
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Attachment:"
|
||||
msgctxt "@action:button"
|
||||
@@ -4107,14 +4098,14 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4186,13 +4177,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4270,19 +4261,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr "Zrušit odpověď"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4566,13 +4557,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4848,55 +4839,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt ""
|
||||
#| "@action:button 'Report' as in 'Report this event to the administrators'"
|
||||
#| msgid "Report"
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr "Hlášení"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Report User"
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr "Nahlásit uživatele"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt ""
|
||||
#| "@action:button 'Report' as in 'Report this event to the administrators'"
|
||||
#| msgid "Report"
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr "Hlášení"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Report User"
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr "Nahlásit uživatele"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5170,18 +5119,33 @@ msgstr ""
|
||||
msgid "Show your messages on the right"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shrink preview"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Zmenšit náhled"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr ""
|
||||
@@ -5575,7 +5539,6 @@ msgid "Add keyword"
|
||||
msgstr "Přidat klíčové slovo"
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6126,45 +6089,50 @@ msgstr "Editor"
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Posílat upozornění o psaní"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr "Vývojové nástroje"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6182,42 +6150,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "<message>"
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr "< zpráva>"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shrink preview"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Zmenšit náhled"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send typing notifications"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Posílat upozornění o psaní"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6227,125 +6166,94 @@ msgstr ""
|
||||
"Pokud je tato volba povolena, obrázky a videa jsou zobrazeny pouze po "
|
||||
"kliknutí na tlačítko."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "Room permission type"
|
||||
#| msgid "Ban users"
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgstr "Zablokovat uživatele"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr "Váš server nepodporuje toto nastavení."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importovat klíče"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importovat klíče"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr "Klíče byly úspěšně importovány"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr "Exportovat klíče"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
@@ -7725,13 +7633,6 @@ msgstr[0] "%2 píše"
|
||||
msgstr[1] "%2 píší"
|
||||
msgstr[2] "%2 píší"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgctxt "@label:textbox"
|
||||
#~| msgid "Link Text:"
|
||||
#~ msgctxt "@action:button"
|
||||
#~ msgid "Rich Text"
|
||||
#~ msgstr "Text odkazu:"
|
||||
|
||||
#~ msgid "OK"
|
||||
#~ msgstr "OK"
|
||||
|
||||
|
||||
438
po/da/neochat.po
438
po/da/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2020-12-13 17:28+0100\n"
|
||||
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
|
||||
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 20.04.2\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt ""
|
||||
@@ -26,7 +26,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgid "Receiving push notifications"
|
||||
@@ -351,7 +351,7 @@ msgid "Attachment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -951,7 +951,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1258,16 +1258,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1279,27 +1279,27 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1318,14 +1318,14 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1522,14 +1522,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr "Værelsesnavn:"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1539,14 +1532,14 @@ msgid_plural "and %1 more…"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Muted"
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr "Lydløs"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1784,24 +1777,30 @@ msgstr "Vis"
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Please choose a file"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr "Vælg venligst en fil"
|
||||
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgstr "Send besked"
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Send besked"
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
#, fuzzy, kde-format
|
||||
@@ -2025,44 +2024,50 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -2072,52 +2077,40 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Muted"
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr "Lydløs"
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
@@ -2410,25 +2403,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3338,11 +3331,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3379,9 +3372,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr "Invitér"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr ""
|
||||
|
||||
@@ -3451,128 +3444,128 @@ msgstr ""
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr ""
|
||||
|
||||
@@ -3663,37 +3656,37 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Lydløs"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Login Failed"
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Login mislykkedes"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Login Failed"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Login mislykkedes"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4240,7 +4233,7 @@ msgid "Stop Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
@@ -4269,7 +4262,7 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
@@ -4277,7 +4270,7 @@ msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Username"
|
||||
msgctxt "@action:button"
|
||||
@@ -4355,13 +4348,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr "Indlæser"
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4438,20 +4431,20 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr "Annullér"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@placeholder"
|
||||
@@ -4762,14 +4755,14 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Lydløs"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Invite"
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Invitér"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -5054,50 +5047,14 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr "Kopiér"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "View Source"
|
||||
msgctxt "'Space' is a matrix space"
|
||||
@@ -5390,18 +5347,33 @@ msgstr ""
|
||||
msgid "Show your messages on the right"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr ""
|
||||
@@ -5820,7 +5792,6 @@ msgid "Add keyword"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Invite"
|
||||
msgctxt "@title:group"
|
||||
@@ -6418,49 +6389,55 @@ msgstr "Redigér"
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgid "Developer Settings"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6479,42 +6456,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr "Invitér"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6522,126 +6470,96 @@ msgid ""
|
||||
"is clicked."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Invite"
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgstr "Invitér"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
@@ -8086,12 +8004,6 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Please choose a file"
|
||||
#~ msgctxt "@action:button"
|
||||
#~ msgid "Choose local file"
|
||||
#~ msgstr "Vælg venligst en fil"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Cancel"
|
||||
#~ msgctxt "@action:button"
|
||||
|
||||
1074
po/de/neochat.po
1074
po/de/neochat.po
File diff suppressed because it is too large
Load Diff
487
po/el/neochat.po
487
po/el/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
537
po/eo/neochat.po
537
po/eo/neochat.po
File diff suppressed because it is too large
Load Diff
456
po/es/neochat.po
456
po/es/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"PO-Revision-Date: 2026-02-26 11:22+0100\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2026-02-17 14:00+0100\n"
|
||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||
"Language: es\n"
|
||||
@@ -19,7 +19,7 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 25.12.2\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -27,7 +27,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "Recibir notificaciones de nuevos mensajes"
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Recepción de notificaciones push"
|
||||
@@ -333,7 +333,7 @@ msgid "Attachment:"
|
||||
msgstr "Adjunto:"
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -894,7 +894,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr "Cita"
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1184,17 +1184,17 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr "Contactar por correo electrónico (%1)"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgstr "Gestión del almacenamiento de claves"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestión de copia de seguridad secreta"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgstr "La clave de recuperación no era correcta."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr "La clave de seguridad o la contraseña de respaldo no eran correctas."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
@@ -1205,30 +1205,29 @@ msgstr "Claves de cifrado restauradas."
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgstr "Desbloquear usando la clave de recuperación"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr "Desbloquear mediante clave de seguridad o contraseña de respaldo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
"Si dispone de una clave de recuperación (también conocida como «clave de "
|
||||
"seguridad» o «contraseña de respaldo»), introdúzcala a continuación o "
|
||||
"envíela como archivo."
|
||||
"Si dispone de una clave de seguridad o de una contraseña de respaldo para "
|
||||
"esta cuenta, introdúzcala a continuación o envíela como archivo."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgstr "Clave de recuperación:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clave de seguridad o contraseña de respaldo:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr "Enviar un archivo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1247,16 +1246,16 @@ msgstr "Desbloquear con firmado cruzado"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
"Si ya había verificado este dispositivo anteriormente, puede solicitar "
|
||||
"claves de cifrado de otros dispositivos verificados."
|
||||
"Si ya había verificado este dispositivo anteriormente, puede probar a cargar "
|
||||
"la clave de respaldo desde otros dispositivos pulsando el botón inferior."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr "Solicitar de otros dispositivos"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1438,13 +1437,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr "Salas en común"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr "No hay salas en común"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1454,13 +1447,13 @@ msgid_plural "and %1 more…"
|
||||
msgstr[0] "y %1 más…"
|
||||
msgstr[1] "y %1 más…"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr "Nota privada"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1729,23 +1722,29 @@ msgstr "Mostrar"
|
||||
msgid "Quit"
|
||||
msgstr "Salir"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgstr ""
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr "Escoger archivo local"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 sent a message"
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgstr "%1 ha enviado un mensaje"
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Emojis y pegatinas"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imagen del portapapeles"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr "Entrar en modo de texto enriquecido"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr "Salir del modo de texto enriquecido"
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
#, kde-format
|
||||
@@ -1957,43 +1956,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr "Estilo del texto"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr "Emojis y pegatinas"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr "Editar enlace"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr "Lista desordenada"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr "Lista ordenada"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr "Aumentar nivel de lista"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr "Disminuir nivel de lista"
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr "Estilo de lista"
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -2005,48 +2009,36 @@ msgstr ""
|
||||
"Los adjuntos solo pueden tener títulos en texto sin formato (se eliminará el "
|
||||
"texto enriquecido)."
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr "Añadir al mensaje"
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr "Adjuntar una imagen o un archivo"
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr "Enviar una ubicación"
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr "Crear una encuesta"
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr "Enviar un mensaje de voz"
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2326,12 +2318,12 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr "Teclas de estado"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr "El token de acceso no se ha encontrado (¿tal vez se ha borrado?)"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
@@ -2339,7 +2331,7 @@ msgstr ""
|
||||
"Se ha denegado el acceso a la cadena de claves: Permita que NeoChat pueda "
|
||||
"leer el token de acceso"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
@@ -2348,7 +2340,7 @@ msgstr ""
|
||||
"No hay ninguna cadena de claves disponible: Instale una cadena de claves, "
|
||||
"como KWallet o el llavero de GNOME en Linux"
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr "No se ha podido leer el token de acceso: %1"
|
||||
@@ -3216,11 +3208,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr "Envía el mensaje indicado como aviso"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3256,9 +3248,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr "%1 ha sido invitado a esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr "<id de usuario>"
|
||||
|
||||
@@ -3328,128 +3320,128 @@ msgstr "Cambia su nombre visible globalmente"
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr "Cambia su nombre visible en esta sala"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr "%1 ya está ignorado."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr "Ahora se ignora a %1."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr "Ignorar al usuario indicado"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr "No se ignora a %1."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr "Ya no se ignora a %1."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr "Dejar de ignorar al usuario indicado"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr "<texto de reacción>"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr "Reaccionar al mensaje con el texto indicado"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr "%1 ya está inhabilitado en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr "Usted no tiene permiso para inhabilitar usuarios en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr "Usted no tiene permiso para inhabilitar a %1 en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr "%1 ha sido inhabilitado en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr "<id de usuario> [<motivo>]"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr "Inhabilita al usuario indicado"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr "Usted no tiene permiso para habilitar usuarios en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr "%1 no está inhabilitado en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr "%1 ha sido habilitado en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr "Habilita al usuario indicado"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr "No puede expulsarse a usted mismo de la sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr "%1 no está en esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr "Usted no tiene permiso para expulsar usuarios de esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr "Usted no tiene permiso para expulsar a %1 de esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr "%1 ha sido expulsado de esta sala."
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr "Elimina al usuario de la sala"
|
||||
|
||||
@@ -3538,7 +3530,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3547,28 +3539,28 @@ msgstr ""
|
||||
"Archivo demasiado grande para descargarlo.<br />Póngase en contacto con el "
|
||||
"administrador del servidor matrix para obtener asistencia."
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No se ha configurado ningún servidor de identidades"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "La creación de la sala ha fallado: %1"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "La creación del espacio ha fallado: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "La denuncia se ha enviado correctamente."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4092,7 +4084,7 @@ msgid "Stop Download"
|
||||
msgstr "Detener descarga"
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4120,14 +4112,14 @@ msgstr "Hora de entrada: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora de salida: %1"
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr "Ocultar imagen"
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4201,13 +4193,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr "Cargando respuesta…"
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr "No se ha podido descargar el archivo."
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4281,19 +4273,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr "Cancelar respuesta"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr "Definir un subtítulo de adjunto…"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr "Enviar un mensaje cifrado…"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4571,13 +4563,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crear un espacio"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Le ha invitado a chatear"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4836,45 +4828,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr "Copiar dirección del espacio"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr "Preferencias del espacio"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr "Denunciar…"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr "Denunciar espacio"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr "Proporcione un motivo para denunciar este espacio (opcional)"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr "Denunciar"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr "Denunciar espacio"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5142,18 +5102,34 @@ msgstr "Activado solo si la página de chat transparente está activada."
|
||||
msgid "Show your messages on the right"
|
||||
msgstr "Mostrar sus mensajes a la derecha"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Mostrar vista previa de enlaces"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
"Puede personalizar esto para cada sala en las preferencias de la sala. Si no "
|
||||
"se marca, se desactivan las vistas previas de enlaces en todas las salas."
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr "Mostrar avatares"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr "En el chat"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr "En la barra lateral"
|
||||
@@ -5561,7 +5537,6 @@ msgid "Add keyword"
|
||||
msgstr "Añadir palabra clave"
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6112,45 +6087,50 @@ msgstr "Editor"
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr "Use la sintaxis s/texto/sustitución para editar su último mensaje"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Enviar notificaciones de escritura"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr "Preferencias del desarrollador"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr "Activar las herramientas del desarrollador"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "Abrir las herramientas del desarrollador"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr "Herramientas del desarrollador"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr "Preferencias predeterminadas"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr "Restablecer la configuración a sus valores predeterminados…"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr "Restablecer configuración"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6170,41 +6150,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr "Usuarios ignorados"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr "Mostrar vista previa de enlaces"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
"Puede personalizar esto para cada sala en las preferencias de la sala. Si no "
|
||||
"se marca, se desactivan las vistas previas de enlaces en todas las salas."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr "Enviar notificaciones de escritura"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr "Ocultar imágenes y vídeos de forma predeterminada"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6214,63 +6166,35 @@ msgstr ""
|
||||
"Cuando esta opción está activada, las imágenes y los vídeos se muestran solo "
|
||||
"cuando se pulsa un botón."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr "Todos"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr "Cualquiera puede enviarle invitaciones."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgstr "Usuarios conocidos"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr "Rechazar invitaciones de usuarios desconocidos"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
"Solo los usuarios con los que comparte sala pueden enviarle invitaciones."
|
||||
"Si se activa, NeoChat rechazará las invitaciones de usuarios con los que no "
|
||||
"comparta una sala."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr "Su servidor no permite este ajuste."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr "Nadie"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr "Nadie puede enviarle invitaciones."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Cifrado"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr "Activar cifrado en chats nuevos"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6278,61 +6202,61 @@ msgid ""
|
||||
msgstr ""
|
||||
"Si está activado, NeoChat usará cifrado al empezar nuevos mensajes directos."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "Cifrado"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgstr "Gestión del almacenamiento de claves"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestión de copia de seguridad secreta"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr "Importar o desbloquear claves de cifrado de otros dispositivos."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr "Gestión de copia de seguridad secreta"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importar claves"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgstr "Importar claves de cifrado de un archivo de copia de seguridad."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr "Importar claves de cifrado de una copia de seguridad."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr "Importar claves"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr "Claves importadas correctamente"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr "Exportar claves"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgstr "Exportar las claves de cifrado de este dispositivo a un archivo."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr "Exportar las claves de cifrado de este dispositivo."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
@@ -7728,9 +7652,3 @@ msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 está escribiendo"
|
||||
msgstr[1] "%2 están escribiendo"
|
||||
|
||||
#~| msgctxt "@label:textbox"
|
||||
#~| msgid "Link Text:"
|
||||
#~ msgctxt "@action:button"
|
||||
#~ msgid "Rich Text"
|
||||
#~ msgstr "texto enriquecido"
|
||||
|
||||
552
po/eu/neochat.po
552
po/eu/neochat.po
File diff suppressed because it is too large
Load Diff
543
po/fi/neochat.po
543
po/fi/neochat.po
File diff suppressed because it is too large
Load Diff
575
po/fr/neochat.po
575
po/fr/neochat.po
File diff suppressed because it is too large
Load Diff
412
po/ga/neochat.po
412
po/ga/neochat.po
@@ -3,22 +3,23 @@
|
||||
# This file is distributed under the same license as the neochat package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Irish Gaelic <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ga\n"
|
||||
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? "
|
||||
"3 : 4\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -26,7 +27,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
@@ -329,7 +330,7 @@ msgid "Attachment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -883,7 +884,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1171,16 +1172,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1192,27 +1193,27 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1231,14 +1232,14 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1418,13 +1419,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1437,13 +1432,13 @@ msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1675,21 +1670,28 @@ msgstr ""
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
@@ -1900,43 +1902,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -1946,48 +1953,36 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2261,25 +2256,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3144,11 +3139,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3184,9 +3179,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr ""
|
||||
|
||||
@@ -3256,128 +3251,128 @@ msgstr ""
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr ""
|
||||
|
||||
@@ -3466,35 +3461,35 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4011,7 +4006,7 @@ msgid "Stop Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4039,14 +4034,14 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4118,13 +4113,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4198,19 +4193,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4486,13 +4481,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4751,45 +4746,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5057,18 +5020,32 @@ msgstr ""
|
||||
msgid "Show your messages on the right"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr ""
|
||||
@@ -5462,7 +5439,6 @@ msgid "Add keyword"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6004,45 +5980,50 @@ msgstr ""
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6060,39 +6041,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6100,123 +6055,94 @@ msgid ""
|
||||
"is clicked."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
|
||||
537
po/gl/neochat.po
537
po/gl/neochat.po
File diff suppressed because it is too large
Load Diff
649
po/he/neochat.po
649
po/he/neochat.po
File diff suppressed because it is too large
Load Diff
537
po/hi/neochat.po
537
po/hi/neochat.po
File diff suppressed because it is too large
Load Diff
537
po/hu/neochat.po
537
po/hu/neochat.po
File diff suppressed because it is too large
Load Diff
511
po/ia/neochat.po
511
po/ia/neochat.po
File diff suppressed because it is too large
Load Diff
463
po/id/neochat.po
463
po/id/neochat.po
File diff suppressed because it is too large
Load Diff
457
po/ie/neochat.po
457
po/ie/neochat.po
File diff suppressed because it is too large
Load Diff
713
po/it/neochat.po
713
po/it/neochat.po
File diff suppressed because it is too large
Load Diff
407
po/ja/neochat.po
407
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
||||
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
|
||||
"Language-Team: Japanese <kde-jp@kde.org>\n"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"X-Accelerator-Marker: &\n"
|
||||
"X-Text-Markup: kde4\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -22,7 +22,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
@@ -325,7 +325,7 @@ msgid "Attachment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -879,7 +879,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1167,16 +1167,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1188,27 +1188,27 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
@@ -1227,14 +1227,14 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgid "Request from other Devices"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
@@ -1414,13 +1414,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1429,13 +1423,13 @@ msgid "and 1 more…"
|
||||
msgid_plural "and %1 more…"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1667,21 +1661,28 @@ msgstr ""
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
@@ -1892,43 +1893,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -1938,48 +1944,36 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2252,25 +2246,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3135,11 +3129,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3175,9 +3169,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr ""
|
||||
|
||||
@@ -3247,128 +3241,128 @@ msgstr ""
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr ""
|
||||
|
||||
@@ -3457,35 +3451,35 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4002,7 +3996,7 @@ msgid "Stop Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4030,14 +4024,14 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4109,13 +4103,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4185,19 +4179,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4472,13 +4466,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4735,45 +4729,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5041,18 +5003,32 @@ msgstr ""
|
||||
msgid "Show your messages on the right"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr ""
|
||||
@@ -5446,7 +5422,6 @@ msgid "Add keyword"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -5988,45 +5963,50 @@ msgstr ""
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6044,39 +6024,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6084,123 +6038,94 @@ msgid ""
|
||||
"is clicked."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
|
||||
499
po/ka/neochat.po
499
po/ka/neochat.po
File diff suppressed because it is too large
Load Diff
534
po/ko/neochat.po
534
po/ko/neochat.po
File diff suppressed because it is too large
Load Diff
493
po/lt/neochat.po
493
po/lt/neochat.po
File diff suppressed because it is too large
Load Diff
534
po/lv/neochat.po
534
po/lv/neochat.po
File diff suppressed because it is too large
Load Diff
505
po/nl/neochat.po
505
po/nl/neochat.po
File diff suppressed because it is too large
Load Diff
512
po/nn/neochat.po
512
po/nn/neochat.po
File diff suppressed because it is too large
Load Diff
461
po/pa/neochat.po
461
po/pa/neochat.po
File diff suppressed because it is too large
Load Diff
751
po/pl/neochat.po
751
po/pl/neochat.po
File diff suppressed because it is too large
Load Diff
463
po/pt/neochat.po
463
po/pt/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
485
po/ro/neochat.po
485
po/ro/neochat.po
File diff suppressed because it is too large
Load Diff
520
po/ru/neochat.po
520
po/ru/neochat.po
File diff suppressed because it is too large
Load Diff
537
po/sa/neochat.po
537
po/sa/neochat.po
File diff suppressed because it is too large
Load Diff
457
po/sk/neochat.po
457
po/sk/neochat.po
File diff suppressed because it is too large
Load Diff
498
po/sl/neochat.po
498
po/sl/neochat.po
File diff suppressed because it is too large
Load Diff
534
po/sv/neochat.po
534
po/sv/neochat.po
File diff suppressed because it is too large
Load Diff
534
po/ta/neochat.po
534
po/ta/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
499
po/tr/neochat.po
499
po/tr/neochat.po
File diff suppressed because it is too large
Load Diff
499
po/uk/neochat.po
499
po/uk/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-02-27 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
|
||||
"PO-Revision-Date: 2024-04-23 19:24\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"X-Crowdin-File: /kf6-trunk/messages/neochat/neochat.pot\n"
|
||||
"X-Crowdin-File-ID: 44721\n"
|
||||
|
||||
#: src/app/controller.cpp:170
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"The reason for using push notifications, as in: '[Push notifications are "
|
||||
@@ -25,7 +25,7 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "接收新消息通知"
|
||||
|
||||
#: src/app/controller.cpp:317
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "正在接收推送通知"
|
||||
@@ -332,7 +332,7 @@ msgid "Attachment:"
|
||||
msgstr "附件:"
|
||||
|
||||
#: src/app/qml/AttachmentPane.qml:38 src/chatbar/ImageEditorPage.qml:19
|
||||
#: src/messagecontent/ImageComponent.qml:90
|
||||
#: src/messagecontent/ImageComponent.qml:89
|
||||
#: src/timeline/DelegateContextMenu.qml:199
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
@@ -375,10 +375,12 @@ msgid "Do you really want to leave %1?"
|
||||
msgstr "您真的要离开 %1 吗?"
|
||||
|
||||
#: src/app/qml/ConfirmLeaveDialog.qml:25
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Leave Room"
|
||||
msgctxt "@action:button Leave this room/space"
|
||||
msgid "Leave"
|
||||
msgstr ""
|
||||
msgstr "离开聊天室"
|
||||
|
||||
#: src/app/qml/ConfirmLogoutDialog.qml:15
|
||||
#, kde-format
|
||||
@@ -745,10 +747,12 @@ msgid "The input is not a valid room ID or alias"
|
||||
msgstr "输入不是有效的聊天室ID或别名"
|
||||
|
||||
#: src/app/qml/ManualRoomDialog.qml:110
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button Join the Jitsi meeting"
|
||||
#| msgid "Join"
|
||||
msgctxt "@action:button Join this room/space"
|
||||
msgid "Join"
|
||||
msgstr ""
|
||||
msgstr "加入"
|
||||
|
||||
#: src/app/qml/ManualUserDialog.qml:26
|
||||
#, kde-format
|
||||
@@ -886,7 +890,7 @@ msgctxt "@action:button"
|
||||
msgid "Quote"
|
||||
msgstr "引用"
|
||||
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:238
|
||||
#: src/app/qml/QuickFormatBar.qml:136 src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Insert link"
|
||||
@@ -1174,16 +1178,16 @@ msgctxt "@info:tooltip %1 is an e-mail address"
|
||||
msgid "Contact via e-mail (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16 src/settings/NeoChatSecurityPage.qml:96
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The recovery key was not correct."
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
@@ -1195,28 +1199,28 @@ msgstr ""
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Recovery Key"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a recovery key (also known as a “security key” or “backup "
|
||||
"passphrase”), enter it below or upload it as a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Recovery Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload From File"
|
||||
msgstr ""
|
||||
msgid "Upload from File"
|
||||
msgstr "从文件上传"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
@@ -1234,15 +1238,17 @@ msgstr "使用交叉签名解锁"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have previously verified this device, you request encryption keys "
|
||||
"from other verified devices."
|
||||
"If you have previously verified this device, you can try loading the backup "
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
"如果您以前曾验证过此设备,您可以通过点击下面的按钮来尝试从其他设备加载备份密"
|
||||
"钥。"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request From Other Devices"
|
||||
msgstr ""
|
||||
msgid "Request from other Devices"
|
||||
msgstr "来自其他设备的请求"
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:51
|
||||
#, kde-format
|
||||
@@ -1421,13 +1427,7 @@ msgctxt ""
|
||||
msgid "Mutual Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:424
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No rooms in common"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:459
|
||||
#: src/app/qml/UserDetailDialog.qml:441
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@info:label And '%1' more rooms you have in common with this user, but are "
|
||||
@@ -1436,13 +1436,13 @@ msgid "and 1 more…"
|
||||
msgid_plural "and %1 more…"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:466
|
||||
#: src/app/qml/UserDetailDialog.qml:448
|
||||
#, kde-format
|
||||
msgctxt "@title Private note for this user"
|
||||
msgid "Private Note"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UserDetailDialog.qml:478
|
||||
#: src/app/qml/UserDetailDialog.qml:460
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Only visible to you"
|
||||
@@ -1677,21 +1677,28 @@ msgstr "显示"
|
||||
msgid "Quit"
|
||||
msgstr "退出"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/AttachDialog.qml:29
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts a new line in the chat bar"
|
||||
msgid "Enter starts a new line"
|
||||
msgctxt "@action:button"
|
||||
msgid "Choose local file"
|
||||
msgstr "选择本地文件"
|
||||
|
||||
#: src/chatbar/AttachDialog.qml:45
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Clipboard image"
|
||||
msgstr "剪贴板图像"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Enter rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:85
|
||||
#: src/chatbar/ChatBar.qml:106
|
||||
#, kde-format
|
||||
msgctxt "As in enter starts send the chat message"
|
||||
msgid "Enter sends the message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBarCore.qml:79
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgctxt "@action:button"
|
||||
msgid "Exit rich text mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/EmojiGrid.qml:88
|
||||
@@ -1902,43 +1909,48 @@ msgctxt "@action:button"
|
||||
msgid "Text Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:238
|
||||
#: src/chatbar/RichEditBar.qml:237
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:252
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Edit link"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:262 src/chatbar/RichEditBar.qml:341
|
||||
#: src/chatbar/RichEditBar.qml:276 src/chatbar/RichEditBar.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:278 src/chatbar/RichEditBar.qml:349
|
||||
#: src/chatbar/RichEditBar.qml:292 src/chatbar/RichEditBar.qml:363
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Ordered List"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:295 src/chatbar/RichEditBar.qml:357
|
||||
#: src/chatbar/RichEditBar.qml:309 src/chatbar/RichEditBar.qml:371
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Increase List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:310 src/chatbar/RichEditBar.qml:366
|
||||
#: src/chatbar/RichEditBar.qml:324 src/chatbar/RichEditBar.qml:380
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Decrease List Level"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/RichEditBar.qml:327
|
||||
#: src/chatbar/RichEditBar.qml:341
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "List Style"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:54
|
||||
#: src/chatbar/SendBar.qml:57
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@Warning: that any rich text in the chat bar will be switched for the plain "
|
||||
@@ -1948,48 +1960,38 @@ msgid ""
|
||||
"removed"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:88
|
||||
#, kde-format
|
||||
#: src/chatbar/SendBar.qml:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to message"
|
||||
msgstr ""
|
||||
msgstr "发送消息"
|
||||
|
||||
#: src/chatbar/SendBar.qml:118 src/chatbar/SendBar.qml:149
|
||||
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Attach an image or file"
|
||||
msgstr "附送图像或文件"
|
||||
|
||||
#: src/chatbar/SendBar.qml:123 src/chatbar/SendBar.qml:162
|
||||
#: src/chatbar/SendBar.qml:137 src/chatbar/SendBar.qml:176
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Location"
|
||||
msgstr "发送位置"
|
||||
|
||||
#: src/chatbar/SendBar.qml:128 src/chatbar/SendBar.qml:174
|
||||
#: src/chatbar/SendBar.qml:142 src/chatbar/SendBar.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Create a Poll"
|
||||
msgstr "创建投票"
|
||||
|
||||
#: src/chatbar/SendBar.qml:133 src/chatbar/SendBar.qml:185
|
||||
#: src/chatbar/SendBar.qml:147 src/chatbar/SendBar.qml:199
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Send a Voice Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:195
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Rich Text Controls"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/SendBar.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -2263,25 +2265,25 @@ msgctxt ""
|
||||
msgid "State Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:124
|
||||
#: src/libneochat/accountmanager.cpp:123
|
||||
#, kde-format
|
||||
msgid "Access token wasn't found: Maybe it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:128
|
||||
#: src/libneochat/accountmanager.cpp:127
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Access to keychain was denied: Please allow NeoChat to read the access token"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:131
|
||||
#: src/libneochat/accountmanager.cpp:130
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"No keychain available: Please install a keychain, e.g. KWallet or GNOME "
|
||||
"keyring on Linux"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/accountmanager.cpp:134
|
||||
#: src/libneochat/accountmanager.cpp:133
|
||||
#, kde-format
|
||||
msgid "Unable to read access token: %1"
|
||||
msgstr ""
|
||||
@@ -3146,11 +3148,11 @@ msgid "Sends the given message as a notice"
|
||||
msgstr "发送消息,并将此消息标记为一条通知"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:182
|
||||
#: src/libneochat/models/actionsmodel.cpp:315
|
||||
#: src/libneochat/models/actionsmodel.cpp:336
|
||||
#: src/libneochat/models/actionsmodel.cpp:376
|
||||
#: src/libneochat/models/actionsmodel.cpp:412
|
||||
#: src/libneochat/models/actionsmodel.cpp:444
|
||||
#: src/libneochat/models/actionsmodel.cpp:316
|
||||
#: src/libneochat/models/actionsmodel.cpp:338
|
||||
#: src/libneochat/models/actionsmodel.cpp:379
|
||||
#: src/libneochat/models/actionsmodel.cpp:416
|
||||
#: src/libneochat/models/actionsmodel.cpp:449
|
||||
#, kde-format
|
||||
msgctxt "'<text>' does not look like a matrix id."
|
||||
msgid "'%1' does not look like a matrix id."
|
||||
@@ -3186,9 +3188,9 @@ msgid "%1 was invited into this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:208
|
||||
#: src/libneochat/models/actionsmodel.cpp:328
|
||||
#: src/libneochat/models/actionsmodel.cpp:348
|
||||
#: src/libneochat/models/actionsmodel.cpp:434
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:350
|
||||
#: src/libneochat/models/actionsmodel.cpp:438
|
||||
msgid "<user id>"
|
||||
msgstr "<用户 ID>"
|
||||
|
||||
@@ -3258,128 +3260,128 @@ msgstr "修改你的全局显示名称"
|
||||
msgid "Changes your display name in this room"
|
||||
msgstr "修改你在此聊天室的显示名称"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:319
|
||||
#: src/libneochat/models/actionsmodel.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "<username> is already ignored."
|
||||
msgid "%1 is already ignored."
|
||||
msgstr "%1 已被忽略。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:323
|
||||
#: src/libneochat/models/actionsmodel.cpp:324
|
||||
#, kde-format
|
||||
msgctxt "<username> is now ignored"
|
||||
msgid "%1 is now ignored."
|
||||
msgstr "%1 已被忽略。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:329
|
||||
#: src/libneochat/models/actionsmodel.cpp:330
|
||||
msgid "Ignores the given user"
|
||||
msgstr "忽略此用户"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:340
|
||||
#: src/libneochat/models/actionsmodel.cpp:342
|
||||
#, kde-format
|
||||
msgctxt "<username> is not ignored."
|
||||
msgid "%1 is not ignored."
|
||||
msgstr "%1 未被忽略。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:344
|
||||
#: src/libneochat/models/actionsmodel.cpp:346
|
||||
#, kde-format
|
||||
msgctxt "<username> is no longer ignored."
|
||||
msgid "%1 is no longer ignored."
|
||||
msgstr "%1 不再被忽略。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:349
|
||||
#: src/libneochat/models/actionsmodel.cpp:351
|
||||
msgid "Unignores the given user"
|
||||
msgstr "取消忽略此用户"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:367
|
||||
#: src/libneochat/models/actionsmodel.cpp:369
|
||||
msgid "<reaction text>"
|
||||
msgstr "<要回应的文本>"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:368
|
||||
#: src/libneochat/models/actionsmodel.cpp:370
|
||||
msgid "React to the message with the given text"
|
||||
msgstr "用所提供的文本回应消息"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:382
|
||||
#: src/libneochat/models/actionsmodel.cpp:385
|
||||
#, kde-format
|
||||
msgctxt "<user> is already banned from this room."
|
||||
msgid "%1 is already banned from this room."
|
||||
msgstr "%1 在此聊天室中已被封禁。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:390
|
||||
#: src/libneochat/models/actionsmodel.cpp:393
|
||||
#, kde-format
|
||||
msgid "You are not allowed to ban users from this room."
|
||||
msgstr "您无权在此聊天室中封禁用户。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:396
|
||||
#: src/libneochat/models/actionsmodel.cpp:399
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to ban <username> from this room."
|
||||
msgid "You are not allowed to ban %1 from this room."
|
||||
msgstr "您无权在此聊天室中封禁 %1。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:400
|
||||
#: src/libneochat/models/actionsmodel.cpp:403
|
||||
#, kde-format
|
||||
msgctxt "<username> was banned from this room."
|
||||
msgid "%1 was banned from this room."
|
||||
msgstr "%1 在此聊天室中被封禁。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:404
|
||||
#: src/libneochat/models/actionsmodel.cpp:475
|
||||
#: src/libneochat/models/actionsmodel.cpp:407
|
||||
#: src/libneochat/models/actionsmodel.cpp:480
|
||||
msgid "<user id> [<reason>]"
|
||||
msgstr "<用户 ID> [<原因>]"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:405
|
||||
#: src/libneochat/models/actionsmodel.cpp:408
|
||||
msgid "Bans the given user"
|
||||
msgstr "封禁此用户"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:420
|
||||
#: src/libneochat/models/actionsmodel.cpp:424
|
||||
#, kde-format
|
||||
msgid "You are not allowed to unban users from this room."
|
||||
msgstr "您无权在此聊天室中解封用户。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:425
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#, kde-format
|
||||
msgctxt "<user> is not banned from this room."
|
||||
msgid "%1 is not banned from this room."
|
||||
msgstr "%1 在此聊天室中未被封禁。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:429
|
||||
#: src/libneochat/models/actionsmodel.cpp:433
|
||||
#, kde-format
|
||||
msgctxt "<username> was unbanned from this room."
|
||||
msgid "%1 was unbanned from this room."
|
||||
msgstr "%1 在此聊天室中被解封。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:435
|
||||
#: src/libneochat/models/actionsmodel.cpp:439
|
||||
msgid "Removes the ban of the given user"
|
||||
msgstr "解封此用户"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:448
|
||||
#: src/libneochat/models/actionsmodel.cpp:453
|
||||
#, kde-format
|
||||
msgid "You cannot kick yourself from the room."
|
||||
msgstr "您无法将自己踢出聊天室。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:452
|
||||
#: src/libneochat/models/actionsmodel.cpp:457
|
||||
#, kde-format
|
||||
msgctxt "<username> is not in this room"
|
||||
msgid "%1 is not in this room."
|
||||
msgstr "%1 不在此聊天室。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:461
|
||||
#: src/libneochat/models/actionsmodel.cpp:466
|
||||
#, kde-format
|
||||
msgid "You are not allowed to kick users from this room."
|
||||
msgstr "您无权从此聊天室中踢出用户。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:467
|
||||
#: src/libneochat/models/actionsmodel.cpp:472
|
||||
#, kde-format
|
||||
msgctxt "You are not allowed to kick <username> from this room"
|
||||
msgid "You are not allowed to kick %1 from this room."
|
||||
msgstr "您无权从此聊天室中踢出 %1。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:471
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#, kde-format
|
||||
msgctxt "<username> was kicked from this room."
|
||||
msgid "%1 was kicked from this room."
|
||||
msgstr "%1 被踢出此聊天室。"
|
||||
|
||||
#: src/libneochat/models/actionsmodel.cpp:476
|
||||
#: src/libneochat/models/actionsmodel.cpp:481
|
||||
msgid "Removes the user from the room"
|
||||
msgstr "从聊天室中移除此用户"
|
||||
|
||||
@@ -3468,35 +3470,35 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:76
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:340
|
||||
#: src/libneochat/neochatconnection.cpp:336
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:371
|
||||
#: src/libneochat/neochatconnection.cpp:367
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "聊天室创建失败:%1"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:400
|
||||
#: src/libneochat/neochatconnection.cpp:396
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "空间创建失败:%1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1244
|
||||
#: src/libneochat/neochatroom.cpp:1243
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "举报成功。"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1610 src/libneochat/neochatroom.cpp:1618
|
||||
#: src/libneochat/neochatroom.cpp:1608 src/libneochat/neochatroom.cpp:1616
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -4014,7 +4016,7 @@ msgid "Stop Download"
|
||||
msgstr "停止下载"
|
||||
|
||||
#: src/messagecontent/FileComponent.qml:173
|
||||
#: src/messagecontent/ImageComponent.qml:114
|
||||
#: src/messagecontent/ImageComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove attachment"
|
||||
@@ -4042,14 +4044,14 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:74
|
||||
#: src/messagecontent/ImageComponent.qml:73
|
||||
#: src/messagecontent/VideoComponent.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ImageComponent.qml:189
|
||||
#: src/messagecontent/ImageComponent.qml:190
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
@@ -4121,13 +4123,13 @@ msgctxt "@info"
|
||||
msgid "Loading reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:97
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:96
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Failed to download file."
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:100
|
||||
#: src/messagecontent/models/messagecontentmodel.cpp:99
|
||||
#, kde-format
|
||||
msgctxt "@info Failed to download file: [error message]"
|
||||
msgid "Failed to download file:<br />%1"
|
||||
@@ -4197,19 +4199,19 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr "取消回复"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:112
|
||||
#: src/messagecontent/TextComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Set an attachment caption…"
|
||||
msgstr "设置附件说明…"
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:114
|
||||
#: src/messagecontent/TextComponent.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send an encrypted message…"
|
||||
msgstr "发送一条加密消息..."
|
||||
|
||||
#: src/messagecontent/TextComponent.qml:116
|
||||
#: src/messagecontent/TextComponent.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
@@ -4484,13 +4486,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "创建空间"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:370
|
||||
#: src/rooms/models/roomtreemodel.cpp:369
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:372
|
||||
#: src/rooms/models/roomtreemodel.cpp:371
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4747,45 +4749,13 @@ msgctxt "@action:inmenu"
|
||||
msgid "Copy Space Address"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:133
|
||||
#: src/rooms/SpaceListContextMenu.qml:73 src/spaces/SpaceHomePage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Space Settings"
|
||||
msgstr "空间设置"
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:85 src/spaces/SpaceHomePage.qml:109
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report…"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:90 src/spaces/SpaceHomePage.qml:114
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:91 src/spaces/SpaceHomePage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Optionally give a reason for reporting this space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:93 src/spaces/SpaceHomePage.qml:117
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@action:button 'Report' as in 'Report this space to the administrators'"
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:97 src/spaces/SpaceHomePage.qml:121
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Report Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/SpaceListContextMenu.qml:107
|
||||
#: src/rooms/SpaceListContextMenu.qml:85
|
||||
#, kde-format
|
||||
msgctxt "'Space' is a matrix space"
|
||||
msgid "Leave Space…"
|
||||
@@ -5053,18 +5023,32 @@ msgstr "仅在启用透明聊天页面时才启用。"
|
||||
msgid "Show your messages on the right"
|
||||
msgstr "将您的消息显示在右侧"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:339
|
||||
#: src/settings/AppearanceSettingsPage.qml:344
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:345
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:355
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Show Avatars"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:343
|
||||
#: src/settings/AppearanceSettingsPage.qml:359
|
||||
#, kde-format
|
||||
msgid "In chat"
|
||||
msgstr "在聊天会话中"
|
||||
|
||||
#: src/settings/AppearanceSettingsPage.qml:353
|
||||
#: src/settings/AppearanceSettingsPage.qml:369
|
||||
#, kde-format
|
||||
msgid "In sidebar"
|
||||
msgstr "在侧边栏中"
|
||||
@@ -5462,7 +5446,6 @@ msgid "Add keyword"
|
||||
msgstr "添加关键词"
|
||||
|
||||
#: src/settings/GlobalNotificationsPage.qml:167
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Invites"
|
||||
@@ -6004,45 +5987,50 @@ msgstr "编辑器"
|
||||
msgid "Use s/text/replacement syntax to edit your last message"
|
||||
msgstr "使用 s/原始文本/替换文本 语法来修改你的上一条信息"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:279
|
||||
#: src/settings/NeoChatGeneralPage.qml:283
|
||||
#, kde-format
|
||||
msgid "Send typing notifications"
|
||||
msgstr "发送输入中状态"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:293
|
||||
#, kde-format
|
||||
msgid "Developer Settings"
|
||||
msgstr "开发者设置"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:284
|
||||
#: src/settings/NeoChatGeneralPage.qml:298
|
||||
#, kde-format
|
||||
msgid "Enable developer tools"
|
||||
msgstr "启用开发者工具"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:300
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#, kde-format
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:304
|
||||
#: src/settings/NeoChatGeneralPage.qml:318
|
||||
#, kde-format
|
||||
msgid "Developer Tools"
|
||||
msgstr "开发者工具"
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:309
|
||||
#: src/settings/NeoChatGeneralPage.qml:323
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Default Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:314
|
||||
#: src/settings/NeoChatGeneralPage.qml:328
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset all configuration values to their default…"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:320
|
||||
#: src/settings/NeoChatGeneralPage.qml:334
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Reset Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatGeneralPage.qml:321
|
||||
#: src/settings/NeoChatGeneralPage.qml:335
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Do you really want to reset all options to their default values?"
|
||||
@@ -6060,39 +6048,13 @@ msgctxt "@action:button"
|
||||
msgid "Ignored Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:43
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Show link previews"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid ""
|
||||
"You can customize this per-room under room settings. If unchecked, disables "
|
||||
"link previews in every room."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Send typing notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#: src/settings/NeoChatSecurityPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Hide images and videos by default"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#: src/settings/NeoChatSecurityPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -6100,123 +6062,94 @@ msgid ""
|
||||
"is clicked."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "Anyone can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:98
|
||||
#: src/settings/NeoChatSecurityPage.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Known users"
|
||||
msgid "Reject invitations from unknown users"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Only users you share a room with can send you invites."
|
||||
msgid ""
|
||||
"If enabled, NeoChat will reject invitations from users you don't share a "
|
||||
"room with."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:99
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#: src/settings/NeoChatSecurityPage.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server does not support this setting."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "No one"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@info:description"
|
||||
msgid "No one can send you invites."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "加密"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:122
|
||||
#: src/settings/NeoChatSecurityPage.qml:76
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:123
|
||||
#: src/settings/NeoChatSecurityPage.qml:77
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:137
|
||||
#: src/settings/NeoChatSecurityPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@title:group"
|
||||
msgid "Encryption"
|
||||
msgstr "加密"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Key Storage"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:138
|
||||
#: src/settings/NeoChatSecurityPage.qml:93
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import or unlock encryption keys from other devices."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Manage Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:150
|
||||
#: src/settings/NeoChatSecurityPage.qml:105
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:151
|
||||
#: src/settings/NeoChatSecurityPage.qml:106
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Import encryption keys from a backup file."
|
||||
msgid "Import encryption keys from a backup."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:157
|
||||
#: src/settings/NeoChatSecurityPage.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Import Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:160
|
||||
#: src/settings/NeoChatSecurityPage.qml:115
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Keys imported successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:173
|
||||
#: src/settings/NeoChatSecurityPage.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Export Keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:174
|
||||
#: src/settings/NeoChatSecurityPage.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Export this device's encryption keys to a file."
|
||||
msgid "Export this device's encryption keys."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:180
|
||||
#: src/settings/NeoChatSecurityPage.qml:135
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Export Keys"
|
||||
@@ -7574,3 +7507,6 @@ msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 正在输入"
|
||||
|
||||
#~ msgid "OK"
|
||||
#~ msgstr "确定"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -41,10 +41,18 @@ slots:
|
||||
bus: session
|
||||
|
||||
parts:
|
||||
olm:
|
||||
source: https://gitlab.matrix.org/matrix-org/olm.git
|
||||
rustup:
|
||||
plugin: rust
|
||||
source: .
|
||||
rust-channel: "1.76"
|
||||
override-build: ""
|
||||
override-prime: ""
|
||||
|
||||
corrosion:
|
||||
after: [rustup]
|
||||
source: https://github.com/corrosion-rs/corrosion.git
|
||||
source-depth: 1
|
||||
source-tag: '3.2.16'
|
||||
source-tag: 'v0.6.0'
|
||||
plugin: cmake
|
||||
cmake-parameters:
|
||||
- -DCMAKE_BUILD_TYPE=Release
|
||||
@@ -98,7 +106,7 @@ parts:
|
||||
|
||||
libquotient:
|
||||
after:
|
||||
- olm
|
||||
- corrosion
|
||||
- qtkeychain
|
||||
source: https://github.com/quotient-im/libQuotient.git
|
||||
source-tag: 0.9.2
|
||||
@@ -114,8 +122,6 @@ parts:
|
||||
- -DCMAKE_INSTALL_PREFIX=/usr
|
||||
- -DCMAKE_BUILD_TYPE=Release
|
||||
- -DBUILD_TESTING=OFF
|
||||
- -DQuotient_ENABLE_E2EE=ON
|
||||
- -DBUILD_WITH_QT6=ON
|
||||
prime:
|
||||
- -usr/include
|
||||
- -usr/lib/*/pkgconfig
|
||||
|
||||
@@ -171,7 +171,12 @@ ecm_add_app_icon(NEOCHAT_ICON ICONS ${CMAKE_SOURCE_DIR}/128-logo.png)
|
||||
target_sources(neochat-app PRIVATE ${NEOCHAT_ICON})
|
||||
|
||||
if(NOT ANDROID)
|
||||
target_sources(neochat PRIVATE trayicon.cpp trayicon.h)
|
||||
if (NOT WIN32 AND NOT APPLE)
|
||||
target_sources(neochat PRIVATE trayicon_sni.cpp trayicon_sni.h)
|
||||
target_link_libraries(neochat PRIVATE KF6::StatusNotifierItem)
|
||||
else()
|
||||
target_sources(neochat PRIVATE trayicon.cpp trayicon.h)
|
||||
endif()
|
||||
target_link_libraries(neochat PUBLIC KF6::WindowSystem)
|
||||
target_compile_definitions(neochat PUBLIC -DHAVE_WINDOWSYSTEM)
|
||||
endif()
|
||||
|
||||
@@ -29,8 +29,10 @@
|
||||
#include "proxycontroller.h"
|
||||
#include "roommanager.h"
|
||||
|
||||
#if !defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
|
||||
#include "trayicon.h"
|
||||
#elif !defined(Q_OS_ANDROID)
|
||||
#include "trayicon_sni.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_KUNIFIEDPUSH
|
||||
|
||||
@@ -74,11 +74,6 @@ QHash<int, QByteArray> CommonRoomsModel::roleNames() const
|
||||
};
|
||||
}
|
||||
|
||||
bool CommonRoomsModel::loading() const
|
||||
{
|
||||
return m_loading;
|
||||
}
|
||||
|
||||
void CommonRoomsModel::reload()
|
||||
{
|
||||
if (!m_connection || m_userId.isEmpty()) {
|
||||
@@ -94,26 +89,15 @@ void CommonRoomsModel::reload()
|
||||
return;
|
||||
}
|
||||
|
||||
m_loading = true;
|
||||
Q_EMIT loadingChanged();
|
||||
|
||||
m_connection->callApi<NeochatGetCommonRoomsJob>(m_userId)
|
||||
.then([this](const auto job) {
|
||||
const auto &replyData = job->jsonData();
|
||||
beginResetModel();
|
||||
for (const auto &roomId : replyData[u"joined"_s].toArray()) {
|
||||
m_commonRooms.push_back(roomId.toString());
|
||||
}
|
||||
endResetModel();
|
||||
Q_EMIT countChanged();
|
||||
|
||||
m_loading = false;
|
||||
Q_EMIT loadingChanged();
|
||||
})
|
||||
.onFailure([this] {
|
||||
m_loading = false;
|
||||
Q_EMIT loadingChanged();
|
||||
});
|
||||
m_connection->callApi<NeochatGetCommonRoomsJob>(m_userId).then([this](const auto job) {
|
||||
const auto &replyData = job->jsonData();
|
||||
beginResetModel();
|
||||
for (const auto &roomId : replyData[u"joined"_s].toArray()) {
|
||||
m_commonRooms.push_back(roomId.toString());
|
||||
}
|
||||
endResetModel();
|
||||
Q_EMIT countChanged();
|
||||
});
|
||||
}
|
||||
|
||||
#include "moc_commonroomsmodel.cpp"
|
||||
|
||||
@@ -21,7 +21,6 @@ class CommonRoomsModel : public QAbstractListModel
|
||||
Q_PROPERTY(NeoChatConnection *connection WRITE setConnection READ connection NOTIFY connectionChanged REQUIRED)
|
||||
Q_PROPERTY(QString userId WRITE setUserId READ userId NOTIFY userIdChanged REQUIRED)
|
||||
Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
|
||||
Q_PROPERTY(bool loading READ loading NOTIFY loadingChanged)
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
@@ -44,13 +43,10 @@ public:
|
||||
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
bool loading() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void connectionChanged();
|
||||
void userIdChanged();
|
||||
void countChanged();
|
||||
void loadingChanged();
|
||||
|
||||
private:
|
||||
void reload();
|
||||
@@ -58,5 +54,4 @@ private:
|
||||
QPointer<NeoChatConnection> m_connection;
|
||||
QString m_userId;
|
||||
QList<QString> m_commonRooms;
|
||||
bool m_loading = false;
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ Kirigami.Page {
|
||||
},
|
||||
State {
|
||||
name: "waitingForVerification"
|
||||
when: root.session.state === KeyVerificationSession.WAITINGFORVERIFICATION
|
||||
when: root.session.state === KeyVerificationSession.TRANSITIONED && root.session.sasState === KeyVerificationSession.SASKEYSEXCHANGED
|
||||
PropertyChanges {
|
||||
stateLoader.sourceComponent: emojiSas
|
||||
}
|
||||
@@ -78,7 +78,15 @@ Kirigami.Page {
|
||||
},
|
||||
State {
|
||||
name: "done"
|
||||
when: root.session.state === KeyVerificationSession.DONE
|
||||
when: root.session.sasState === KeyVerificationSession.SASDONE
|
||||
PropertyChanges {
|
||||
target: stateLoader
|
||||
sourceComponent: message
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "confirmed"
|
||||
when: root.session.state === KeyVerificationSession.TRANSITIONED && root.session.sasState === KeyVerificationSession.SASCONFIRMED
|
||||
PropertyChanges {
|
||||
stateLoader.sourceComponent: message
|
||||
}
|
||||
@@ -141,6 +149,14 @@ Kirigami.Page {
|
||||
return "security-medium-symbolic";
|
||||
case KeyVerificationSession.DONE:
|
||||
return "security-high";
|
||||
case KeyVerificationSession.TRANSITIONED: {
|
||||
if (root.session.sasState === KeyVerificationSession.SASCONFIRMED) {
|
||||
return "security-high";
|
||||
}
|
||||
if (root.session.sasState === KeyVerificationSession.SASDONE) {
|
||||
return "security-high";
|
||||
}
|
||||
}
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@@ -149,16 +165,38 @@ Kirigami.Page {
|
||||
switch (root.session.state) {
|
||||
case KeyVerificationSession.WAITINGFORREADY:
|
||||
return i18n("Waiting for device to accept verification.");
|
||||
case KeyVerificationSession.INCOMING:
|
||||
return i18n("Incoming key verification request from device **%1**", root.session.remoteDeviceId);
|
||||
case KeyVerificationSession.INCOMING: {
|
||||
if (root.session.remoteDeviceId.length > 0) {
|
||||
return i18n("Incoming key verification request from device **%1**", root.session.remoteDeviceId);
|
||||
} else {
|
||||
return i18n("Incoming key verification request from **%1**", root.session.remoteUserId);
|
||||
}
|
||||
}
|
||||
case KeyVerificationSession.WAITINGFORMAC:
|
||||
return i18n("Waiting for other party to send us keys.");
|
||||
case KeyVerificationSession.WAITINGFORKEY:
|
||||
return i18n("Waiting for other party to confirm our keys.");
|
||||
case KeyVerificationSession.WAITINGFORACCEPT:
|
||||
return i18n("Waiting for other party to verify.");
|
||||
case KeyVerificationSession.DONE:
|
||||
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId);
|
||||
case KeyVerificationSession.DONE: {
|
||||
if (root.session.remoteDeviceId.length > 0) {
|
||||
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId)
|
||||
} else {
|
||||
return i18nc("@info", "Successfully verified **%1**", root.session.remoteUserId)
|
||||
}
|
||||
}
|
||||
case KeyVerificationSession.TRANSITIONED: {
|
||||
if (root.session.sasState === KeyVerificationSession.SASCONFIRMED) {
|
||||
return i18nc("@info", "Waiting for remote party to confirm verification");
|
||||
}
|
||||
if (root.session.sasState === KeyVerificationSession.SASDONE) {
|
||||
if (root.session.remoteDeviceId.length > 0) {
|
||||
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId)
|
||||
} else {
|
||||
return i18nc("@info", "Successfully verified **%1**", root.session.remoteUserId)
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ Kirigami.Page {
|
||||
|
||||
spacing: 0
|
||||
|
||||
readonly property bool shouldShowPins: root.currentRoom?.pinnedMessage.length > 0 && !Kirigami.Settings.isMobile
|
||||
readonly property bool shouldShowPins: root.currentRoom.pinnedMessage.length > 0 && !Kirigami.Settings.isMobile
|
||||
|
||||
QQC2.Control {
|
||||
id: pinControl
|
||||
|
||||
@@ -125,7 +125,7 @@ Kirigami.Dialog {
|
||||
text: root.shareUrl,
|
||||
title: root.displayName,
|
||||
subtitle: root.user.id,
|
||||
avatarColor: root.room?.member(root.user.id).color ?? null,
|
||||
avatarColor: root.room?.member(root.user.id).color,
|
||||
avatarSource: avatar.source,
|
||||
}) as QrCodeMaximizeComponent;
|
||||
root.close();
|
||||
@@ -401,36 +401,18 @@ Kirigami.Dialog {
|
||||
Kirigami.Heading {
|
||||
text: i18nc("@title The set of common rooms between your current user and the one shown", "Mutual Rooms")
|
||||
level: 4
|
||||
visible: !root.isSelf && root.connection.canCheckMutualRooms
|
||||
visible: !root.isSelf && root.hasMutualRooms
|
||||
|
||||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
visible: !root.isSelf && root.connection.canCheckMutualRooms
|
||||
visible: !root.isSelf && root.hasMutualRooms
|
||||
|
||||
Layout.topMargin: Kirigami.Units.smallSpacing
|
||||
|
||||
QQC2.BusyIndicator {
|
||||
visible: roomRepeater.count === 0 && root.model.loading
|
||||
|
||||
Layout.preferredWidth: Kirigami.Units.iconSizes.medium
|
||||
Layout.preferredHeight: Kirigami.Units.iconSizes.medium
|
||||
}
|
||||
|
||||
QQC2.Label {
|
||||
visible: roomRepeater.count === 0 && !root.model.loading
|
||||
text: i18nc("@info:label", "No rooms in common")
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
Layout.preferredHeight: Kirigami.Units.iconSizes.medium
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Repeater {
|
||||
id: roomRepeater
|
||||
|
||||
model: root.limiterModel
|
||||
|
||||
delegate: KirigamiComponents.AvatarButton {
|
||||
|
||||
@@ -537,14 +537,13 @@ void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
||||
LastRoomBlocker blocker(this);
|
||||
|
||||
// We can't have empty keys in KConfig, so it's stored as "Home":
|
||||
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString());
|
||||
!lastRoom.isEmpty() && m_connection->room(lastRoom)) {
|
||||
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString()); !lastRoom.isEmpty()) {
|
||||
resolveResource(lastRoom, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
|
||||
// If no last room was opened, go to the space home:
|
||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s && m_connection->room(spaceId)) {
|
||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
||||
resolveResource(spaceId, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
*
|
||||
* @sa Quotient::UriResolverBase::visitResource()
|
||||
*/
|
||||
Q_INVOKABLE void resolveResource(Quotient::Uri uri, const QString &action = {});
|
||||
Q_INVOKABLE void resolveResource(Uri uri, const QString &action = {});
|
||||
|
||||
bool hasOpenRoom() const;
|
||||
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
* @brief Show a context menu for the given event.
|
||||
*/
|
||||
Q_INVOKABLE void
|
||||
viewEventMenu(QObject *parent, const Quotient::RoomEvent *event, NeoChatRoom *room, const QString &selectedText = {}, const QString &hoveredLink = {});
|
||||
viewEventMenu(QObject *parent, const RoomEvent *event, NeoChatRoom *room, const QString &selectedText = {}, const QString &hoveredLink = {});
|
||||
|
||||
/**
|
||||
* @brief Set a URL to be loaded as the initial room.
|
||||
@@ -316,7 +316,7 @@ Q_SIGNALS:
|
||||
const QString &plainText,
|
||||
const QString &richtText,
|
||||
const QString &mimeType,
|
||||
const Quotient::FileTransferInfo &progressInfo,
|
||||
const FileTransferInfo &progressInfo,
|
||||
const QString &selectedText,
|
||||
const QString &hoveredLink);
|
||||
|
||||
|
||||
32
src/app/trayicon_sni.cpp
Normal file
32
src/app/trayicon_sni.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
// SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "trayicon_sni.h"
|
||||
#include <KWindowSystem>
|
||||
|
||||
#include "windowcontroller.h"
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
TrayIcon::TrayIcon(QObject *parent)
|
||||
: KStatusNotifierItem(parent)
|
||||
{
|
||||
setCategory(KStatusNotifierItem::ItemCategory::Communications);
|
||||
setIconByName(u"org.kde.neochat.tray"_s);
|
||||
|
||||
connect(&WindowController::instance(), &WindowController::windowChanged, this, [this] {
|
||||
setAssociatedWindow(WindowController::instance().window());
|
||||
});
|
||||
}
|
||||
|
||||
void TrayIcon::show()
|
||||
{
|
||||
setStatus(Active);
|
||||
}
|
||||
|
||||
void TrayIcon::hide()
|
||||
{
|
||||
setStatus(Passive);
|
||||
}
|
||||
|
||||
#include "moc_trayicon_sni.cpp"
|
||||
30
src/app/trayicon_sni.h
Normal file
30
src/app/trayicon_sni.h
Normal file
@@ -0,0 +1,30 @@
|
||||
// SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <KStatusNotifierItem>
|
||||
|
||||
/**
|
||||
* @class TrayIcon
|
||||
*
|
||||
* A class inheriting KStatusNotifierItem to provide a tray icon.
|
||||
*
|
||||
* @sa KStatusNotifierItem
|
||||
*/
|
||||
class TrayIcon : public KStatusNotifierItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit TrayIcon(QObject *parent = nullptr);
|
||||
|
||||
/**
|
||||
* @brief Show the tray icon.
|
||||
*/
|
||||
void show();
|
||||
|
||||
/**
|
||||
* @brief Hide the tray icon.
|
||||
*/
|
||||
void hide();
|
||||
};
|
||||
@@ -32,16 +32,6 @@ void WindowController::setWindow(QWindow *window)
|
||||
{
|
||||
m_window = window;
|
||||
|
||||
if (window != nullptr) {
|
||||
// to restore maximized state after reopening from the system tray
|
||||
connect(m_window, &QWindow::windowStateChanged, this, [this]() {
|
||||
if (m_window->isVisible()) {
|
||||
m_wasMaximized = m_window->windowStates() & Qt::WindowMaximized;
|
||||
}
|
||||
});
|
||||
m_wasMaximized = m_window->windowStates() & Qt::WindowMaximized;
|
||||
}
|
||||
|
||||
Q_EMIT windowChanged();
|
||||
}
|
||||
|
||||
@@ -56,11 +46,7 @@ void WindowController::showAndRaiseWindow(const QString &startupId)
|
||||
return;
|
||||
}
|
||||
if (!m_window->isVisible()) {
|
||||
if (m_wasMaximized) {
|
||||
m_window->showMaximized();
|
||||
} else {
|
||||
m_window->show();
|
||||
}
|
||||
m_window->show();
|
||||
}
|
||||
|
||||
#ifdef HAVE_WINDOWSYSTEM
|
||||
|
||||
@@ -67,6 +67,5 @@ Q_SIGNALS:
|
||||
private:
|
||||
WindowController() = default;
|
||||
|
||||
bool m_wasMaximized;
|
||||
QWindow *m_window = nullptr;
|
||||
};
|
||||
|
||||
@@ -67,26 +67,52 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
implicitHeight: column.implicitHeight + Kirigami.Units.largeSpacing
|
||||
implicitHeight: core.implicitHeight + Kirigami.Units.largeSpacing
|
||||
|
||||
ColumnLayout {
|
||||
id: column
|
||||
ChatBarCore {
|
||||
id: core
|
||||
anchors.top: root.top
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
ChatBarCore {
|
||||
id: core
|
||||
Message.room: root.currentRoom
|
||||
room: root.currentRoom
|
||||
maxAvailableWidth: chatBarSizeHelper.availableWidth
|
||||
}
|
||||
QQC2.Label {
|
||||
Layout.fillWidth: true
|
||||
visible: !Kirigami.Setting.isMobile
|
||||
text: NeoChatConfig.sendMessageWith === 1 ? i18nc("As in enter starts a new line in the chat bar", "Enter starts a new line") : i18nc("As in enter starts send the chat message", "Enter sends the message")
|
||||
horizontalAlignment: Text.AlignRight
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize * NeoChatConfig.fontScale * 0.75
|
||||
}
|
||||
|
||||
Message.room: root.currentRoom
|
||||
room: root.currentRoom
|
||||
maxAvailableWidth: chatBarSizeHelper.availableWidth
|
||||
}
|
||||
MouseArea {
|
||||
id: hoverArea
|
||||
anchors {
|
||||
top: chatModeButton.top
|
||||
left: root.left
|
||||
right: root.right
|
||||
bottom: core.top
|
||||
}
|
||||
propagateComposedEvents: true
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
}
|
||||
QQC2.Button {
|
||||
id: chatModeButton
|
||||
anchors {
|
||||
bottom: core.top
|
||||
bottomMargin: Kirigami.Units.smallSpacing
|
||||
horizontalCenter: root.horizontalCenter
|
||||
}
|
||||
|
||||
visible: hoverArea.containsMouse || hovered || core.hovered
|
||||
width: Kirigami.Units.iconSizes.enormous
|
||||
height: Kirigami.Units.iconSizes.smallMedium
|
||||
|
||||
icon.name: NeoChatConfig.sendMessageWith === 0 ? "arrow-up" : "arrow-down"
|
||||
text: NeoChatConfig.sendMessageWith === 0 ? i18nc("@action:button", "Enter rich text mode") : i18nc("@action:button", "Exit rich text mode")
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
|
||||
onClicked: NeoChatConfig.sendMessageWith = NeoChatConfig.sendMessageWith === 0 ? 1 : 0
|
||||
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
}
|
||||
|
||||
LibNeoChat.DelegateSizeHelper {
|
||||
id: chatBarSizeHelper
|
||||
parentItem: root
|
||||
|
||||
@@ -27,10 +27,11 @@ QQC2.Control {
|
||||
type: root.chatBarType
|
||||
room: root.room
|
||||
sendMessageWithEnter: NeoChatConfig.sendMessageWith === 0
|
||||
sendTypingNotifications: NeoChatConfig.typingNotifications
|
||||
}
|
||||
|
||||
readonly property LibNeoChat.CompletionModel completionModel: LibNeoChat.CompletionModel {
|
||||
room: root.room
|
||||
type: root.chatBarType
|
||||
textItem: root.model.focusedTextItem
|
||||
roomListModel: RoomManager.roomListModel
|
||||
userListModel: RoomManager.userListModel
|
||||
@@ -71,44 +72,6 @@ QQC2.Control {
|
||||
visible: NeoChatConfig.sendMessageWith === 1
|
||||
}
|
||||
RowLayout {
|
||||
QQC2.ToolButton {
|
||||
id: emojiButton
|
||||
property EmojiDialog dialog
|
||||
|
||||
icon.name: "smiley"
|
||||
text: i18n("Emojis & Stickers")
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
checkable: true
|
||||
checked: dialog !== null
|
||||
|
||||
onClicked: {
|
||||
if(!checked){
|
||||
if(dialog) {
|
||||
dialog.close();
|
||||
}
|
||||
return;
|
||||
}
|
||||
dialog = Qt.createComponent('org.kde.neochat.chatbar', 'EmojiDialog').createObject(root, {
|
||||
modal: false,
|
||||
includeCustom: true,
|
||||
closeOnChosen: false,
|
||||
currentRoom: root.room,
|
||||
});
|
||||
dialog.y = -dialog.implicitHeight - Kirigami.Units.smallSpacing;
|
||||
dialog.onChosen.connect((emoji) => {
|
||||
root.chatButtonHelper.insertText(emoji);
|
||||
close();
|
||||
});
|
||||
dialog.onClosed.connect(() => {
|
||||
dialog = null;
|
||||
});
|
||||
dialog.open();
|
||||
}
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
}
|
||||
|
||||
QQC2.ScrollView {
|
||||
id: chatScrollView
|
||||
Layout.fillWidth: true
|
||||
@@ -136,8 +99,6 @@ QQC2.Control {
|
||||
|
||||
Repeater {
|
||||
id: chatContentView
|
||||
Layout.fillWidth: true
|
||||
|
||||
model: root.model
|
||||
|
||||
delegate: BaseMessageComponentChooser {
|
||||
|
||||
@@ -230,7 +230,21 @@ RowLayout {
|
||||
}
|
||||
}
|
||||
}
|
||||
QQC2.ToolButton {
|
||||
id: emojiButton
|
||||
visible: !Kirigami.Settings.isMobile
|
||||
icon.name: "smiley"
|
||||
text: i18n("Emojis & Stickers")
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
checkable: true
|
||||
|
||||
onClicked: {
|
||||
let dialog = (emojiDialog.createObject(root) as EmojiDialog).open();
|
||||
}
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
}
|
||||
QQC2.ToolButton {
|
||||
id: linkButton
|
||||
enabled: root.chatButtonHelper.richFormatEnabled
|
||||
@@ -382,4 +396,25 @@ RowLayout {
|
||||
LinkDialog {}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: emojiDialog
|
||||
EmojiDialog {
|
||||
x: root.width - width
|
||||
y: -implicitHeight
|
||||
|
||||
modal: false
|
||||
includeCustom: true
|
||||
closeOnChosen: false
|
||||
|
||||
currentRoom: root.room
|
||||
|
||||
onChosen: emoji => {
|
||||
root.chatButtonHelper.insertText(emoji);
|
||||
close();
|
||||
}
|
||||
onClosed: if (emojiButton.checked) {
|
||||
emojiButton.checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import QtQuick.Layouts
|
||||
|
||||
import org.kde.kirigami as Kirigami
|
||||
|
||||
import org.kde.neochat
|
||||
import org.kde.neochat.libneochat as LibNeoChat
|
||||
import org.kde.neochat.messagecontent as MessageContent
|
||||
|
||||
@@ -28,7 +27,7 @@ RowLayout {
|
||||
|
||||
required property real maxAvailableWidth
|
||||
|
||||
readonly property real overflowWidth: Kirigami.Units.gridUnit * 50
|
||||
readonly property real overflowWidth: Kirigami.Units.gridUnit * 30
|
||||
|
||||
function openLocationChooser(): void {
|
||||
Qt.createComponent('org.kde.neochat.chatbar', 'LocationChooser').createObject(QQC2.ApplicationWindow.overlay, {
|
||||
@@ -189,20 +188,6 @@ RowLayout {
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
}
|
||||
|
||||
QQC2.ToolButton {
|
||||
icon.name: "edit-select-text-symbolic"
|
||||
text: NeoChatConfig.sendMessageWith === 1 ? i18nc("@action:button", "Hide Rich Text Controls") : i18nc("@action:button", "Show Rich Text Controls")
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
checkable: true
|
||||
checked: NeoChatConfig.sendMessageWith === 1
|
||||
onClicked: NeoChatConfig.sendMessageWith = checked
|
||||
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
}
|
||||
|
||||
QQC2.ToolButton {
|
||||
id: sendButton
|
||||
icon.name: "document-send"
|
||||
|
||||
@@ -9,7 +9,6 @@ target_sources(LibNeoChat PRIVATE
|
||||
neochatroommember.cpp
|
||||
accountmanager.cpp
|
||||
chatbarcache.cpp
|
||||
blockcache.cpp
|
||||
chatbarsyntaxhighlighter.cpp
|
||||
chatkeyhelper.cpp
|
||||
chatmarkdownhelper.cpp
|
||||
@@ -60,20 +59,6 @@ target_sources(LibNeoChat PRIVATE
|
||||
models/widgetmodel.h
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(LibNeoChat
|
||||
HEADER "chatbarlogging.h"
|
||||
IDENTIFIER "ChatBar"
|
||||
CATEGORY_NAME "org.kde.neochat.chatbar"
|
||||
DEFAULT_SEVERITY Info
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(LibNeoChat
|
||||
HEADER "roomlistlogging.h"
|
||||
IDENTIFIER "RoomList"
|
||||
CATEGORY_NAME "org.kde.neochat.roomlist"
|
||||
DEFAULT_SEVERITY Info
|
||||
)
|
||||
|
||||
if (TARGET KF6::KIOWidgets)
|
||||
target_compile_definitions(LibNeoChat PUBLIC -DHAVE_KIO)
|
||||
endif()
|
||||
|
||||
@@ -39,8 +39,7 @@ Quotient::AccountRegistry *AccountManager::accounts()
|
||||
|
||||
void AccountManager::loadAccountsFromCache()
|
||||
{
|
||||
const auto accounts = Quotient::SettingsGroup("Accounts"_L1).childGroups();
|
||||
for (const auto &accountId : accounts) {
|
||||
for (const auto &accountId : Quotient::SettingsGroup("Accounts"_L1).childGroups()) {
|
||||
Quotient::AccountSettings account{accountId};
|
||||
m_accountsLoading += accountId;
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
@@ -58,14 +57,14 @@ void AccountManager::loadAccountsFromCache()
|
||||
m_connectionsLoading[accountId] = connection;
|
||||
connect(connection, &NeoChatConnection::connected, this, [this, connection, accountId] {
|
||||
connection->loadState();
|
||||
if (connection->allRooms().size() == 0 || connection->allRooms().at(0)->currentState().get<Quotient::RoomCreateEvent>()) {
|
||||
if (connection->allRooms().size() == 0 || connection->allRooms()[0]->currentState().get<Quotient::RoomCreateEvent>()) {
|
||||
addConnection(connection);
|
||||
m_accountsLoading.removeAll(connection->userId());
|
||||
m_connectionsLoading.remove(accountId);
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
} else {
|
||||
connect(
|
||||
connection->allRooms().at(0),
|
||||
connection->allRooms()[0],
|
||||
&NeoChatRoom::baseStateLoaded,
|
||||
this,
|
||||
[this, connection, accountId]() {
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "blockcache.h"
|
||||
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include "chattextitemhelper.h"
|
||||
|
||||
using namespace Block;
|
||||
|
||||
inline QString formatQuote(const QString &input)
|
||||
{
|
||||
QString stringOut;
|
||||
auto splitString = input.split(u"\n\n"_s, Qt::SkipEmptyParts);
|
||||
for (auto &string : splitString) {
|
||||
if (string.startsWith(u'*')) {
|
||||
string.removeFirst();
|
||||
}
|
||||
if (string.startsWith(u'\"')) {
|
||||
string.removeFirst();
|
||||
}
|
||||
if (string.endsWith(u'*')) {
|
||||
string.removeLast();
|
||||
}
|
||||
if (string.endsWith(u'\"')) {
|
||||
string.removeLast();
|
||||
}
|
||||
if (!stringOut.isEmpty()) {
|
||||
stringOut += u"\n"_s;
|
||||
}
|
||||
stringOut += u"> "_s + string;
|
||||
}
|
||||
return stringOut;
|
||||
}
|
||||
|
||||
inline QString formatCode(const QString &input)
|
||||
{
|
||||
return u"```\n%1\n```"_s.arg(input).replace(u"\n\n"_s, u"\n"_s);
|
||||
}
|
||||
|
||||
inline QString trim(QString string)
|
||||
{
|
||||
while (string.startsWith(u"\n"_s)) {
|
||||
string.removeFirst();
|
||||
}
|
||||
while (string.endsWith(u"\n"_s)) {
|
||||
string.removeLast();
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
QString CacheItem::toString() const
|
||||
{
|
||||
auto newText = trim(content.toMarkdown(QTextDocument::MarkdownDialectGitHub));
|
||||
if (type == MessageComponentType::Quote) {
|
||||
newText = formatQuote(newText);
|
||||
} else if (type == MessageComponentType::Code) {
|
||||
newText = formatCode(newText);
|
||||
}
|
||||
return newText;
|
||||
}
|
||||
|
||||
void Cache::fill(QList<MessageComponent> components)
|
||||
{
|
||||
std::ranges::for_each(components, [this](const MessageComponent &component) {
|
||||
if (!MessageComponentType::isTextType(component.type)) {
|
||||
return;
|
||||
}
|
||||
const auto textItem = component.attributes["chatTextItemHelper"_L1].value<ChatTextItemHelper *>();
|
||||
if (!textItem) {
|
||||
return;
|
||||
}
|
||||
append(CacheItem{
|
||||
.type = component.type,
|
||||
.content = textItem->toFragment(),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
QString Cache::toString() const
|
||||
{
|
||||
QString text;
|
||||
std::ranges::for_each(constBegin(), constEnd(), [&text](const CacheItem &item) {
|
||||
if (!text.isEmpty()) {
|
||||
text += u"\n\n"_s;
|
||||
}
|
||||
text += item.toString();
|
||||
});
|
||||
return text;
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QList>
|
||||
#include <QTextDocumentFragment>
|
||||
|
||||
#include "enums/messagecomponenttype.h"
|
||||
#include "messagecomponent.h"
|
||||
|
||||
namespace Block
|
||||
{
|
||||
/**
|
||||
* @struct CacheItem
|
||||
*
|
||||
* A structure to define an item stored in a Block::Cache.
|
||||
*
|
||||
* @sa Block::Cache
|
||||
*/
|
||||
struct CacheItem {
|
||||
MessageComponentType::Type type = MessageComponentType::Other;
|
||||
QTextDocumentFragment content;
|
||||
|
||||
/**
|
||||
* @brief Return the contents of the CacheItem as a single string.
|
||||
*/
|
||||
QString toString() const;
|
||||
};
|
||||
|
||||
/**
|
||||
* @class Cache
|
||||
*
|
||||
* A class to cache the contents of a ChatBarMessageContentModel.
|
||||
*
|
||||
* We can't store the actual content items as the QTextDocuments are attached to
|
||||
* text items that may be deleted by the QML engine. Instead we get the contents
|
||||
* as a QTextDocumentFragment in a Block::CacheItem which can be used to reconstruct the
|
||||
* model later.
|
||||
*
|
||||
* @sa ChatBarMessageContentModel, QTextDocumentFragment, QTextDocument, Block::CacheItem
|
||||
*/
|
||||
class Cache : private QList<CacheItem>
|
||||
{
|
||||
public:
|
||||
using QList<CacheItem>::constBegin, QList<CacheItem>::constEnd;
|
||||
using QList<CacheItem>::isEmpty;
|
||||
using QList<CacheItem>::clear;
|
||||
using QList<CacheItem>::append, QList<CacheItem>::operator+=, QList<CacheItem>::operator<<;
|
||||
|
||||
/**
|
||||
* @brief Fill the cache from a list of MessageComponents.
|
||||
*
|
||||
* @sa MessageComponent
|
||||
*/
|
||||
void fill(QList<MessageComponent> components);
|
||||
|
||||
/**
|
||||
* @brief Return the contents of the Cache as a single string.
|
||||
*/
|
||||
QString toString() const;
|
||||
};
|
||||
}
|
||||
@@ -14,35 +14,68 @@
|
||||
#include "neochatroom.h"
|
||||
#include "texthandler.h"
|
||||
|
||||
#include "chatbarlogging.h"
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
ChatBarCache::ChatBarCache(NeoChatRoom *room)
|
||||
: QObject(room)
|
||||
, m_room(room)
|
||||
ChatBarCache::ChatBarCache(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
Q_ASSERT(room);
|
||||
if (parent == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return;
|
||||
}
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent);
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return;
|
||||
}
|
||||
connect(room, &NeoChatRoom::memberLeft, this, &ChatBarCache::relationAuthorIsPresentChanged);
|
||||
connect(room, &NeoChatRoom::memberJoined, this, &ChatBarCache::relationAuthorIsPresentChanged);
|
||||
connect(this, &ChatBarCache::relationIdChanged, this, &ChatBarCache::relationAuthorIsPresentChanged);
|
||||
}
|
||||
|
||||
Block::Cache &ChatBarCache::cache()
|
||||
QString ChatBarCache::text() const
|
||||
{
|
||||
return m_cache;
|
||||
return m_text;
|
||||
}
|
||||
|
||||
void ChatBarCache::setText(const QString &text)
|
||||
{
|
||||
if (text == m_text) {
|
||||
return;
|
||||
}
|
||||
m_text = text;
|
||||
Q_EMIT textChanged();
|
||||
}
|
||||
|
||||
QString ChatBarCache::sendText() const
|
||||
{
|
||||
const auto cacheText = m_cache.toString();
|
||||
if (!attachmentPath().isEmpty()) {
|
||||
QUrl url(attachmentPath());
|
||||
auto path = url.isLocalFile() ? url.toLocalFile() : url.toString();
|
||||
return cacheText.isEmpty() ? path.mid(path.lastIndexOf(u'/') + 1) : cacheText;
|
||||
return text().isEmpty() ? path.mid(path.lastIndexOf(u'/') + 1) : text();
|
||||
}
|
||||
|
||||
return cacheText;
|
||||
return formatMentions();
|
||||
}
|
||||
|
||||
QString ChatBarCache::formatMentions() const
|
||||
{
|
||||
auto mentions = m_mentions;
|
||||
std::sort(mentions.begin(), mentions.end(), [](const auto &a, const auto &b) {
|
||||
return a.cursor.anchor() > b.cursor.anchor();
|
||||
});
|
||||
|
||||
auto formattedText = text();
|
||||
for (const auto &mention : mentions) {
|
||||
if (mention.text.isEmpty() || mention.id.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
formattedText = formattedText.replace(mention.cursor.anchor(),
|
||||
mention.cursor.position() - mention.cursor.anchor(),
|
||||
u"[%1](https://matrix.to/#/%2)"_s.arg(mention.text.toHtmlEscaped(), mention.id));
|
||||
}
|
||||
|
||||
return formattedText;
|
||||
}
|
||||
|
||||
bool ChatBarCache::isReplying() const
|
||||
@@ -105,19 +138,24 @@ void ChatBarCache::setEditId(const QString &editId)
|
||||
|
||||
Quotient::RoomMember ChatBarCache::relationAuthor() const
|
||||
{
|
||||
if (!m_room) {
|
||||
qCWarning(ChatBar) << "ChatBarCache:" << __FUNCTION__ << "called after room was deleted";
|
||||
if (parent() == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
if (m_relationId.isEmpty()) {
|
||||
return m_room->member({});
|
||||
return room->member(QString());
|
||||
}
|
||||
const auto [event, _] = m_room->getEvent(m_relationId);
|
||||
const auto [event, _] = room->getEvent(m_relationId);
|
||||
if (event != nullptr) {
|
||||
return m_room->member(event->senderId());
|
||||
return room->member(event->senderId());
|
||||
}
|
||||
qCWarning(ChatBar) << "Failed to find relation" << m_relationId << "in timeline?";
|
||||
return m_room->member(QString());
|
||||
qWarning() << "Failed to find relation" << m_relationId << "in timeline?";
|
||||
return room->member(QString());
|
||||
}
|
||||
|
||||
bool ChatBarCache::relationAuthorIsPresent() const
|
||||
@@ -127,14 +165,20 @@ bool ChatBarCache::relationAuthorIsPresent() const
|
||||
|
||||
QString ChatBarCache::relationMessage() const
|
||||
{
|
||||
if (!m_room) {
|
||||
qCWarning(ChatBar) << "ChatBarCache:" << __FUNCTION__ << "called after room was deleted";
|
||||
if (parent() == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
if (m_relationId.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
if (auto [event, _] = m_room->getEvent(m_relationId); event != nullptr) {
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
|
||||
if (auto [event, _] = room->getEvent(m_relationId); event != nullptr) {
|
||||
return EventHandler::markdownBody(event);
|
||||
}
|
||||
return {};
|
||||
@@ -188,6 +232,11 @@ void ChatBarCache::clearRelations()
|
||||
Q_EMIT attachmentPathChanged();
|
||||
}
|
||||
|
||||
QList<Mention> *ChatBarCache::mentions()
|
||||
{
|
||||
return &m_mentions;
|
||||
}
|
||||
|
||||
QString ChatBarCache::savedText() const
|
||||
{
|
||||
return m_savedText;
|
||||
@@ -200,8 +249,9 @@ void ChatBarCache::setSavedText(const QString &savedText)
|
||||
|
||||
void ChatBarCache::postMessage()
|
||||
{
|
||||
if (!m_room) {
|
||||
qCWarning(ChatBar) << "ChatBarCache:" << __FUNCTION__ << "called after room was deleted";
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -217,12 +267,12 @@ void ChatBarCache::postMessage()
|
||||
}
|
||||
|
||||
if (!attachmentPath().isEmpty()) {
|
||||
m_room->uploadFile(QUrl(attachmentPath()), sendText(), relatesTo);
|
||||
room->uploadFile(QUrl(attachmentPath()), sendText(), relatesTo);
|
||||
clearCache();
|
||||
return;
|
||||
}
|
||||
|
||||
const auto result = ActionsModel::handleAction(m_room, this);
|
||||
const auto result = ActionsModel::handleAction(room, this);
|
||||
if (!result.second.has_value()) {
|
||||
return;
|
||||
}
|
||||
@@ -237,16 +287,14 @@ void ChatBarCache::postMessage()
|
||||
|
||||
auto content = std::make_unique<Quotient::EventContent::TextContent>(sendText, u"text/html"_s);
|
||||
|
||||
m_room->post<Quotient::RoomMessageEvent>(m_cache.toString(),
|
||||
*std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result),
|
||||
std::move(content),
|
||||
relatesTo);
|
||||
room->post<Quotient::RoomMessageEvent>(text(), *std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result), std::move(content), relatesTo);
|
||||
clearCache();
|
||||
}
|
||||
|
||||
void ChatBarCache::clearCache()
|
||||
{
|
||||
m_cache.clear();
|
||||
setText({});
|
||||
m_mentions.clear();
|
||||
m_savedText = QString();
|
||||
clearRelations();
|
||||
}
|
||||
|
||||
@@ -8,14 +8,21 @@
|
||||
#include <QQuickTextDocument>
|
||||
#include <QTextCursor>
|
||||
|
||||
#include "blockcache.h"
|
||||
|
||||
namespace Quotient
|
||||
{
|
||||
class RoomMember;
|
||||
}
|
||||
|
||||
class NeoChatRoom;
|
||||
/**
|
||||
* @brief Defines a user mention in the current chat or edit text.
|
||||
*/
|
||||
struct Mention {
|
||||
QTextCursor cursor; /**< Contains the mention's text and position in the text. */
|
||||
QString text; /**< The inserted text of the mention. */
|
||||
int start = 0; /**< Start position of the mention. */
|
||||
int position = 0; /**< End position of the mention. */
|
||||
QString id; /**< The id the mention (used to create link when sending the message). */
|
||||
};
|
||||
|
||||
/**
|
||||
* @class ChatBarCache
|
||||
@@ -41,6 +48,14 @@ class ChatBarCache : public QObject
|
||||
QML_ELEMENT
|
||||
QML_UNCREATABLE("")
|
||||
|
||||
/**
|
||||
* @brief The text in the chat bar.
|
||||
*
|
||||
* Due to problems with QTextDocument, unlike the other properties here,
|
||||
* text is *not* used to store the text when switching rooms.
|
||||
*/
|
||||
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
|
||||
|
||||
/**
|
||||
* @brief Whether the chat bar is currently replying to a message.
|
||||
*/
|
||||
@@ -130,10 +145,11 @@ public:
|
||||
};
|
||||
Q_ENUM(RelationType)
|
||||
|
||||
explicit ChatBarCache(NeoChatRoom *room);
|
||||
explicit ChatBarCache(QObject *parent = nullptr);
|
||||
|
||||
Block::Cache &cache();
|
||||
QString text() const;
|
||||
QString sendText() const;
|
||||
void setText(const QString &text);
|
||||
|
||||
bool isReplying() const;
|
||||
QString replyId() const;
|
||||
@@ -162,6 +178,11 @@ public:
|
||||
*/
|
||||
Q_INVOKABLE void clearRelations();
|
||||
|
||||
/**
|
||||
* @brief Retrieve the mentions for the current chat bar text.
|
||||
*/
|
||||
QList<Mention> *mentions();
|
||||
|
||||
/**
|
||||
* @brief Get the saved chat bar text.
|
||||
*/
|
||||
@@ -180,6 +201,7 @@ public:
|
||||
Q_INVOKABLE void drop(QList<QUrl> urls, const QString &transferPortal);
|
||||
|
||||
Q_SIGNALS:
|
||||
void textChanged();
|
||||
void relationIdChanged(const QString &oldEventId, const QString &newEventId);
|
||||
void threadIdChanged(const QString &oldThreadId, const QString &newThreadId);
|
||||
void attachmentPathChanged();
|
||||
@@ -187,13 +209,14 @@ Q_SIGNALS:
|
||||
void relationAuthorIsPresentChanged();
|
||||
|
||||
private:
|
||||
Block::Cache m_cache;
|
||||
QPointer<NeoChatRoom> m_room;
|
||||
QString m_text = QString();
|
||||
QString formatMentions() const;
|
||||
|
||||
QString m_relationId = QString();
|
||||
RelationType m_relationType = RelationType::None;
|
||||
QString m_threadId = QString();
|
||||
QString m_attachmentPath = QString();
|
||||
QList<Mention> m_mentions;
|
||||
QString m_savedText;
|
||||
|
||||
void clearCache();
|
||||
|
||||
@@ -4,16 +4,22 @@
|
||||
|
||||
#include "chatbarsyntaxhighlighter.h"
|
||||
|
||||
#include "chatbarcache.h"
|
||||
#include "chattextitemhelper.h"
|
||||
#include "enums/chatbartype.h"
|
||||
|
||||
ChatBarSyntaxHighlighter::ChatBarSyntaxHighlighter(QObject *parent)
|
||||
: QSyntaxHighlighter(parent)
|
||||
{
|
||||
m_theme = static_cast<Kirigami::Platform::PlatformTheme *>(qmlAttachedPropertiesObject<Kirigami::Platform::PlatformTheme>(this, true));
|
||||
connect(m_theme, &Kirigami::Platform::PlatformTheme::colorsChanged, this, [this]() {
|
||||
m_mentionFormat.setForeground(m_theme->linkColor());
|
||||
m_errorFormat.setForeground(m_theme->negativeTextColor());
|
||||
});
|
||||
|
||||
m_mentionFormat.setFontWeight(QFont::Bold);
|
||||
m_mentionFormat.setForeground(m_theme->linkColor());
|
||||
|
||||
m_errorFormat.setForeground(m_theme->negativeTextColor());
|
||||
m_errorFormat.setUnderlineStyle(QTextCharFormat::SpellCheckUnderline);
|
||||
|
||||
@@ -38,8 +44,40 @@ void ChatBarSyntaxHighlighter::highlightBlock(const QString &text)
|
||||
m_errors.clear();
|
||||
m_checker->setText(text);
|
||||
}
|
||||
for (const auto &error : std::as_const(m_errors)) {
|
||||
for (const auto &error : m_errors) {
|
||||
setFormat(error.first, error.second.size(), m_errorFormat);
|
||||
}
|
||||
}
|
||||
|
||||
if (!room || type == ChatBarType::None) {
|
||||
return;
|
||||
}
|
||||
auto mentions = room->cacheForType(type)->mentions();
|
||||
mentions->erase(std::remove_if(mentions->begin(),
|
||||
mentions->end(),
|
||||
[this](auto &mention) {
|
||||
if (document()->toPlainText().isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mention.cursor.position() == 0 && mention.cursor.anchor() == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mention.cursor.position() - mention.cursor.anchor() != mention.text.size()) {
|
||||
mention.cursor.setPosition(mention.start);
|
||||
mention.cursor.setPosition(mention.cursor.anchor() + mention.text.size(), QTextCursor::KeepAnchor);
|
||||
}
|
||||
|
||||
if (mention.cursor.selectedText() != mention.text) {
|
||||
return true;
|
||||
}
|
||||
if (currentBlock() == mention.cursor.block()) {
|
||||
mention.start = mention.cursor.anchor();
|
||||
mention.position = mention.cursor.position();
|
||||
setFormat(mention.cursor.selectionStart(), mention.cursor.selectedText().size(), m_mentionFormat);
|
||||
}
|
||||
return false;
|
||||
}),
|
||||
mentions->end());
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public:
|
||||
|
||||
private:
|
||||
Kirigami::Platform::PlatformTheme *m_theme = nullptr;
|
||||
QTextCharFormat m_mentionFormat;
|
||||
QTextCharFormat m_errorFormat;
|
||||
|
||||
Sonnet::BackgroundChecker *m_checker = new Sonnet::BackgroundChecker(this);
|
||||
|
||||
@@ -7,34 +7,12 @@
|
||||
#include "clipboard.h"
|
||||
#include "neochatroom.h"
|
||||
#include "richformat.h"
|
||||
#include <qtextcursor.h>
|
||||
|
||||
ChatKeyHelper::ChatKeyHelper(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
ChatTextItemHelper *ChatKeyHelper::textItem() const
|
||||
{
|
||||
return m_textItem;
|
||||
}
|
||||
|
||||
void ChatKeyHelper::setTextItem(ChatTextItemHelper *textItem)
|
||||
{
|
||||
if (textItem == m_textItem) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_textItem) {
|
||||
m_textItem->disconnect(this);
|
||||
}
|
||||
m_textItem = textItem;
|
||||
if (m_textItem) {
|
||||
connect(m_textItem, &ChatTextItemHelper::contentsChange, this, &ChatKeyHelper::checkLinkFormat);
|
||||
connect(m_textItem, &ChatTextItemHelper::selectedTextChanged, this, &ChatKeyHelper::checkMouseSelection);
|
||||
}
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::handleKey(Qt::Key key, Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
switch (key) {
|
||||
@@ -44,10 +22,6 @@ bool ChatKeyHelper::handleKey(Qt::Key key, Qt::KeyboardModifiers modifiers)
|
||||
return up(modifiers);
|
||||
case Qt::Key_Down:
|
||||
return down();
|
||||
case Qt::Key_Left:
|
||||
return left(modifiers);
|
||||
case Qt::Key_Right:
|
||||
return right(modifiers);
|
||||
case Qt::Key_Tab:
|
||||
return tab();
|
||||
case Qt::Key_Delete:
|
||||
@@ -67,6 +41,10 @@ bool ChatKeyHelper::handleKey(Qt::Key key, Qt::KeyboardModifiers modifiers)
|
||||
|
||||
bool ChatKeyHelper::vKey(Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (modifiers.testFlag(Qt::ControlModifier)) {
|
||||
return pasteImage();
|
||||
}
|
||||
@@ -75,12 +53,12 @@ bool ChatKeyHelper::vKey(Qt::KeyboardModifiers modifiers)
|
||||
|
||||
bool ChatKeyHelper::up(Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (modifiers.testFlag(Qt::ControlModifier)) {
|
||||
const auto room = m_textItem->room();
|
||||
const auto room = textItem->room();
|
||||
if (!room) {
|
||||
return false;
|
||||
}
|
||||
@@ -88,12 +66,12 @@ bool ChatKeyHelper::up(Qt::KeyboardModifiers modifiers)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (m_textItem->isCompleting) {
|
||||
if (textItem->isCompleting) {
|
||||
Q_EMIT unhandledUp(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
@@ -106,15 +84,15 @@ bool ChatKeyHelper::up(Qt::KeyboardModifiers modifiers)
|
||||
|
||||
bool ChatKeyHelper::down()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
if (m_textItem->isCompleting) {
|
||||
if (textItem->isCompleting) {
|
||||
Q_EMIT unhandledDown(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
@@ -126,54 +104,22 @@ bool ChatKeyHelper::down()
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::left(Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
return false;
|
||||
}
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
bool ctrlLeft = nextWordLeft(cursor, modifiers);
|
||||
if (ctrlLeft) {
|
||||
return true;
|
||||
}
|
||||
return selectLeft(cursor, modifiers);
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::right(Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
return false;
|
||||
}
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
bool ctrlRight = nextWordRight(cursor, modifiers);
|
||||
if (ctrlRight) {
|
||||
return true;
|
||||
}
|
||||
return selectRight(cursor, modifiers);
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::tab()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
if (m_textItem->isCompleting) {
|
||||
if (textItem->isCompleting) {
|
||||
Q_EMIT unhandledTab(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
if (cursor.currentList() && m_textItem->canIndentListMoreAtCursor()) {
|
||||
m_textItem->indentListMoreAtCursor();
|
||||
if (cursor.currentList() && textItem->canIndentListMoreAtCursor()) {
|
||||
textItem->indentListMoreAtCursor();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -181,49 +127,45 @@ bool ChatKeyHelper::tab()
|
||||
|
||||
bool ChatKeyHelper::deleteChar()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull() || cursor.hasSelection()) {
|
||||
return false;
|
||||
}
|
||||
if (cursor.position() >= m_textItem->document()->characterCount() - m_textItem->fixedEndChars().length() - 1) {
|
||||
if (cursor.position() >= textItem->document()->characterCount() - textItem->fixedEndChars().length() - 1) {
|
||||
Q_EMIT unhandledDelete();
|
||||
return true;
|
||||
}
|
||||
return selectRight(cursor);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::backspace()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
if (cursor.blockFormat().headingLevel() > 0 && m_textItem->plainText().length() <= m_textItem->fixedStartChars().length() + 1) {
|
||||
m_textItem->mergeFormatOnCursor(RichFormat::Paragraph);
|
||||
return false;
|
||||
}
|
||||
if (cursor.position() <= m_textItem->fixedStartChars().length()) {
|
||||
if (cursor.currentList() && m_textItem->canIndentListLessAtCursor()) {
|
||||
m_textItem->indentListLessAtCursor();
|
||||
if (cursor.position() <= textItem->fixedStartChars().length()) {
|
||||
if (cursor.currentList() && textItem->canIndentListLessAtCursor()) {
|
||||
textItem->indentListLessAtCursor();
|
||||
return true;
|
||||
}
|
||||
Q_EMIT unhandledBackspace();
|
||||
return true;
|
||||
}
|
||||
return selectLeft(cursor);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::insertReturn(Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -233,7 +175,7 @@ bool ChatKeyHelper::insertReturn(Qt::KeyboardModifiers modifiers)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!shiftPressed && m_textItem->isCompleting) {
|
||||
if (!shiftPressed && textItem->isCompleting) {
|
||||
Q_EMIT unhandledReturn(true);
|
||||
return true;
|
||||
}
|
||||
@@ -243,16 +185,11 @@ bool ChatKeyHelper::insertReturn(Qt::KeyboardModifiers modifiers)
|
||||
return true;
|
||||
}
|
||||
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
QTextCursor cursor = textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If we are not a heading or are in a list just pass enter as normal.
|
||||
if (cursor.blockFormat().headingLevel() <= 0 || cursor.currentList()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If there was a heading we always want to revert to Paragraph format.
|
||||
auto newBlockFormat = RichFormat::blockFormatForFormat(RichFormat::Paragraph);
|
||||
auto newCharFormat = cursor.charFormat();
|
||||
@@ -263,10 +200,10 @@ bool ChatKeyHelper::insertReturn(Qt::KeyboardModifiers modifiers)
|
||||
|
||||
bool ChatKeyHelper::cancel()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
if (m_textItem->isCompleting) {
|
||||
if (textItem->isCompleting) {
|
||||
Q_EMIT closeCompletion();
|
||||
return true;
|
||||
}
|
||||
@@ -275,7 +212,7 @@ bool ChatKeyHelper::cancel()
|
||||
|
||||
bool ChatKeyHelper::pasteImage()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
if (!textItem) {
|
||||
return false;
|
||||
}
|
||||
const auto savePath = Clipboard().saveImage();
|
||||
@@ -285,180 +222,4 @@ bool ChatKeyHelper::pasteImage()
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::selectLeft(QTextCursor &cursor, Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if ((cursor.hasSelection() || !cursor.charFormat().isAnchor()) && !modifiers.testFlag(Qt::ShiftModifier)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// We need to rearrange the selection from right to left.
|
||||
const auto selectionStart = cursor.selectionStart();
|
||||
cursor.setPosition(cursor.selectionEnd());
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor, cursor.position() - selectionStart);
|
||||
|
||||
if (!cursor.charFormat().isAnchor()) {
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
m_textItem->setSelection(cursor.selectionEnd(), cursor.selectionStart());
|
||||
return true;
|
||||
}
|
||||
|
||||
const auto hRef = cursor.charFormat().anchorHref();
|
||||
auto currentCharFormat = cursor.charFormat();
|
||||
while (currentCharFormat.isAnchor() && currentCharFormat.anchorHref() == hRef && cursor.position() > 0) {
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
currentCharFormat = cursor.charFormat();
|
||||
}
|
||||
|
||||
m_textItem->setSelection(cursor.selectionEnd(), cursor.selectionStart());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::selectRight(QTextCursor &cursor, Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if ((cursor.hasSelection() && !modifiers.testFlag(Qt::ShiftModifier)) || cursor.atBlockEnd()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
if (!cursor.charFormat().isAnchor()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const auto hRef = cursor.charFormat().anchorHref();
|
||||
auto currentCharFormat = cursor.charFormat();
|
||||
while (currentCharFormat.isAnchor() && currentCharFormat.anchorHref() == hRef && cursor.position() < cursor.block().length() - 1) {
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
currentCharFormat = cursor.charFormat();
|
||||
}
|
||||
if (!currentCharFormat.isAnchor()) {
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
}
|
||||
|
||||
m_textItem->setSelection(cursor.selectionStart(), cursor.selectionEnd());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::nextWordLeft(QTextCursor &cursor, Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!modifiers.testFlag(Qt::ControlModifier)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
// Cross any whitespace.
|
||||
while (cursor.selectedText() == u' ') {
|
||||
cursor.setPosition(cursor.selectionStart());
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
}
|
||||
if (!cursor.charFormat().isAnchor()) {
|
||||
return false;
|
||||
}
|
||||
// Cross link.
|
||||
while (cursor.charFormat().isAnchor()) {
|
||||
cursor.setPosition(cursor.selectionStart());
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
|
||||
}
|
||||
|
||||
m_textItem->setCursorPosition(cursor.selectionStart());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatKeyHelper::nextWordRight(QTextCursor &cursor, Qt::KeyboardModifiers modifiers)
|
||||
{
|
||||
if (!modifiers.testFlag(Qt::ControlModifier)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
// Cross any whitespace.
|
||||
while (cursor.selectedText() == u' ') {
|
||||
cursor.setPosition(cursor.selectionEnd());
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
}
|
||||
if (!cursor.charFormat().isAnchor()) {
|
||||
return false;
|
||||
}
|
||||
// Cross link.
|
||||
while (cursor.charFormat().isAnchor()) {
|
||||
cursor.setPosition(cursor.selectionEnd());
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
}
|
||||
m_textItem->setCursorPosition(cursor.selectionEnd());
|
||||
return true;
|
||||
}
|
||||
|
||||
void ChatKeyHelper::checkMouseSelection()
|
||||
{
|
||||
if (!m_textItem) {
|
||||
return;
|
||||
}
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return;
|
||||
}
|
||||
if (!cursor.hasSelection()) {
|
||||
return;
|
||||
}
|
||||
bool selectingLink = false;
|
||||
cursor.setPosition(m_textItem->selectionStart());
|
||||
if (cursor.charFormat().isAnchor()) {
|
||||
selectingLink = true;
|
||||
}
|
||||
if (!selectingLink) {
|
||||
cursor.movePosition(QTextCursor::NextCharacter);
|
||||
if (cursor.charFormat().isAnchor()) {
|
||||
selectingLink = true;
|
||||
}
|
||||
}
|
||||
if (!selectingLink) {
|
||||
cursor.setPosition(m_textItem->selectionEnd());
|
||||
if (cursor.charFormat().isAnchor()) {
|
||||
selectingLink = true;
|
||||
}
|
||||
}
|
||||
if (!selectingLink) {
|
||||
return;
|
||||
}
|
||||
// Wind all the way to the left of the link.
|
||||
cursor.setPosition(m_textItem->selectionStart());
|
||||
const auto hRef = cursor.charFormat().anchorHref();
|
||||
auto currentCharFormat = cursor.charFormat();
|
||||
while (currentCharFormat.isAnchor() && currentCharFormat.anchorHref() == hRef && cursor.position() > 0) {
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter);
|
||||
currentCharFormat = cursor.charFormat();
|
||||
}
|
||||
selectRight(cursor);
|
||||
}
|
||||
|
||||
void ChatKeyHelper::checkLinkFormat(int position, int charsRemoved, int charsAdded)
|
||||
{
|
||||
if (!m_textItem || charsRemoved > charsAdded || charsAdded - charsRemoved != 1) {
|
||||
return;
|
||||
}
|
||||
QTextCursor cursor = m_textItem->textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool nextToLink = false;
|
||||
cursor.setPosition(position);
|
||||
if (cursor.charFormat().isAnchor()) {
|
||||
nextToLink = true;
|
||||
}
|
||||
// Note 2 because a cursor on the left of a link will not show it in the format.
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, 2);
|
||||
if (cursor.charFormat().isAnchor()) {
|
||||
nextToLink = true;
|
||||
}
|
||||
if (!nextToLink) {
|
||||
return;
|
||||
}
|
||||
|
||||
cursor.beginEditBlock();
|
||||
cursor.setPosition(position);
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);
|
||||
cursor.setCharFormat({});
|
||||
cursor.endEditBlock();
|
||||
}
|
||||
|
||||
#include "moc_chatkeyhelper.cpp"
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
#include <QObject>
|
||||
#include <QQmlEngine>
|
||||
|
||||
class QTextCursor;
|
||||
|
||||
class ChatTextItemHelper;
|
||||
|
||||
/**
|
||||
@@ -32,14 +30,7 @@ public:
|
||||
*
|
||||
* @sa ChatTextItemHelper
|
||||
*/
|
||||
ChatTextItemHelper *textItem() const;
|
||||
|
||||
/**
|
||||
* @brief Set the ChatTextItemHelper that ChatKeyHelper is handling key presses for.
|
||||
*
|
||||
* @sa ChatTextItemHelper
|
||||
*/
|
||||
void setTextItem(ChatTextItemHelper *textItem);
|
||||
QPointer<ChatTextItemHelper> textItem;
|
||||
|
||||
/**
|
||||
* @brief handle the given key and modifiers.
|
||||
@@ -122,18 +113,12 @@ Q_SIGNALS:
|
||||
void imagePasted(const QString &filePath);
|
||||
|
||||
private:
|
||||
QPointer<ChatTextItemHelper> m_textItem;
|
||||
|
||||
bool vKey(Qt::KeyboardModifiers modifiers);
|
||||
|
||||
bool up(Qt::KeyboardModifiers modifiers);
|
||||
|
||||
bool down();
|
||||
|
||||
bool left(Qt::KeyboardModifiers modifiers);
|
||||
|
||||
bool right(Qt::KeyboardModifiers modifiers);
|
||||
|
||||
bool tab();
|
||||
|
||||
bool deleteChar();
|
||||
@@ -145,16 +130,4 @@ private:
|
||||
bool cancel();
|
||||
|
||||
bool pasteImage();
|
||||
|
||||
bool selectLeft(QTextCursor &cursor, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
|
||||
|
||||
bool selectRight(QTextCursor &cursor, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
|
||||
|
||||
bool nextWordLeft(QTextCursor &cursor, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
|
||||
|
||||
bool nextWordRight(QTextCursor &cursor, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
|
||||
|
||||
void checkMouseSelection();
|
||||
|
||||
void checkLinkFormat(int position, int charsRemoved, int charsAdded);
|
||||
};
|
||||
|
||||
@@ -188,7 +188,7 @@ void ChatMarkdownHelper::checkMarkdown(int position, int charsRemoved, int chars
|
||||
// This can happen when formatting is applied.
|
||||
if (charsAdded == charsRemoved) {
|
||||
return;
|
||||
} else if ((m_textItem->textFormat() && m_textItem->textFormat() == Qt::TextFormat::PlainText) || m_textItem->isCompleting || charsRemoved > charsAdded || charsAdded - charsRemoved > 1) {
|
||||
} else if (charsRemoved > charsAdded || charsAdded - charsRemoved > 1) {
|
||||
updatePosition(std::max(0, position - charsRemoved + charsAdded));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <QQuickTextDocument>
|
||||
#include <QTextCursor>
|
||||
#include <QTextDocumentFragment>
|
||||
|
||||
#include <Kirigami/Platform/PlatformTheme>
|
||||
#include <qtextdocument.h>
|
||||
@@ -82,7 +83,6 @@ void ChatTextItemHelper::setTextItem(QQuickItem *textItem)
|
||||
|
||||
if (m_textItem) {
|
||||
connect(m_textItem, SIGNAL(cursorPositionChanged()), this, SLOT(itemCursorPositionChanged()));
|
||||
connect(m_textItem, SIGNAL(selectedTextChanged()), this, SLOT(itemSelectedTextChanged()));
|
||||
connect(m_textItem, SIGNAL(textFormatChanged(QQuickTextEdit::TextFormat)), this, SLOT(itemTextFormatChanged()));
|
||||
if (const auto doc = document()) {
|
||||
connect(doc, &QTextDocument::contentsChanged, this, &ChatTextItemHelper::contentsChanged);
|
||||
@@ -92,7 +92,7 @@ void ChatTextItemHelper::setTextItem(QQuickItem *textItem)
|
||||
connect(doc, &QTextDocument::contentsChange, this, &ChatTextItemHelper::contentsChange);
|
||||
m_highlighter->setDocument(doc);
|
||||
}
|
||||
initialize();
|
||||
initializeChars();
|
||||
}
|
||||
|
||||
Q_EMIT textItemChanged();
|
||||
@@ -133,21 +133,24 @@ void ChatTextItemHelper::setFixedChars(const QString &startChars, const QString
|
||||
}
|
||||
m_fixedStartChars = startChars;
|
||||
m_fixedEndChars = endChars;
|
||||
initialize();
|
||||
initializeChars();
|
||||
}
|
||||
|
||||
QTextDocumentFragment ChatTextItemHelper::initialFragment() const
|
||||
QString ChatTextItemHelper::initialText() const
|
||||
{
|
||||
return m_initialFragment;
|
||||
return m_initialText;
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::setInitialFragment(const QTextDocumentFragment &fragment)
|
||||
void ChatTextItemHelper::setInitialText(const QString &text)
|
||||
{
|
||||
m_initialFragment = fragment;
|
||||
initialize();
|
||||
if (text == m_initialText) {
|
||||
return;
|
||||
}
|
||||
m_initialText = text;
|
||||
initializeChars();
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::initialize()
|
||||
void ChatTextItemHelper::initializeChars()
|
||||
{
|
||||
const auto doc = document();
|
||||
if (!doc) {
|
||||
@@ -163,8 +166,8 @@ void ChatTextItemHelper::initialize()
|
||||
|
||||
cursor.beginEditBlock();
|
||||
int finalCursorPos = cursor.position();
|
||||
if (doc->isEmpty() && !m_initialFragment.isEmpty()) {
|
||||
cursor.insertFragment(m_initialFragment);
|
||||
if (doc->isEmpty() && !m_initialText.isEmpty()) {
|
||||
cursor.insertText(m_initialText);
|
||||
finalCursorPos = cursor.position();
|
||||
}
|
||||
|
||||
@@ -388,15 +391,6 @@ void ChatTextItemHelper::setCursorPosition(int pos)
|
||||
m_textItem->setProperty("cursorPosition", pos);
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::setSelection(int selectionStart, int selectionEnd)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
return;
|
||||
}
|
||||
m_selectionJustChanged = true;
|
||||
metaObject()->invokeMethod(m_textItem, "select", Qt::DirectConnection, selectionStart, selectionEnd);
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::setCursorVisible(bool visible)
|
||||
{
|
||||
if (!m_textItem) {
|
||||
@@ -450,15 +444,6 @@ void ChatTextItemHelper::itemCursorPositionChanged()
|
||||
Q_EMIT listChanged();
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::itemSelectedTextChanged()
|
||||
{
|
||||
if (m_selectionJustChanged) {
|
||||
m_selectionJustChanged = false;
|
||||
return;
|
||||
}
|
||||
Q_EMIT selectedTextChanged();
|
||||
}
|
||||
|
||||
void ChatTextItemHelper::mergeFormatOnCursor(RichFormat::Format format, QTextCursor cursor)
|
||||
{
|
||||
if (cursor.isNull()) {
|
||||
@@ -633,16 +618,6 @@ QString ChatTextItemHelper::plainText() const
|
||||
return trim(doc->toPlainText());
|
||||
}
|
||||
|
||||
QTextDocumentFragment ChatTextItemHelper::toFragment() const
|
||||
{
|
||||
auto cursor = textCursor();
|
||||
if (cursor.isNull()) {
|
||||
return {};
|
||||
}
|
||||
cursor.select(QTextCursor::Document);
|
||||
return cursor.selection();
|
||||
}
|
||||
|
||||
QString ChatTextItemHelper::trim(QString string) const
|
||||
{
|
||||
while (string.startsWith(u"\n"_s)) {
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QQuickItem>
|
||||
#include <QTextDocumentFragment>
|
||||
|
||||
#include "enums/chatbartype.h"
|
||||
#include "enums/richformat.h"
|
||||
@@ -109,16 +108,16 @@ public:
|
||||
void setFixedChars(const QString &startChars, const QString &endChars);
|
||||
|
||||
/**
|
||||
* @brief Any QTextDocumentFragment to initialise the text item with when set.
|
||||
* @brief Any text to initialise the text item with when set.
|
||||
*/
|
||||
QTextDocumentFragment initialFragment() const;
|
||||
QString initialText() const;
|
||||
|
||||
/**
|
||||
* @brief Set the QTextDocumentFragment to initialise the text item with when set.
|
||||
* @brief Set the text to initialise the text item with when set.
|
||||
*
|
||||
* This text will only be set if the text item is empty when set.
|
||||
*/
|
||||
void setInitialFragment(const QTextDocumentFragment &fragment);
|
||||
void setInitialText(const QString &text);
|
||||
|
||||
/**
|
||||
* @brief The underlying QTextDocument.
|
||||
@@ -182,26 +181,11 @@ public:
|
||||
*/
|
||||
QRect cursorRectangle() const;
|
||||
|
||||
/**
|
||||
* @brief The start position of any text selection in the underlying text item.
|
||||
*/
|
||||
int selectionStart() const;
|
||||
|
||||
/**
|
||||
* @brief The end position of any text selection in the underlying text item.
|
||||
*/
|
||||
int selectionEnd() const;
|
||||
|
||||
/**
|
||||
* @brief Set the cursor position of the underlying text item to the given value.
|
||||
*/
|
||||
void setCursorPosition(int pos);
|
||||
|
||||
/**
|
||||
* @brief Set the selection of the underlying text item to the given cursor.
|
||||
*/
|
||||
void setSelection(int selectionStart, int selectionEnd);
|
||||
|
||||
/**
|
||||
* @brief Set the cursor visibility of the underlying text item to the given value.
|
||||
*/
|
||||
@@ -264,11 +248,6 @@ public:
|
||||
*/
|
||||
QString plainText() const;
|
||||
|
||||
/**
|
||||
* @brief Output the text in the text item as a QTextDocumentFragment.
|
||||
*/
|
||||
QTextDocumentFragment toFragment() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
/**
|
||||
* @brief Emitted when the NeoChatRoom used by the syntax highlighter is changed.
|
||||
@@ -322,26 +301,23 @@ Q_SIGNALS:
|
||||
*/
|
||||
void cursorPositionChanged(bool fromContentsChange);
|
||||
|
||||
/**
|
||||
* @brief Emitted when the selected text of the underlying text item is changed.
|
||||
*/
|
||||
void selectedTextChanged();
|
||||
|
||||
private:
|
||||
QPointer<QQuickItem> m_textItem;
|
||||
QPointer<ChatBarSyntaxHighlighter> m_highlighter;
|
||||
|
||||
bool m_contentsJustChanged = false;
|
||||
bool m_selectionJustChanged = false;
|
||||
|
||||
QString m_fixedStartChars = {};
|
||||
QString m_fixedEndChars = {};
|
||||
QTextDocumentFragment m_initialFragment = {};
|
||||
void initialize();
|
||||
QString m_initialText = {};
|
||||
void initializeChars();
|
||||
bool m_initializingChars = false;
|
||||
|
||||
std::optional<int> lineLength(int lineNumber) const;
|
||||
|
||||
int selectionStart() const;
|
||||
int selectionEnd() const;
|
||||
|
||||
void mergeTextFormatOnCursor(RichFormat::Format format, QTextCursor cursor);
|
||||
void mergeStyleFormatOnCursor(RichFormat::Format format, QTextCursor cursor);
|
||||
void mergeListFormatOnCursor(RichFormat::Format format, const QTextCursor &cursor);
|
||||
@@ -352,5 +328,4 @@ private:
|
||||
private Q_SLOTS:
|
||||
void itemTextFormatChanged();
|
||||
void itemCursorPositionChanged();
|
||||
void itemSelectedTextChanged();
|
||||
};
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
*
|
||||
* @sa Parameter
|
||||
*/
|
||||
Q_INVOKABLE static QString parameterName(RoomSortParameter::Parameter parameter)
|
||||
Q_INVOKABLE static QString parameterName(Parameter parameter)
|
||||
{
|
||||
switch (parameter) {
|
||||
case Parameter::AlphabeticalAscending:
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
*
|
||||
* @sa Parameter
|
||||
*/
|
||||
Q_INVOKABLE static QString parameterDescription(RoomSortParameter::Parameter parameter)
|
||||
Q_INVOKABLE static QString parameterDescription(Parameter parameter)
|
||||
{
|
||||
switch (parameter) {
|
||||
case Parameter::AlphabeticalAscending:
|
||||
|
||||
@@ -169,7 +169,7 @@ bool EventHandler::isHidden(const NeoChatRoom *room, const Quotient::RoomEvent *
|
||||
}
|
||||
|
||||
// hide ending live location beacons
|
||||
if (event->isStateEvent() && event->matrixType() == "org.matrix.msc3672.beacon_info"_L1 && !event->contentPart<bool>("live"_L1)) {
|
||||
if (event->isStateEvent() && event->matrixType() == "org.matrix.msc3672.beacon_info"_L1 && !event->contentJson()["live"_L1].toBool()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -369,7 +369,7 @@ QString EventHandler::getBody(const NeoChatRoom *room, const Quotient::RoomEvent
|
||||
if (e.senderId() == e.userId()) {
|
||||
return i18n("left the room");
|
||||
}
|
||||
if (const auto &reason = e.contentPart<QString>("reason"_L1).toHtmlEscaped(); !reason.isEmpty()) {
|
||||
if (const auto &reason = e.contentJson()["reason"_L1].toString().toHtmlEscaped(); !reason.isEmpty()) {
|
||||
return i18n("has removed %1 from the room: %2", subjectName, reason);
|
||||
}
|
||||
return i18n("has removed %1 from the room", subjectName);
|
||||
@@ -384,7 +384,7 @@ QString EventHandler::getBody(const NeoChatRoom *room, const Quotient::RoomEvent
|
||||
return i18n("self-banned from the room");
|
||||
}
|
||||
case Membership::Knock: {
|
||||
QString reason(e.contentPart<QString>("reason"_L1).toHtmlEscaped());
|
||||
QString reason(e.contentJson()["reason"_L1].toString().toHtmlEscaped());
|
||||
return reason.isEmpty() ? i18n("requested an invite") : i18n("requested an invite with reason: %1", reason);
|
||||
}
|
||||
default:;
|
||||
@@ -419,19 +419,19 @@ QString EventHandler::getBody(const NeoChatRoom *room, const Quotient::RoomEvent
|
||||
return i18nc("'power level' means permission level", "changed the power levels for this room");
|
||||
},
|
||||
[](const LocationBeaconEvent &e) {
|
||||
return e.contentPart<QString>("description"_L1);
|
||||
return e.contentJson()["description"_L1].toString();
|
||||
},
|
||||
[](const RoomServerAclEvent &) {
|
||||
return i18n("changed the server access control lists for this room");
|
||||
},
|
||||
[](const WidgetEvent &e) {
|
||||
if (e.fullJson()["unsigned"_L1]["prev_content"_L1].toObject().isEmpty()) {
|
||||
return i18nc("[User] added <name> widget", "added %1 widget", e.contentPart<QString>("name"_L1));
|
||||
return i18nc("[User] added <name> widget", "added %1 widget", e.contentJson()["name"_L1].toString());
|
||||
}
|
||||
if (e.contentJson().isEmpty()) {
|
||||
return i18nc("[User] removed <name> widget", "removed %1 widget", e.fullJson()["unsigned"_L1]["prev_content"_L1]["name"_L1].toString());
|
||||
}
|
||||
return i18nc("[User] configured <name> widget", "configured %1 widget", e.contentPart<QString>("name"_L1));
|
||||
return i18nc("[User] configured <name> widget", "configured %1 widget", e.contentJson()["name"_L1].toString());
|
||||
},
|
||||
[prettyPrint](const StateEvent &e) {
|
||||
if (e.matrixType() == "org.matrix.msc3401.call.member"_L1) {
|
||||
@@ -871,7 +871,7 @@ float EventHandler::latitude(const Quotient::RoomEvent *event)
|
||||
return -100.0;
|
||||
}
|
||||
|
||||
const auto geoUri = event->contentPart<QString>("geo_uri"_L1);
|
||||
const auto geoUri = event->contentJson()["geo_uri"_L1].toString();
|
||||
if (geoUri.isEmpty()) {
|
||||
return -100.0; // latitude runs from -90deg to +90deg so -100 is out of range.
|
||||
}
|
||||
@@ -886,7 +886,7 @@ float EventHandler::longitude(const Quotient::RoomEvent *event)
|
||||
return -200.0;
|
||||
}
|
||||
|
||||
const auto geoUri = event->contentPart<QString>("geo_uri"_L1);
|
||||
const auto geoUri = event->contentJson()["geo_uri"_L1].toString();
|
||||
if (geoUri.isEmpty()) {
|
||||
return -200.0; // longitude runs from -180deg to +180deg so -200 is out of range.
|
||||
}
|
||||
@@ -901,7 +901,7 @@ QString EventHandler::locationAssetType(const Quotient::RoomEvent *event)
|
||||
return {};
|
||||
}
|
||||
|
||||
const auto assetType = event->contentJson()["org.matrix.msc3488.asset"_L1]["type"_L1].toString();
|
||||
const auto assetType = event->contentJson()["org.matrix.msc3488.asset"_L1].toObject()["type"_L1].toString();
|
||||
if (assetType.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -310,7 +310,8 @@ QList<ActionsModel::Action> actions{
|
||||
Action{
|
||||
u"ignore"_s,
|
||||
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
|
||||
auto regexMatch = TextRegex::mxId.match(text);
|
||||
static const QRegularExpression mxidRegex(uR"((^|[][[:space:](){}`'";])([!#@][-a-z0-9_=#/.]{1,252}:\w(?:\w|\.|-)*\.\w+(?::\d{1,5})?))"_s);
|
||||
auto regexMatch = mxidRegex.match(text);
|
||||
if (!regexMatch.hasMatch()) {
|
||||
Q_EMIT room->showMessage(MessageType::Error, i18nc("'<text>' does not look like a matrix id.", "'%1' does not look like a matrix id.", text));
|
||||
return QString();
|
||||
@@ -331,7 +332,8 @@ QList<ActionsModel::Action> actions{
|
||||
Action{
|
||||
u"unignore"_s,
|
||||
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
|
||||
auto regexMatch = TextRegex::mxId.match(text);
|
||||
static const QRegularExpression mxidRegex(uR"((^|[][[:space:](){}`'";])([!#@][-a-z0-9_=#/.]{1,252}:\w(?:\w|\.|-)*\.\w+(?::\d{1,5})?))"_s);
|
||||
auto regexMatch = mxidRegex.match(text);
|
||||
if (!regexMatch.hasMatch()) {
|
||||
Q_EMIT room->showMessage(MessageType::Error, i18nc("'<text>' does not look like a matrix id.", "'%1' does not look like a matrix id.", text));
|
||||
return QString();
|
||||
@@ -371,7 +373,8 @@ QList<ActionsModel::Action> actions{
|
||||
u"ban"_s,
|
||||
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
|
||||
auto parts = text.split(u" "_s);
|
||||
auto regexMatch = TextRegex::mxId.match(text);
|
||||
static const QRegularExpression mxidRegex(uR"((^|[][[:space:](){}`'";])([!#@][-a-z0-9_=#/.]{1,252}:\w(?:\w|\.|-)*\.\w+(?::\d{1,5})?))"_s);
|
||||
auto regexMatch = mxidRegex.match(parts[0]);
|
||||
if (!regexMatch.hasMatch()) {
|
||||
Q_EMIT room->showMessage(MessageType::Error, i18nc("'<text>' does not look like a matrix id.", "'%1' does not look like a matrix id.", text));
|
||||
return QString();
|
||||
@@ -407,7 +410,8 @@ QList<ActionsModel::Action> actions{
|
||||
Action{
|
||||
u"unban"_s,
|
||||
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
|
||||
auto regexMatch = TextRegex::mxId.match(text);
|
||||
static const QRegularExpression mxidRegex(uR"((^|[][[:space:](){}`'";])([!#@][-a-z0-9_=#/.]{1,252}:\w(?:\w|\.|-)*\.\w+(?::\d{1,5})?))"_s);
|
||||
auto regexMatch = mxidRegex.match(text);
|
||||
if (!regexMatch.hasMatch()) {
|
||||
Q_EMIT room->showMessage(MessageType::Error, i18nc("'<text>' does not look like a matrix id.", "'%1' does not look like a matrix id.", text));
|
||||
return QString();
|
||||
@@ -438,7 +442,8 @@ QList<ActionsModel::Action> actions{
|
||||
u"kick"_s,
|
||||
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
|
||||
auto parts = text.split(u" "_s);
|
||||
auto regexMatch = TextRegex::mxId.match(text);
|
||||
static const QRegularExpression mxidRegex(uR"((^|[][[:space:](){}`'";])([!#@][-a-z0-9_=#/.]{1,252}:\w(?:\w|\.|-)*\.\w+(?::\d{1,5})?))"_s);
|
||||
auto regexMatch = mxidRegex.match(parts[0]);
|
||||
if (!regexMatch.hasMatch()) {
|
||||
Q_EMIT room->showMessage(MessageType::Error,
|
||||
i18nc("'<text>' does not look like a matrix id.", "'%1' does not look like a matrix id.", parts[0]));
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
#include <QDebug>
|
||||
#include <QTextCursor>
|
||||
|
||||
#include <Kirigami/Platform/PlatformTheme>
|
||||
|
||||
#include "chattextitemhelper.h"
|
||||
#include "completionproxymodel.h"
|
||||
#include "models/actionsmodel.h"
|
||||
@@ -26,6 +24,35 @@ CompletionModel::CompletionModel(QObject *parent)
|
||||
m_emojiModel->addSourceModel(&EmojiModel::instance());
|
||||
}
|
||||
|
||||
NeoChatRoom *CompletionModel::room() const
|
||||
{
|
||||
return m_room;
|
||||
}
|
||||
|
||||
void CompletionModel::setRoom(NeoChatRoom *room)
|
||||
{
|
||||
if (m_room == room) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_room = room;
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
ChatBarType::Type CompletionModel::type() const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
void CompletionModel::setType(ChatBarType::Type type)
|
||||
{
|
||||
if (type == m_type) {
|
||||
return;
|
||||
}
|
||||
m_type = type;
|
||||
Q_EMIT typeChanged();
|
||||
}
|
||||
|
||||
ChatTextItemHelper *CompletionModel::textItem() const
|
||||
{
|
||||
return m_textItem;
|
||||
@@ -295,22 +322,29 @@ void CompletionModel::insertCompletion(const QString &text, const QUrl &link)
|
||||
}
|
||||
cursor.removeSelectedText();
|
||||
|
||||
const auto previousFormat = cursor.charFormat();
|
||||
auto charFormat = previousFormat;
|
||||
if (link.isValid()) {
|
||||
const auto theme = static_cast<Kirigami::Platform::PlatformTheme *>(qmlAttachedPropertiesObject<Kirigami::Platform::PlatformTheme>(this, true));
|
||||
charFormat = QTextCharFormat();
|
||||
charFormat.setForeground(theme->linkColor());
|
||||
charFormat.setFontWeight(QFont::Bold);
|
||||
charFormat.setAnchor(true);
|
||||
charFormat.setAnchorHref(link.toString());
|
||||
}
|
||||
cursor.insertText(text, charFormat);
|
||||
if (!link.isEmpty()) {
|
||||
cursor.insertText(u" "_s, previousFormat);
|
||||
}
|
||||
const int start = cursor.position();
|
||||
const auto insertString = u"%1 %2"_s.arg(text, link.isEmpty() ? QString() : u" "_s);
|
||||
cursor.insertText(insertString);
|
||||
cursor.setPosition(start);
|
||||
cursor.setPosition(start + text.size(), QTextCursor::KeepAnchor);
|
||||
cursor.setKeepPositionOnInsert(true);
|
||||
cursor.endEditBlock();
|
||||
if (!link.isEmpty()) {
|
||||
pushMention({
|
||||
.cursor = cursor,
|
||||
.text = text,
|
||||
.id = link.toString(),
|
||||
});
|
||||
}
|
||||
m_textItem->rehighlight();
|
||||
}
|
||||
|
||||
void CompletionModel::pushMention(const Mention mention) const
|
||||
{
|
||||
if (!m_room || m_type == ChatBarType::None) {
|
||||
return;
|
||||
}
|
||||
m_room->cacheForType(m_type)->mentions()->push_back(mention);
|
||||
}
|
||||
|
||||
#include "moc_completionmodel.cpp"
|
||||
|
||||
@@ -30,6 +30,16 @@ class CompletionModel : public QAbstractListModel
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
|
||||
/**
|
||||
* @brief The current room that the text document is being handled for.
|
||||
*/
|
||||
Q_PROPERTY(NeoChatRoom *room READ room WRITE setRoom NOTIFY roomChanged)
|
||||
|
||||
/**
|
||||
* @brief The ChatBarType::Type of the chat bar.
|
||||
*/
|
||||
Q_PROPERTY(ChatBarType::Type type READ type WRITE setType NOTIFY typeChanged)
|
||||
|
||||
/**
|
||||
* @brief The QML text Item that completions are being provided for.
|
||||
*/
|
||||
@@ -84,6 +94,12 @@ public:
|
||||
|
||||
explicit CompletionModel(QObject *parent = nullptr);
|
||||
|
||||
NeoChatRoom *room() const;
|
||||
void setRoom(NeoChatRoom *room);
|
||||
|
||||
ChatBarType::Type type() const;
|
||||
void setType(ChatBarType::Type type);
|
||||
|
||||
ChatTextItemHelper *textItem() const;
|
||||
void setTextItem(ChatTextItemHelper *textItem);
|
||||
|
||||
@@ -124,6 +140,8 @@ public:
|
||||
Q_INVOKABLE void insertCompletion(const QString &text, const QUrl &link);
|
||||
|
||||
Q_SIGNALS:
|
||||
void roomChanged();
|
||||
void typeChanged();
|
||||
void textItemChanged();
|
||||
void autoCompletionTypeChanged();
|
||||
void roomListModelChanged();
|
||||
@@ -131,6 +149,8 @@ Q_SIGNALS:
|
||||
void isCompletingChanged();
|
||||
|
||||
private:
|
||||
QPointer<NeoChatRoom> m_room;
|
||||
ChatBarType::Type m_type = ChatBarType::None;
|
||||
QPointer<ChatTextItemHelper> m_textItem;
|
||||
|
||||
bool m_ignoreCurrentCompletion = false;
|
||||
@@ -145,4 +165,6 @@ private:
|
||||
UserListModel *m_userListModel;
|
||||
RoomListModel *m_roomListModel;
|
||||
QConcatenateTablesProxyModel *m_emojiModel;
|
||||
|
||||
void pushMention(const Mention mention) const;
|
||||
};
|
||||
|
||||
@@ -56,7 +56,7 @@ void CustomEmojiModel::fetchEmojis()
|
||||
|
||||
const auto e = emoji.startsWith(":"_L1) ? emoji : (u":"_s + emoji + u":"_s);
|
||||
|
||||
m_emojis << CustomEmoji{e, data.toObject().value("url"_L1).toString(), QRegularExpression(e)};
|
||||
m_emojis << CustomEmoji{e, data.toObject()["url"_L1].toString(), QRegularExpression(e)};
|
||||
}
|
||||
|
||||
endResetModel();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user