Compare commits
69 Commits
v25.12.2
...
work/redst
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a190c45988 | ||
|
|
45c5806c5a | ||
|
|
abf37c90cb | ||
|
|
5d9508b165 | ||
|
|
f5a652f7a1 | ||
|
|
f165cb1f10 | ||
|
|
11132c3e89 | ||
|
|
089ab2009a | ||
|
|
6ebedc5dfc | ||
|
|
e5b2fb7316 | ||
|
|
5da3aff607 | ||
|
|
3fa46d52fe | ||
|
|
ece9811d82 | ||
|
|
b543b1c2f9 | ||
|
|
5065bccb64 | ||
|
|
10c3125668 | ||
|
|
73019cfea2 | ||
|
|
4bc6a88acf | ||
|
|
56a49cfc50 | ||
|
|
c50380b448 | ||
|
|
673a8c8bc8 | ||
|
|
c298c348a4 | ||
|
|
2fcd535aeb | ||
|
|
8f5e68de5d | ||
|
|
5fe36a9057 | ||
|
|
8d8c6444e0 | ||
|
|
03d5955c8d | ||
|
|
197d7ce8e8 | ||
|
|
efbf6d96d4 | ||
|
|
b8cd3c69c2 | ||
|
|
1da24191f0 | ||
|
|
2ecc567792 | ||
|
|
66e1fe067d | ||
|
|
d08f014def | ||
|
|
63941d6685 | ||
|
|
38523c97c5 | ||
|
|
65c6f4c1d3 | ||
|
|
0cb3fd32f4 | ||
|
|
b02cb0157e | ||
|
|
ca163fc169 | ||
|
|
5687eb33e1 | ||
|
|
fc795e50b3 | ||
|
|
c4adfe7939 | ||
|
|
ce96232bbd | ||
|
|
95653cf3f7 | ||
|
|
0c11cd331f | ||
|
|
3c8ca0d421 | ||
|
|
52f71d5c55 | ||
|
|
00f7dd5175 | ||
|
|
52da8415e9 | ||
|
|
953e4cd792 | ||
|
|
ee4b1578b1 | ||
|
|
ae24424a32 | ||
|
|
51be282824 | ||
|
|
c539dfc352 | ||
|
|
fe734206df | ||
|
|
79a49165f1 | ||
|
|
ada5eef088 | ||
|
|
9cc5778126 | ||
|
|
b129805f94 | ||
|
|
887865c0aa | ||
|
|
1336194cf4 | ||
|
|
5a7ae3563e | ||
|
|
7c56e24fdc | ||
|
|
e6b9abeca3 | ||
|
|
1b45784a88 | ||
|
|
a12b0d5282 | ||
|
|
a6d75f2ff5 | ||
|
|
b8f7f33b9a |
@@ -2,7 +2,7 @@
|
|||||||
"id": "org.kde.neochat",
|
"id": "org.kde.neochat",
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"runtime": "org.kde.Platform",
|
"runtime": "org.kde.Platform",
|
||||||
"runtime-version": "6.9",
|
"runtime-version": "6.10",
|
||||||
"sdk": "org.kde.Sdk",
|
"sdk": "org.kde.Sdk",
|
||||||
"command": "neochat",
|
"command": "neochat",
|
||||||
"tags": [
|
"tags": [
|
||||||
@@ -31,19 +31,6 @@
|
|||||||
"/share/ndk-modules"
|
"/share/ndk-modules"
|
||||||
],
|
],
|
||||||
"modules": [
|
"modules": [
|
||||||
{
|
|
||||||
"name": "kirigamiaddons",
|
|
||||||
"config-opts": [
|
|
||||||
"-DBUILD_TESTING=OFF"
|
|
||||||
],
|
|
||||||
"buildsystem": "cmake-ninja",
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://invent.kde.org/libraries/kirigami-addons.git"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "opencv",
|
"name": "opencv",
|
||||||
"config-opts": [
|
"config-opts": [
|
||||||
@@ -78,6 +65,7 @@
|
|||||||
"name": "olm",
|
"name": "olm",
|
||||||
"buildsystem": "cmake-ninja",
|
"buildsystem": "cmake-ninja",
|
||||||
"config-opts": [
|
"config-opts": [
|
||||||
|
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
|
||||||
"-DOLM_TESTS=OFF"
|
"-DOLM_TESTS=OFF"
|
||||||
],
|
],
|
||||||
"sources": [
|
"sources": [
|
||||||
@@ -184,8 +172,8 @@
|
|||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"url": "https://download.kde.org/stable/release-service/25.08.0/src/kunifiedpush-25.08.0.tar.xz",
|
"url": "https://download.kde.org/stable/release-service/25.08.3/src/kunifiedpush-25.08.3.tar.xz",
|
||||||
"sha256": "846db6ffc7d93f6afea7ce0d5a9f10b52792157ceb593856542279f4197f3518",
|
"sha256": "e8c924438d5359f0fa0930ab35111012076e3a0ff4e959d6929595571383320a",
|
||||||
"x-checker-data": {
|
"x-checker-data": {
|
||||||
"type": "anitya",
|
"type": "anitya",
|
||||||
"project-id": 8763,
|
"project-id": 8763,
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ Dependencies:
|
|||||||
'frameworks/ki18n': '@latest-kf6'
|
'frameworks/ki18n': '@latest-kf6'
|
||||||
'frameworks/kconfig': '@latest-kf6'
|
'frameworks/kconfig': '@latest-kf6'
|
||||||
'frameworks/syntax-highlighting': '@latest-kf6'
|
'frameworks/syntax-highlighting': '@latest-kf6'
|
||||||
'frameworks/kiconthemes': '@latest-kf6'
|
|
||||||
'frameworks/kitemmodels': '@latest-kf6'
|
'frameworks/kitemmodels': '@latest-kf6'
|
||||||
'frameworks/kquickcharts': '@latest-kf6'
|
'frameworks/kquickcharts': '@latest-kf6'
|
||||||
'frameworks/knotifications': '@latest-kf6'
|
'frameworks/knotifications': '@latest-kf6'
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
# KDE Applications version, managed by release script.
|
# KDE Applications version, managed by release script.
|
||||||
set(RELEASE_SERVICE_VERSION_MAJOR "25")
|
set(RELEASE_SERVICE_VERSION_MAJOR "26")
|
||||||
set(RELEASE_SERVICE_VERSION_MINOR "12")
|
set(RELEASE_SERVICE_VERSION_MINOR "03")
|
||||||
set(RELEASE_SERVICE_VERSION_MICRO "2")
|
set(RELEASE_SERVICE_VERSION_MICRO "70")
|
||||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||||
|
|
||||||
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
||||||
@@ -46,10 +46,6 @@ if (NOT ANDROID)
|
|||||||
include(KDEClangFormat)
|
include(KDEClangFormat)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NEOCHAT_FLATPAK)
|
|
||||||
include(cmake/Flatpak.cmake)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(QUOTIENT_FORCE_NAMESPACED_INCLUDES TRUE)
|
set(QUOTIENT_FORCE_NAMESPACED_INCLUDES TRUE)
|
||||||
|
|
||||||
ecm_set_disabled_deprecation_versions(Qt 6.9.0 KF 6.17.0)
|
ecm_set_disabled_deprecation_versions(Qt 6.9.0 KF 6.17.0)
|
||||||
@@ -59,7 +55,7 @@ ecm_setup_version(${PROJECT_VERSION}
|
|||||||
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h
|
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h
|
||||||
)
|
)
|
||||||
|
|
||||||
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE COMPONENTS Core Quick Gui QuickControls2 Multimedia Svg TextToSpeech WebView)
|
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE COMPONENTS Core Quick Gui QuickControls2 Multimedia Svg TextToSpeech WebView QuickTest)
|
||||||
set_package_properties(Qt6 PROPERTIES
|
set_package_properties(Qt6 PROPERTIES
|
||||||
TYPE REQUIRED
|
TYPE REQUIRED
|
||||||
PURPOSE "Basic application components"
|
PURPOSE "Basic application components"
|
||||||
@@ -69,7 +65,7 @@ if (QT_KNOWN_POLICY_QTP0004)
|
|||||||
qt_policy(SET QTP0004 NEW)
|
qt_policy(SET QTP0004 NEW)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
find_package(KF6 ${KF_MIN_VERSION} COMPONENTS Kirigami I18n Notifications Config CoreAddons Sonnet ItemModels ColorScheme IconThemes)
|
find_package(KF6 ${KF_MIN_VERSION} COMPONENTS Kirigami I18n Notifications Config CoreAddons Sonnet ItemModels ColorScheme)
|
||||||
set_package_properties(KF6 PROPERTIES
|
set_package_properties(KF6 PROPERTIES
|
||||||
TYPE REQUIRED
|
TYPE REQUIRED
|
||||||
PURPOSE "Basic application components"
|
PURPOSE "Basic application components"
|
||||||
|
|||||||
@@ -9,6 +9,21 @@ target_link_libraries(neochat_server PUBLIC Qt::HttpServer QuotientQt6)
|
|||||||
|
|
||||||
add_definitions(-DDATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data" )
|
add_definitions(-DDATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data" )
|
||||||
|
|
||||||
|
macro(add_qml_tests)
|
||||||
|
if (WIN32)
|
||||||
|
set(_extra_args -platform offscreen)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
foreach(test ${ARGV})
|
||||||
|
add_test(NAME ${test}
|
||||||
|
COMMAND qmltest
|
||||||
|
${_extra_args}
|
||||||
|
-input ${test}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
ecm_add_test(
|
ecm_add_test(
|
||||||
neochatroomtest.cpp
|
neochatroomtest.cpp
|
||||||
LINK_LIBRARIES neochat Qt::Test
|
LINK_LIBRARIES neochat Qt::Test
|
||||||
@@ -104,3 +119,14 @@ ecm_add_test(
|
|||||||
LINK_LIBRARIES neochat Qt::Test neochat_server
|
LINK_LIBRARIES neochat Qt::Test neochat_server
|
||||||
TEST_NAME roommanagertest
|
TEST_NAME roommanagertest
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_executable(qmltest qmltest.cpp)
|
||||||
|
target_link_libraries(qmltest
|
||||||
|
PRIVATE
|
||||||
|
Qt6::Qml
|
||||||
|
Qt6::QuickTest
|
||||||
|
neochat_server
|
||||||
|
neochat
|
||||||
|
neochatplugin)
|
||||||
|
|
||||||
|
add_qml_tests(tst_media.qml)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ void ActionsTest::testActions_data()
|
|||||||
QTest::addColumn<std::optional<QString>>("resultText");
|
QTest::addColumn<std::optional<QString>>("resultText");
|
||||||
QTest::addColumn<std::optional<Quotient::RoomMessageEvent::MsgType>>("type");
|
QTest::addColumn<std::optional<Quotient::RoomMessageEvent::MsgType>>("type");
|
||||||
|
|
||||||
QTest::newRow("shrug") << u"/shrug Hello"_s << std::make_optional(u"¯\\\\\\_(ツ)\\_/¯ Hello"_s)
|
QTest::newRow("shrug") << u"/shrug Hello"_s << std::make_optional(u"¯\\\\_(ツ)_/¯ Hello"_s)
|
||||||
<< std::make_optional(Quotient::RoomMessageEvent::MsgType::Text);
|
<< std::make_optional(Quotient::RoomMessageEvent::MsgType::Text);
|
||||||
QTest::newRow("lenny") << u"/lenny Hello"_s << std::make_optional(u"( ͡° ͜ʖ ͡°) Hello"_s) << std::make_optional(Quotient::RoomMessageEvent::MsgType::Text);
|
QTest::newRow("lenny") << u"/lenny Hello"_s << std::make_optional(u"( ͡° ͜ʖ ͡°) Hello"_s) << std::make_optional(Quotient::RoomMessageEvent::MsgType::Text);
|
||||||
QTest::newRow("tableflip") << u"/tableflip Hello"_s << std::make_optional(u"(╯°□°)╯︵ ┻━┻ Hello"_s)
|
QTest::newRow("tableflip") << u"/tableflip Hello"_s << std::make_optional(u"(╯°□°)╯︵ ┻━┻ Hello"_s)
|
||||||
|
|||||||
61
autotests/qmltest.cpp
Normal file
61
autotests/qmltest.cpp
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <KLocalizedContext>
|
||||||
|
#include <KLocalizedString>
|
||||||
|
#include <QNetworkDiskCache>
|
||||||
|
#include <QQmlContext>
|
||||||
|
#include <QQmlEngine>
|
||||||
|
#include <QQmlNetworkAccessManagerFactory>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
#include <Quotient/networkaccessmanager.h>
|
||||||
|
#include <quicktest.h>
|
||||||
|
|
||||||
|
#include "accountmanager.h"
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
using namespace Quotient;
|
||||||
|
using namespace Qt::StringLiterals;
|
||||||
|
|
||||||
|
class NetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory
|
||||||
|
{
|
||||||
|
QNetworkAccessManager *create(QObject *) override
|
||||||
|
{
|
||||||
|
auto nam = NetworkAccessManager::instance();
|
||||||
|
QObject::connect(nam, &QNetworkAccessManager::sslErrors, nam, [](auto reply, auto errors) {
|
||||||
|
reply->ignoreSslErrors(errors);
|
||||||
|
});
|
||||||
|
nam->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||||
|
|
||||||
|
return nam;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Setup : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
Setup() = default;
|
||||||
|
|
||||||
|
Server server;
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void qmlEngineAvailable(QQmlEngine *engine)
|
||||||
|
{
|
||||||
|
KLocalizedString::setApplicationDomain(QByteArrayLiteral("neochat"));
|
||||||
|
|
||||||
|
engine->setNetworkAccessManagerFactory(new NetworkAccessManagerFactory());
|
||||||
|
engine->rootContext()->setContextObject(new KLocalizedContext(engine));
|
||||||
|
|
||||||
|
server.start();
|
||||||
|
Q_UNUSED(new AccountManager(true));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
QUICK_TEST_MAIN_WITH_SETUP(NeoChat, Setup)
|
||||||
|
|
||||||
|
#include "qmltest.moc"
|
||||||
@@ -12,6 +12,8 @@
|
|||||||
#include <QSslKey>
|
#include <QSslKey>
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
|
|
||||||
|
#include <QBuffer>
|
||||||
|
#include <QImage>
|
||||||
#include <Quotient/networkaccessmanager.h>
|
#include <Quotient/networkaccessmanager.h>
|
||||||
|
|
||||||
using namespace Qt::Literals::StringLiterals;
|
using namespace Qt::Literals::StringLiterals;
|
||||||
@@ -116,6 +118,20 @@ void Server::start()
|
|||||||
});
|
});
|
||||||
|
|
||||||
m_server.route(u"/_matrix/client/r0/sync"_s, QHttpServerRequest::Method::Get, this, &Server::sync);
|
m_server.route(u"/_matrix/client/r0/sync"_s, QHttpServerRequest::Method::Get, this, &Server::sync);
|
||||||
|
m_server.route(u"/_matrix/client/v1/media/download/<arg>/<arg>"_s,
|
||||||
|
QHttpServerRequest::Method::Get,
|
||||||
|
[](const QString &serverName, const QString &mediaId, QHttpServerResponder &responder) {
|
||||||
|
qInfo() << serverName << mediaId;
|
||||||
|
QImage image(128, 128, QImage::Format::Format_RGB32);
|
||||||
|
image.fill(Qt::white);
|
||||||
|
|
||||||
|
QByteArray bytes;
|
||||||
|
QBuffer buffer(&bytes);
|
||||||
|
buffer.open(QIODevice::WriteOnly);
|
||||||
|
image.save(&buffer, "PNG");
|
||||||
|
|
||||||
|
responder.write(&buffer, "image/png", QHttpServerResponder::StatusCode::Ok);
|
||||||
|
});
|
||||||
|
|
||||||
QSslConfiguration config;
|
QSslConfiguration config;
|
||||||
QFile key(QStringLiteral(DATA_DIR) + u"/localhost.key"_s);
|
QFile key(QStringLiteral(DATA_DIR) + u"/localhost.key"_s);
|
||||||
|
|||||||
73
autotests/tst_media.qml
Normal file
73
autotests/tst_media.qml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls as QQC2
|
||||||
|
import QtTest
|
||||||
|
|
||||||
|
import org.kde.kirigami as Kirigami
|
||||||
|
import org.kde.neochat.messagecontent
|
||||||
|
|
||||||
|
TestCase {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
name: "ImageComponentTest"
|
||||||
|
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
// Base component to not re-initialize the same variables over and over
|
||||||
|
component BaseImageComponent: ImageComponent {
|
||||||
|
eventId: "dummyevent"
|
||||||
|
display: "dummytext"
|
||||||
|
fileTransferInfo: null
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: invalidMxcUrlComponent
|
||||||
|
BaseImageComponent {
|
||||||
|
componentAttributes: QtObject {
|
||||||
|
property bool isSticker: false
|
||||||
|
property bool animated: false
|
||||||
|
// Missing user_id, which is required in libQuotient
|
||||||
|
property string source: "mxc://localhost:1234/AAAAAAAAAAAAAAAAAAAAAAAA?room_id=!AjYwbldYDmSVfGrVHV:localhost&event_id=$vJfWLoXK02im0M3rlFWLosiHojrwWSknLb0JXveEE1o"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: validMxcUrlComponent
|
||||||
|
BaseImageComponent {
|
||||||
|
componentAttributes: QtObject {
|
||||||
|
property bool isSticker: false
|
||||||
|
property bool animated: false
|
||||||
|
property string source: "mxc://localhost:1234/AAAAAAAAAAAAAAAAAAAAAAAA?user_id=@user:localhost:1234&room_id=!AjYwbldYDmSVfGrVHV:localhost&event_id=$vJfWLoXK02im0M3rlFWLosiHojrwWSknLb0JXveEE1o"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_invalid() {
|
||||||
|
wait(1000); // Wait for Quotient to grab the right capability
|
||||||
|
|
||||||
|
ignoreWarning("No connection specified, cannot convert mxc request");
|
||||||
|
|
||||||
|
const item = createTemporaryObject(invalidMxcUrlComponent, this);
|
||||||
|
verify(item);
|
||||||
|
compare(item._private.imageItem.status, Image.Loading);
|
||||||
|
|
||||||
|
// It should fail if we didn't specify the connection
|
||||||
|
tryCompare(item._private.imageItem, "status", Image.Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_basic() {
|
||||||
|
wait(1000); // Wait for Quotient to grab the right capability
|
||||||
|
|
||||||
|
const item = createTemporaryObject(validMxcUrlComponent, this);
|
||||||
|
verify(item);
|
||||||
|
compare(item._private.imageItem.status, Image.Loading); // initial load
|
||||||
|
tryCompare(item._private.imageItem, "status", Image.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
|
|
||||||
# SPDX-License-Identifier: BSD-2-Clause
|
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
# Include FontConfig config which uses the Emoji One font from the
|
|
||||||
# KDE Flatpak SDK.
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Flatpak/99-noto-mono-color-emoji.conf
|
|
||||||
DESTINATION
|
|
||||||
${CMAKE_INSTALL_SYSCONFDIR}/fonts/local.conf
|
|
||||||
)
|
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|
||||||
<fontconfig>
|
|
||||||
<alias>
|
|
||||||
<family>serif</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Noto Color Emoji</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
<alias>
|
|
||||||
<family>sans-serif</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Noto Color Emoji</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
<alias>
|
|
||||||
<family>monospace</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Noto Color Emoji</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
</fontconfig>
|
|
||||||
|
|
||||||
@@ -193,7 +193,6 @@
|
|||||||
<li xml:lang="ar">التصويت - MSC3381</li>
|
<li xml:lang="ar">التصويت - MSC3381</li>
|
||||||
<li xml:lang="ca">Votacions - MSC3381</li>
|
<li xml:lang="ca">Votacions - MSC3381</li>
|
||||||
<li xml:lang="ca-valencia">Votacions - MSC3381</li>
|
<li xml:lang="ca-valencia">Votacions - MSC3381</li>
|
||||||
<li xml:lang="de">Umfragen – MSC3381</li>
|
|
||||||
<li xml:lang="el">Δημοσκοπήσεις - MSC3381</li>
|
<li xml:lang="el">Δημοσκοπήσεις - MSC3381</li>
|
||||||
<li xml:lang="en-GB">Polls - MSC3381</li>
|
<li xml:lang="en-GB">Polls - MSC3381</li>
|
||||||
<li xml:lang="eo">Enketoj - MSC3381</li>
|
<li xml:lang="eo">Enketoj - MSC3381</li>
|
||||||
@@ -228,7 +227,6 @@
|
|||||||
<li xml:lang="ar">حزم الملصقات - MSC2545</li>
|
<li xml:lang="ar">حزم الملصقات - MSC2545</li>
|
||||||
<li xml:lang="ca">Paquets d'adhesius - MSC2545</li>
|
<li xml:lang="ca">Paquets d'adhesius - MSC2545</li>
|
||||||
<li xml:lang="ca-valencia">Paquets d'adhesius - MSC2545</li>
|
<li xml:lang="ca-valencia">Paquets d'adhesius - MSC2545</li>
|
||||||
<li xml:lang="de">Sticker-Pakete – MSC2545</li>
|
|
||||||
<li xml:lang="el">Πακέτα αυτοκόλλητων - MSC2545</li>
|
<li xml:lang="el">Πακέτα αυτοκόλλητων - MSC2545</li>
|
||||||
<li xml:lang="en-GB">Sticker Packs - MSC2545</li>
|
<li xml:lang="en-GB">Sticker Packs - MSC2545</li>
|
||||||
<li xml:lang="eo">Glumark-Pakoj - MSC2545</li>
|
<li xml:lang="eo">Glumark-Pakoj - MSC2545</li>
|
||||||
@@ -322,7 +320,6 @@
|
|||||||
<value key="KDE::windows_store::StoreLogoSquare">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/storelogo-1080x1080.png</value>
|
<value key="KDE::windows_store::StoreLogoSquare">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/storelogo-1080x1080.png</value>
|
||||||
<value key="KDE::windows_store::Icon">https://invent.kde.org/network/neochat/-/raw/master/icons/300-apps-neochat.png</value>
|
<value key="KDE::windows_store::Icon">https://invent.kde.org/network/neochat/-/raw/master/icons/300-apps-neochat.png</value>
|
||||||
<value key="KDE::windows_store::PromotionalArt16x9">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/promoimage-1920x1080.png</value>
|
<value key="KDE::windows_store::PromotionalArt16x9">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/promoimage-1920x1080.png</value>
|
||||||
<value key="KDE::supporters">Anonymous donor, Akseli</value>
|
|
||||||
</custom>
|
</custom>
|
||||||
<launchable type="desktop-id">org.kde.neochat.desktop</launchable>
|
<launchable type="desktop-id">org.kde.neochat.desktop</launchable>
|
||||||
<screenshots>
|
<screenshots>
|
||||||
@@ -490,8 +487,6 @@
|
|||||||
<content_attribute id="social-chat">intense</content_attribute>
|
<content_attribute id="social-chat">intense</content_attribute>
|
||||||
</content_rating>
|
</content_rating>
|
||||||
<releases>
|
<releases>
|
||||||
<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"/>
|
<release version="25.12.0" date="2025-12-11"/>
|
||||||
<release version="25.08.3" date="2025-11-06"/>
|
<release version="25.08.3" date="2025-11-06"/>
|
||||||
<release version="25.08.2" date="2025-10-09"/>
|
<release version="25.08.2" date="2025-10-09"/>
|
||||||
|
|||||||
402
po/ar/neochat.po
402
po/ar/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: neochat\n"
|
"Project-Id-Version: neochat\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||||
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
||||||
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
||||||
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
||||||
@@ -25,127 +25,127 @@ msgctxt ""
|
|||||||
msgid "Receiving notifications for new messages"
|
msgid "Receiving notifications for new messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/controller.cpp:316
|
#: src/app/controller.cpp:319
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Receiving push notifications"
|
msgid "Receiving push notifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "NeoChat"
|
msgid "NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:138
|
#: src/app/main.cpp:133
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Chat on Matrix"
|
msgid "Chat on Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:140
|
#: src/app/main.cpp:135
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:141
|
#: src/app/main.cpp:136
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Carl Schwan"
|
msgid "Carl Schwan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||||
#: src/app/main.cpp:145
|
#: src/app/main.cpp:140
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer"
|
msgid "Maintainer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:142
|
#: src/app/main.cpp:137
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Tobias Fella"
|
msgid "Tobias Fella"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:143
|
#: src/app/main.cpp:138
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "James Graham"
|
msgid "James Graham"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:144
|
#: src/app/main.cpp:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Joshua Goins"
|
msgid "Joshua Goins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Black Hat"
|
msgid "Black Hat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Original author of Spectral"
|
msgid "Original author of Spectral"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Alexey Rusakov"
|
msgid "Alexey Rusakov"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer of libQuotient"
|
msgid "Maintainer of libQuotient"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "NAME OF TRANSLATORS"
|
msgctxt "NAME OF TRANSLATORS"
|
||||||
msgid "Your names"
|
msgid "Your names"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "EMAIL OF TRANSLATORS"
|
msgctxt "EMAIL OF TRANSLATORS"
|
||||||
msgid "Your emails"
|
msgid "Your emails"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:155
|
#: src/app/main.cpp:150
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:157
|
#: src/app/main.cpp:152
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "<version number> (built against <possibly different version number>)"
|
msgctxt "<version number> (built against <possibly different version number>)"
|
||||||
msgid "%1 (built against %2)"
|
msgid "%1 (built against %2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:178
|
#: src/app/main.cpp:167
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Client for the matrix communication protocol"
|
msgid "Client for the matrix communication protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:179
|
#: src/app/main.cpp:168
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Supports matrix: url scheme"
|
msgid "Supports matrix: url scheme"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:180
|
#: src/app/main.cpp:169
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:182
|
#: src/app/main.cpp:171
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "command line description"
|
msgctxt "command line description"
|
||||||
msgid "Replace an existing instance"
|
msgid "Replace an existing instance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:185
|
#: src/app/main.cpp:174
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Only used for autotests"
|
msgid "Only used for autotests"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:195
|
#: src/app/main.cpp:184
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Share a URL to Matrix"
|
msgid "Share a URL to Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Encrypted Message"
|
msgid "Encrypted Message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -170,40 +170,40 @@ msgstr ""
|
|||||||
msgid "Reply…"
|
msgid "Reply…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:306
|
#: src/app/notificationsmanager.cpp:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 invited you to a room"
|
msgid "%1 invited you to a room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:309
|
#: src/app/notificationsmanager.cpp:307
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open this invitation in NeoChat"
|
msgid "Open this invitation in NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:319
|
#: src/app/notificationsmanager.cpp:317
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:320
|
#: src/app/notificationsmanager.cpp:318
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:322
|
#: src/app/notificationsmanager.cpp:320
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject and Ignore User"
|
msgid "Reject and Ignore User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:383
|
#: src/app/notificationsmanager.cpp:379
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 (%2)"
|
msgid "%1 (%2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:394
|
#: src/app/notificationsmanager.cpp:390
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open NeoChat"
|
msgid "Open NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -244,7 +244,7 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Developer Tools"
|
msgid "Open Developer Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Developer Tools"
|
msgid "Developer Tools"
|
||||||
@@ -256,31 +256,31 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Secret Backup"
|
msgid "Open Secret Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:84
|
#: src/app/qml/AccountMenu.qml:83
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Open Key Backup"
|
msgid "Open Key Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:89
|
#: src/app/qml/AccountMenu.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Verify This Device"
|
msgid "Verify This Device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Verification Request Sent"
|
msgid "Verification Request Sent"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "To proceed, accept the verification request on another device."
|
msgid "To proceed, accept the verification request on another device."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:107
|
#: src/app/qml/AccountMenu.qml:106
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Logout…"
|
msgid "Logout…"
|
||||||
@@ -595,31 +595,31 @@ msgctxt "@info:label 'Username' has invited you to this room at 'timestamp'."
|
|||||||
msgid "%1 has invited you to this room at %2."
|
msgid "%1 has invited you to this room at %2."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:97
|
#: src/app/qml/InvitationView.qml:98
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||||
msgid "This user invited you to chat at %1."
|
msgid "This user invited you to chat at %1."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:112
|
#: src/app/qml/InvitationView.qml:113
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Accept this invite"
|
msgctxt "@action:button Accept this invite"
|
||||||
msgid "Accept Invite"
|
msgid "Accept Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:127
|
#: src/app/qml/InvitationView.qml:128
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Reject this invite"
|
msgctxt "@action:button Reject this invite"
|
||||||
msgid "Reject Invite"
|
msgid "Reject Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:141
|
#: src/app/qml/InvitationView.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Block the user"
|
msgctxt "@action:button Block the user"
|
||||||
msgid "Block %1"
|
msgid "Block %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:180
|
#: src/app/qml/InvitationView.qml:181
|
||||||
#, kde-kuit-format
|
#, kde-kuit-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@info:label Ensure you are referring to the same translation used for that "
|
"@info:label Ensure you are referring to the same translation used for that "
|
||||||
@@ -937,7 +937,7 @@ msgctxt "@title:dialog"
|
|||||||
msgid "Select a File"
|
msgid "Select a File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
@@ -1027,63 +1027,63 @@ msgctxt "@action:button"
|
|||||||
msgid "Ignore"
|
msgid "Ignore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:95
|
#: src/app/qml/RoomPage.qml:87
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Join Jitsi meeting…"
|
msgid "Join Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Start Jitsi meeting…"
|
msgid "Start Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "You do not have permissions to start Jitsi meetings"
|
msgid "You do not have permissions to start Jitsi meetings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||||
#: src/roominfo/RoomInformation.qml:109
|
#: src/roominfo/RoomInformation.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:title"
|
msgctxt "@action:title"
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:150
|
#: src/app/qml/RoomPage.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "This room contains official messages from your homeserver."
|
msgid "This room contains official messages from your homeserver."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:161
|
#: src/app/qml/RoomPage.qml:153
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "NeoChat is offline. Please check your network connection."
|
msgid "NeoChat is offline. Please check your network connection."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:294
|
#: src/app/qml/RoomPage.qml:285
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Welcome to NeoChat"
|
msgid "Welcome to NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:295
|
#: src/app/qml/RoomPage.qml:286
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:usagetip"
|
msgctxt "@info:usagetip"
|
||||||
msgid "Select or join a room to get started"
|
msgid "Select or join a room to get started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:356
|
#: src/app/qml/RoomPage.qml:347
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:dialog"
|
msgctxt "@title:dialog"
|
||||||
msgid "Message Source"
|
msgid "Message Source"
|
||||||
@@ -1167,13 +1167,19 @@ msgctxt "@info"
|
|||||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load your encrypted messages"
|
msgid "Load your encrypted messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:status"
|
||||||
|
msgid "The security key or backup passphrase was not correct."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Encryption keys restored."
|
msgid "Encryption keys restored."
|
||||||
@@ -1181,67 +1187,43 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
|
||||||
msgid "The security phrase was not correct."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock using Passphrase"
|
msgid "Unlock using Security Key or Backup Passphrase"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||||
#, kde-format
|
|
||||||
msgctxt "@info"
|
|
||||||
msgid "If you have a backup passphrase for this account, enter it below."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Backup Password:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@action:button"
|
|
||||||
msgid "Unlock"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Security Key"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have a security key for this account, enter it below or upload it as "
|
"If you have a security key or backup passphrase for this account, enter it "
|
||||||
"a file."
|
"below or upload it as a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
msgid "Security Key:"
|
msgid "Security Key or Backup Passphrase:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Upload from File"
|
msgid "Upload from File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@action:button"
|
||||||
|
msgid "Unlock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock from Cross-Signing"
|
msgid "Unlock from Cross-Signing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1249,7 +1231,7 @@ msgid ""
|
|||||||
"key from other devices by clicking the button below."
|
"key from other devices by clicking the button below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Request from other Devices"
|
msgid "Request from other Devices"
|
||||||
@@ -1397,6 +1379,38 @@ msgstr ""
|
|||||||
msgid "Copy link"
|
msgid "Copy link"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:298
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:303
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:304
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this user"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:306
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:308
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UserMenu.qml:62
|
#: src/app/qml/UserMenu.qml:62
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -1599,22 +1613,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:235
|
#: src/app/roommanager.cpp:213
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:439
|
#: src/app/roommanager.cpp:430
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to join %1:<br />%2"
|
msgid "Failed to join %1:<br />%2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:463
|
#: src/app/roommanager.cpp:454
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "You requested to join '%1'"
|
msgid "You requested to join '%1'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:467
|
#: src/app/roommanager.cpp:458
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to request joining room<br />%1"
|
msgid "Failed to request joining room<br />%1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1695,7 +1709,7 @@ msgctxt "@placeholder"
|
|||||||
msgid "Send a message…"
|
msgid "Send a message…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Cancel reply"
|
msgid "Cancel reply"
|
||||||
@@ -1897,19 +1911,13 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:25
|
#: src/devtools/FeatureFlagPage.qml:25
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
|
||||||
msgid "Secret Backup"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:31
|
|
||||||
#, kde-format
|
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||||
"party ID"
|
"party ID"
|
||||||
msgid "Add phone numbers as 3PIDs"
|
msgid "Add phone numbers as 3PIDs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:40
|
#: src/devtools/FeatureFlagPage.qml:34
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||||
msgid "Calls"
|
msgid "Calls"
|
||||||
@@ -2283,12 +2291,12 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:392
|
#: src/libneochat/eventhandler.cpp:392
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room: %2"
|
msgid "has removed %1 from the room: %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:394
|
#: src/libneochat/eventhandler.cpp:394
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room"
|
msgid "has removed %1 from the room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:398
|
#: src/libneochat/eventhandler.cpp:398
|
||||||
@@ -3128,7 +3136,7 @@ msgctxt "@info the person that created this room"
|
|||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatconnection.cpp:71
|
#: src/libneochat/neochatconnection.cpp:73
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"File too large to download.<br />Contact your matrix server administrator "
|
"File too large to download.<br />Contact your matrix server administrator "
|
||||||
@@ -3151,12 +3159,12 @@ msgstr ""
|
|||||||
msgid "Space creation failed: %1"
|
msgid "Space creation failed: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1253
|
#: src/libneochat/neochatroom.cpp:1254
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Report sent successfully."
|
msgid "Report sent successfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||||
msgid "Lat: %1, Lon: %2"
|
msgid "Lat: %1, Lon: %2"
|
||||||
@@ -3629,12 +3637,12 @@ msgctxt "@action:button"
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:154
|
#: src/messagecontent/CodeComponent.qml:161
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Copy to clipboard"
|
msgid "Copy to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:166
|
#: src/messagecontent/CodeComponent.qml:173
|
||||||
#: src/messagecontent/VideoComponent.qml:374
|
#: src/messagecontent/VideoComponent.qml:374
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -3841,13 +3849,13 @@ msgctxt "as in 'this vote has ended'"
|
|||||||
msgid "(Ended)"
|
msgid "(Ended)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/pollhandler.cpp:306
|
#: src/messagecontent/pollhandler.cpp:308
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "%1 is the poll answer that had the most votes"
|
msgctxt "%1 is the poll answer that had the most votes"
|
||||||
msgid "The poll has ended. Top answer: %1"
|
msgid "The poll has ended. Top answer: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/ReactionComponent.qml:88
|
#: src/messagecontent/ReactionComponent.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@button"
|
msgctxt "@button"
|
||||||
msgid "React"
|
msgid "React"
|
||||||
@@ -3882,7 +3890,7 @@ msgctxt "@action:button"
|
|||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Locations on a map"
|
msgctxt "Locations on a map"
|
||||||
msgid "Locations"
|
msgid "Locations"
|
||||||
@@ -3893,18 +3901,18 @@ msgstr ""
|
|||||||
msgid "There are no locations shared in this room."
|
msgid "There are no locations shared in this room."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Room settings"
|
msgid "Room settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3921,95 +3929,95 @@ msgctxt "@action:title"
|
|||||||
msgid "Room Information"
|
msgid "Room Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:90
|
#: src/roominfo/RoomInformation.qml:72
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Room actions"
|
msgctxt "Room actions"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:100
|
#: src/roominfo/RoomInformation.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Search Messages"
|
msgid "Search Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:117
|
#: src/roominfo/RoomInformation.qml:99
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Verify user"
|
msgid "Verify user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:141
|
#: src/roominfo/RoomInformation.qml:123
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:147
|
#: src/roominfo/RoomInformation.qml:129
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:157
|
#: src/roominfo/RoomInformation.qml:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Shared Locations"
|
msgid "Shared Locations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:173
|
#: src/roominfo/RoomInformation.qml:155
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:188
|
#: src/roominfo/RoomInformation.qml:170
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Inspect Room Data"
|
msgid "Inspect Room Data"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Space…"
|
msgid "Leave Space…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:222
|
#: src/roominfo/RoomInformation.qml:204
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Invite a User"
|
msgid "Invite a User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:241
|
#: src/roominfo/RoomInformation.qml:223
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Invite user to room"
|
msgid "Invite user to room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%1 member"
|
msgid "%1 member"
|
||||||
@@ -4017,7 +4025,7 @@ msgid_plural "%1 members"
|
|||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "No member count"
|
msgid "No member count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4073,42 +4081,42 @@ msgctxt "@action:button"
|
|||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:38
|
#: src/rooms/ExploreComponent.qml:36
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Rooms"
|
msgid "Rooms"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:50
|
#: src/rooms/ExploreComponent.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Search Rooms"
|
msgid "Search Rooms"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:75
|
#: src/rooms/ExploreComponent.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Show Menu"
|
msgid "Show Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:104
|
#: src/rooms/ExploreComponent.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Create a Room"
|
msgid "Create a Room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:119
|
#: src/rooms/ExploreComponent.qml:103
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4140,13 +4148,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Create a Space"
|
msgid "Create a Space"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:366
|
#: src/rooms/models/roomtreemodel.cpp:364
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "Invited you to chat"
|
msgid "Invited you to chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:368
|
#: src/rooms/models/roomtreemodel.cpp:366
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "%1 invited you"
|
msgid "%1 invited you"
|
||||||
@@ -4228,6 +4236,38 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/rooms/RoomContextMenu.qml:154
|
#: src/rooms/RoomContextMenu.qml:154
|
||||||
#, kde-format
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:159
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:160
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:162
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:164
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:174
|
||||||
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4291,13 +4331,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Search in friend directory"
|
msgid "Search in friend directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Collapse <section name>"
|
msgctxt "Collapse <section name>"
|
||||||
msgid "Collapse %1"
|
msgid "Collapse %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Expand <section name"
|
msgctxt "Expand <section name"
|
||||||
msgid "Expand %1"
|
msgid "Expand %1"
|
||||||
@@ -6888,19 +6928,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
|||||||
msgid "%1 said %2"
|
msgid "%1 said %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||||
msgid "Unpin"
|
msgid "Unpin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:416
|
#: src/timeline/DelegateContextMenu.qml:415
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
@@ -6968,31 +7008,31 @@ msgid ""
|
|||||||
"this point."
|
"this point."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to first unread message"
|
msgid "Jump to first unread message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to oldest loaded message"
|
msgid "Jump to oldest loaded message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:272
|
#: src/timeline/TimelineView.qml:245
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to latest message"
|
msgid "Jump to latest message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:307
|
#: src/timeline/TimelineView.qml:279
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:placeholder"
|
msgctxt "@info:placeholder"
|
||||||
msgid "Drag items here to share them"
|
msgid "Drag items here to share them"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:332
|
#: src/timeline/TimelineView.qml:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Message displayed when some users are typing"
|
msgctxt "Message displayed when some users are typing"
|
||||||
msgid "%2 is typing"
|
msgid "%2 is typing"
|
||||||
|
|||||||
399
po/az/neochat.po
399
po/az/neochat.po
File diff suppressed because it is too large
Load Diff
556
po/ca/neochat.po
556
po/ca/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: neochat\n"
|
"Project-Id-Version: neochat\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||||
"PO-Revision-Date: 2025-11-10 11:43+0100\n"
|
"PO-Revision-Date: 2025-12-01 11:35+0100\n"
|
||||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||||
"Language: ca@valencia\n"
|
"Language: ca@valencia\n"
|
||||||
@@ -28,127 +28,127 @@ msgctxt ""
|
|||||||
msgid "Receiving notifications for new messages"
|
msgid "Receiving notifications for new messages"
|
||||||
msgstr "Rebre les notificacions dels missatges nous"
|
msgstr "Rebre les notificacions dels missatges nous"
|
||||||
|
|
||||||
#: src/app/controller.cpp:316
|
#: src/app/controller.cpp:319
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Receiving push notifications"
|
msgid "Receiving push notifications"
|
||||||
msgstr "Rebre les notificacions automàtiques"
|
msgstr "Rebre les notificacions automàtiques"
|
||||||
|
|
||||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "NeoChat"
|
msgid "NeoChat"
|
||||||
msgstr "NeoChat"
|
msgstr "NeoChat"
|
||||||
|
|
||||||
#: src/app/main.cpp:138
|
#: src/app/main.cpp:133
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Chat on Matrix"
|
msgid "Chat on Matrix"
|
||||||
msgstr "Xat a Matrix"
|
msgstr "Xat a Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:140
|
#: src/app/main.cpp:135
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||||
msgstr "© 2018-2020 Black Hat, 2020-2025 la comunitat KDE"
|
msgstr "© 2018-2020 Black Hat, 2020-2025 la comunitat KDE"
|
||||||
|
|
||||||
#: src/app/main.cpp:141
|
#: src/app/main.cpp:136
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Carl Schwan"
|
msgid "Carl Schwan"
|
||||||
msgstr "Carl Schwan"
|
msgstr "Carl Schwan"
|
||||||
|
|
||||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||||
#: src/app/main.cpp:145
|
#: src/app/main.cpp:140
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer"
|
msgid "Maintainer"
|
||||||
msgstr "Mantenidor"
|
msgstr "Mantenidor"
|
||||||
|
|
||||||
#: src/app/main.cpp:142
|
#: src/app/main.cpp:137
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Tobias Fella"
|
msgid "Tobias Fella"
|
||||||
msgstr "Tobias Fella"
|
msgstr "Tobias Fella"
|
||||||
|
|
||||||
#: src/app/main.cpp:143
|
#: src/app/main.cpp:138
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "James Graham"
|
msgid "James Graham"
|
||||||
msgstr "Nate Graham"
|
msgstr "Nate Graham"
|
||||||
|
|
||||||
#: src/app/main.cpp:144
|
#: src/app/main.cpp:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Joshua Goins"
|
msgid "Joshua Goins"
|
||||||
msgstr "Joshua Goins"
|
msgstr "Joshua Goins"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Black Hat"
|
msgid "Black Hat"
|
||||||
msgstr "Black Hat"
|
msgstr "Black Hat"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Original author of Spectral"
|
msgid "Original author of Spectral"
|
||||||
msgstr "Autor original de Spectral"
|
msgstr "Autor original de Spectral"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Alexey Rusakov"
|
msgid "Alexey Rusakov"
|
||||||
msgstr "Alexey Rusakov"
|
msgstr "Alexey Rusakov"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer of libQuotient"
|
msgid "Maintainer of libQuotient"
|
||||||
msgstr "Mantenidor de la libQuotient"
|
msgstr "Mantenidor de la libQuotient"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "NAME OF TRANSLATORS"
|
msgctxt "NAME OF TRANSLATORS"
|
||||||
msgid "Your names"
|
msgid "Your names"
|
||||||
msgstr "Josep M. Ferrer"
|
msgstr "Josep M. Ferrer"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "EMAIL OF TRANSLATORS"
|
msgctxt "EMAIL OF TRANSLATORS"
|
||||||
msgid "Your emails"
|
msgid "Your emails"
|
||||||
msgstr "txemaq@gmail.com"
|
msgstr "txemaq@gmail.com"
|
||||||
|
|
||||||
#: src/app/main.cpp:155
|
#: src/app/main.cpp:150
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||||
msgstr "Una biblioteca Qt per a escriure clients multiplataforma per a Matrix"
|
msgstr "Una biblioteca Qt per a escriure clients multiplataforma per a Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:157
|
#: src/app/main.cpp:152
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "<version number> (built against <possibly different version number>)"
|
msgctxt "<version number> (built against <possibly different version number>)"
|
||||||
msgid "%1 (built against %2)"
|
msgid "%1 (built against %2)"
|
||||||
msgstr "%1 (construïda amb %2)"
|
msgstr "%1 (construïda amb %2)"
|
||||||
|
|
||||||
#: src/app/main.cpp:178
|
#: src/app/main.cpp:167
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Client for the matrix communication protocol"
|
msgid "Client for the matrix communication protocol"
|
||||||
msgstr "Client per al protocol de comunicacions Matrix"
|
msgstr "Client per al protocol de comunicacions Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:179
|
#: src/app/main.cpp:168
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Supports matrix: url scheme"
|
msgid "Supports matrix: url scheme"
|
||||||
msgstr "Implementa l'esquema d'URL «matrix:»"
|
msgstr "Implementa l'esquema d'URL «matrix:»"
|
||||||
|
|
||||||
#: src/app/main.cpp:180
|
#: src/app/main.cpp:169
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||||
msgstr "Ignora tots els errors d'SSL, p. ex., certificats sense signar."
|
msgstr "Ignora tots els errors d'SSL, p. ex., certificats sense signar."
|
||||||
|
|
||||||
#: src/app/main.cpp:182
|
#: src/app/main.cpp:171
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "command line description"
|
msgctxt "command line description"
|
||||||
msgid "Replace an existing instance"
|
msgid "Replace an existing instance"
|
||||||
msgstr "Substituïx una instància existent"
|
msgstr "Substituïx una instància existent"
|
||||||
|
|
||||||
#: src/app/main.cpp:185
|
#: src/app/main.cpp:174
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Only used for autotests"
|
msgid "Only used for autotests"
|
||||||
msgstr "Només s'utilitza en les proves automàtiques"
|
msgstr "Només s'utilitza en les proves automàtiques"
|
||||||
|
|
||||||
#: src/app/main.cpp:195
|
#: src/app/main.cpp:184
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Share a URL to Matrix"
|
msgid "Share a URL to Matrix"
|
||||||
msgstr "Compartix un URL a Matrix"
|
msgstr "Compartix un URL a Matrix"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Encrypted Message"
|
msgid "Encrypted Message"
|
||||||
msgstr "Missatge encriptat"
|
msgstr "Missatge encriptat"
|
||||||
@@ -173,40 +173,40 @@ msgstr "Respon"
|
|||||||
msgid "Reply…"
|
msgid "Reply…"
|
||||||
msgstr "Respon…"
|
msgstr "Respon…"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:306
|
#: src/app/notificationsmanager.cpp:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 invited you to a room"
|
msgid "%1 invited you to a room"
|
||||||
msgstr "%1 vos ha convidat a la sala"
|
msgstr "%1 vos ha convidat a la sala"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:309
|
#: src/app/notificationsmanager.cpp:307
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open this invitation in NeoChat"
|
msgid "Open this invitation in NeoChat"
|
||||||
msgstr "Obri esta invitació en NeoChat"
|
msgstr "Obri esta invitació en NeoChat"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:319
|
#: src/app/notificationsmanager.cpp:317
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Accepta"
|
msgstr "Accepta"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:320
|
#: src/app/notificationsmanager.cpp:318
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Rebutja"
|
msgstr "Rebutja"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:322
|
#: src/app/notificationsmanager.cpp:320
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject and Ignore User"
|
msgid "Reject and Ignore User"
|
||||||
msgstr "Rebutja i ignora l'usuari"
|
msgstr "Rebutja i ignora l'usuari"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:383
|
#: src/app/notificationsmanager.cpp:379
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 (%2)"
|
msgid "%1 (%2)"
|
||||||
msgstr "%1 (%2)"
|
msgstr "%1 (%2)"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:394
|
#: src/app/notificationsmanager.cpp:390
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open NeoChat"
|
msgid "Open NeoChat"
|
||||||
msgstr "Obri NeoChat"
|
msgstr "Obri NeoChat"
|
||||||
@@ -247,7 +247,7 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Developer Tools"
|
msgid "Open Developer Tools"
|
||||||
msgstr "Obri les eines de desenvolupament"
|
msgstr "Obri les eines de desenvolupament"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Developer Tools"
|
msgid "Developer Tools"
|
||||||
@@ -259,25 +259,25 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Secret Backup"
|
msgid "Open Secret Backup"
|
||||||
msgstr "Obri una còpia de seguretat del secret"
|
msgstr "Obri una còpia de seguretat del secret"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:84
|
#: src/app/qml/AccountMenu.qml:83
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Open Key Backup"
|
msgid "Open Key Backup"
|
||||||
msgstr "Obri una còpia de seguretat de la clau"
|
msgstr "Obri una còpia de seguretat de la clau"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:89
|
#: src/app/qml/AccountMenu.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Verify This Device"
|
msgid "Verify This Device"
|
||||||
msgstr "Verifica este dispositiu"
|
msgstr "Verifica este dispositiu"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Verification Request Sent"
|
msgid "Verification Request Sent"
|
||||||
msgstr "Enviament de sol·licitud de verificació"
|
msgstr "Enviament de sol·licitud de verificació"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "To proceed, accept the verification request on another device."
|
msgid "To proceed, accept the verification request on another device."
|
||||||
@@ -285,7 +285,7 @@ msgstr ""
|
|||||||
"Per a continuar, accepteu la sol·licitud de verificació en un altre "
|
"Per a continuar, accepteu la sol·licitud de verificació en un altre "
|
||||||
"dispositiu."
|
"dispositiu."
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:107
|
#: src/app/qml/AccountMenu.qml:106
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Logout…"
|
msgid "Logout…"
|
||||||
@@ -605,31 +605,31 @@ msgctxt "@info:label 'Username' has invited you to this room at 'timestamp'."
|
|||||||
msgid "%1 has invited you to this room at %2."
|
msgid "%1 has invited you to this room at %2."
|
||||||
msgstr "%1 vos ha convidat en esta sala %2."
|
msgstr "%1 vos ha convidat en esta sala %2."
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:97
|
#: src/app/qml/InvitationView.qml:98
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||||
msgid "This user invited you to chat at %1."
|
msgid "This user invited you to chat at %1."
|
||||||
msgstr "Este usuari vos ha convidat al xat %1."
|
msgstr "Este usuari vos ha convidat al xat %1."
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:112
|
#: src/app/qml/InvitationView.qml:113
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Accept this invite"
|
msgctxt "@action:button Accept this invite"
|
||||||
msgid "Accept Invite"
|
msgid "Accept Invite"
|
||||||
msgstr "Accepta la invitació"
|
msgstr "Accepta la invitació"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:127
|
#: src/app/qml/InvitationView.qml:128
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Reject this invite"
|
msgctxt "@action:button Reject this invite"
|
||||||
msgid "Reject Invite"
|
msgid "Reject Invite"
|
||||||
msgstr "Rebutja la invitació"
|
msgstr "Rebutja la invitació"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:141
|
#: src/app/qml/InvitationView.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Block the user"
|
msgctxt "@action:button Block the user"
|
||||||
msgid "Block %1"
|
msgid "Block %1"
|
||||||
msgstr "Bloqueja %1"
|
msgstr "Bloqueja %1"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:180
|
#: src/app/qml/InvitationView.qml:181
|
||||||
#, kde-kuit-format
|
#, kde-kuit-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@info:label Ensure you are referring to the same translation used for that "
|
"@info:label Ensure you are referring to the same translation used for that "
|
||||||
@@ -950,7 +950,7 @@ msgctxt "@title:dialog"
|
|||||||
msgid "Select a File"
|
msgid "Select a File"
|
||||||
msgstr "Trieu un fitxer"
|
msgstr "Trieu un fitxer"
|
||||||
|
|
||||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
@@ -1040,38 +1040,38 @@ msgctxt "@action:button"
|
|||||||
msgid "Ignore"
|
msgid "Ignore"
|
||||||
msgstr "Ignora"
|
msgstr "Ignora"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:95
|
#: src/app/qml/RoomPage.qml:87
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Join Jitsi meeting…"
|
msgid "Join Jitsi meeting…"
|
||||||
msgstr "Unix-te a una reunió de Jitsi…"
|
msgstr "Unix-te a una reunió de Jitsi…"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Start Jitsi meeting…"
|
msgid "Start Jitsi meeting…"
|
||||||
msgstr "Inicia una reunió de Jitsi…"
|
msgstr "Inicia una reunió de Jitsi…"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "You do not have permissions to start Jitsi meetings"
|
msgid "You do not have permissions to start Jitsi meetings"
|
||||||
msgstr "No teniu permís per a iniciar reunions de Jitsi"
|
msgstr "No teniu permís per a iniciar reunions de Jitsi"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||||
#: src/roominfo/RoomInformation.qml:109
|
#: src/roominfo/RoomInformation.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:title"
|
msgctxt "@action:title"
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Busca"
|
msgstr "Busca"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:150
|
#: src/app/qml/RoomPage.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "This room contains official messages from your homeserver."
|
msgid "This room contains official messages from your homeserver."
|
||||||
msgstr "La sala conté missatges oficials del vostre servidor domèstic."
|
msgstr "La sala conté missatges oficials del vostre servidor domèstic."
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:161
|
#: src/app/qml/RoomPage.qml:153
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "NeoChat is offline. Please check your network connection."
|
msgid "NeoChat is offline. Please check your network connection."
|
||||||
@@ -1079,26 +1079,26 @@ msgstr ""
|
|||||||
"NeoChat està en fora de línia. Comproveu l'estat de la vostra connexió de "
|
"NeoChat està en fora de línia. Comproveu l'estat de la vostra connexió de "
|
||||||
"xarxa."
|
"xarxa."
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr "Missatges fixats"
|
msgstr "Missatges fixats"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:294
|
#: src/app/qml/RoomPage.qml:285
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Welcome to NeoChat"
|
msgid "Welcome to NeoChat"
|
||||||
msgstr "Us donem la benvinguda a NeoChat"
|
msgstr "Us donem la benvinguda a NeoChat"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:295
|
#: src/app/qml/RoomPage.qml:286
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:usagetip"
|
msgctxt "@info:usagetip"
|
||||||
msgid "Select or join a room to get started"
|
msgid "Select or join a room to get started"
|
||||||
msgstr "Trieu o uniu-vos a una per a començar"
|
msgstr "Trieu o uniu-vos a una per a començar"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:356
|
#: src/app/qml/RoomPage.qml:347
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:dialog"
|
msgctxt "@title:dialog"
|
||||||
msgid "Message Source"
|
msgid "Message Source"
|
||||||
@@ -1182,13 +1182,21 @@ msgctxt "@info"
|
|||||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||||
msgstr "L'URL compartit per a la imatge és <a href='%1'>%1</a>"
|
msgstr "L'URL compartit per a la imatge és <a href='%1'>%1</a>"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load your encrypted messages"
|
msgid "Load your encrypted messages"
|
||||||
msgstr "Càrrega dels missatges encriptats"
|
msgstr "Càrrega dels missatges encriptats"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:status"
|
||||||
|
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
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Encryption keys restored."
|
msgid "Encryption keys restored."
|
||||||
@@ -1196,71 +1204,47 @@ msgstr "S'han restaurat les claus d'encriptació."
|
|||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
|
||||||
msgid "The security phrase was not correct."
|
|
||||||
msgstr "La frase de seguretat no és correcta."
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock using Passphrase"
|
msgid "Unlock using Security Key or Backup Passphrase"
|
||||||
msgstr "Desbloqueja utilitzant la frase de pas"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@info"
|
|
||||||
msgid "If you have a backup passphrase for this account, enter it below."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si teniu una còpia de seguretat de la frase de pas per a este compte, "
|
"Desbloqueja utilitzant la clau de seguretat o la frase de pas de còpia de "
|
||||||
"introduïu-la a continuació."
|
"seguretat"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Backup Password:"
|
|
||||||
msgstr "Còpia de seguretat de la contrasenya:"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@action:button"
|
|
||||||
msgid "Unlock"
|
|
||||||
msgstr "Desbloqueja"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Security Key"
|
|
||||||
msgstr "Desbloqueja utilitzant la clau de seguretat"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have a security key for this account, enter it below or upload it as "
|
"If you have a security key or backup passphrase for this account, enter it "
|
||||||
"a file."
|
"below or upload it as a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si teniu una clau de seguretat per a este compte, introduïu-la a continuació "
|
"Si teniu una clau de seguretat o una frase de pas de còpia de seguretat per "
|
||||||
"o carregueu-la com a fitxer."
|
"a este compte, introduïu-la a continuació o carregueu-la com a fitxer."
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
msgid "Security Key:"
|
msgid "Security Key or Backup Passphrase:"
|
||||||
msgstr "Clau de seguretat:"
|
msgstr "Clau de seguretat o frase de pas de còpia de seguretat:"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Upload from File"
|
msgid "Upload from File"
|
||||||
msgstr "Carrega des del fitxer"
|
msgstr "Carrega des del fitxer"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@action:button"
|
||||||
|
msgid "Unlock"
|
||||||
|
msgstr "Desbloqueja"
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock from Cross-Signing"
|
msgid "Unlock from Cross-Signing"
|
||||||
msgstr "Desbloqueja a partir d'una signatura creuada"
|
msgstr "Desbloqueja a partir d'una signatura creuada"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1271,7 +1255,7 @@ msgstr ""
|
|||||||
"clau de còpia de seguretat des d'altres dispositius clicant damunt del botó "
|
"clau de còpia de seguretat des d'altres dispositius clicant damunt del botó "
|
||||||
"de davall."
|
"de davall."
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Request from other Devices"
|
msgid "Request from other Devices"
|
||||||
@@ -1419,6 +1403,38 @@ msgstr "Busca missatges de %1 a la sala"
|
|||||||
msgid "Copy link"
|
msgid "Copy link"
|
||||||
msgstr "Copia l'enllaç"
|
msgstr "Copia l'enllaç"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:298
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr "Informa…"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:303
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr "Informa d'un usuari"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:304
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this user"
|
||||||
|
msgstr "Motiu per a informar d'este usuari"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:306
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "Informa"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:308
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr "Informa d'un usuari"
|
||||||
|
|
||||||
#: src/app/qml/UserMenu.qml:62
|
#: src/app/qml/UserMenu.qml:62
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -1654,24 +1670,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Fet"
|
msgstr "Fet"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:235
|
#: src/app/roommanager.cpp:213
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ID de Matrix amb forma incorrecte o buit<br />%1 no és cap identificador "
|
"ID de Matrix amb forma incorrecte o buit<br />%1 no és cap identificador "
|
||||||
"correcte de Matrix"
|
"correcte de Matrix"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:439
|
#: src/app/roommanager.cpp:430
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to join %1:<br />%2"
|
msgid "Failed to join %1:<br />%2"
|
||||||
msgstr "No s'ha pogut unir-se a %1:<br />%2"
|
msgstr "No s'ha pogut unir-se a %1:<br />%2"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:463
|
#: src/app/roommanager.cpp:454
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "You requested to join '%1'"
|
msgid "You requested to join '%1'"
|
||||||
msgstr "Heu sol·licitat unir-vos a «%1»"
|
msgstr "Heu sol·licitat unir-vos a «%1»"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:467
|
#: src/app/roommanager.cpp:458
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to request joining room<br />%1"
|
msgid "Failed to request joining room<br />%1"
|
||||||
msgstr "Ha fallat mentre se sol·licitava unir-vos a la sala<br />%1"
|
msgstr "Ha fallat mentre se sol·licitava unir-vos a la sala<br />%1"
|
||||||
@@ -1753,7 +1769,7 @@ msgctxt "@placeholder"
|
|||||||
msgid "Send a message…"
|
msgid "Send a message…"
|
||||||
msgstr "Envia un missatge…"
|
msgstr "Envia un missatge…"
|
||||||
|
|
||||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Cancel reply"
|
msgid "Cancel reply"
|
||||||
@@ -1961,19 +1977,13 @@ msgstr "Fils"
|
|||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:25
|
#: src/devtools/FeatureFlagPage.qml:25
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
|
||||||
msgid "Secret Backup"
|
|
||||||
msgstr "Còpia de seguretat del secret"
|
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:31
|
|
||||||
#, kde-format
|
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||||
"party ID"
|
"party ID"
|
||||||
msgid "Add phone numbers as 3PIDs"
|
msgid "Add phone numbers as 3PIDs"
|
||||||
msgstr "Afig els números de telèfon com a 3PID"
|
msgstr "Afig els números de telèfon com a 3PID"
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:40
|
#: src/devtools/FeatureFlagPage.qml:34
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||||
msgid "Calls"
|
msgid "Calls"
|
||||||
@@ -2351,13 +2361,13 @@ msgstr "ha/n deixat la sala"
|
|||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:392
|
#: src/libneochat/eventhandler.cpp:392
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room: %2"
|
msgid "has removed %1 from the room: %2"
|
||||||
msgstr "ha posat %1 fora de la sala: %2"
|
msgstr "s'ha eliminat %1 de la sala: %2"
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:394
|
#: src/libneochat/eventhandler.cpp:394
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room"
|
msgid "has removed %1 from the room"
|
||||||
msgstr "ha posat %1 fora de la sala"
|
msgstr "s'ha eliminat %1 de la sala"
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:398
|
#: src/libneochat/eventhandler.cpp:398
|
||||||
#, kde-format
|
#, kde-format
|
||||||
@@ -3201,7 +3211,7 @@ msgctxt "@info the person that created this room"
|
|||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr "Creador"
|
msgstr "Creador"
|
||||||
|
|
||||||
#: src/libneochat/neochatconnection.cpp:71
|
#: src/libneochat/neochatconnection.cpp:73
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"File too large to download.<br />Contact your matrix server administrator "
|
"File too large to download.<br />Contact your matrix server administrator "
|
||||||
@@ -3226,12 +3236,12 @@ msgstr "No s'ha pogut crear la sala: %1"
|
|||||||
msgid "Space creation failed: %1"
|
msgid "Space creation failed: %1"
|
||||||
msgstr "No s'ha pogut crear l'espai: %1"
|
msgstr "No s'ha pogut crear l'espai: %1"
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1253
|
#: src/libneochat/neochatroom.cpp:1254
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Report sent successfully."
|
msgid "Report sent successfully."
|
||||||
msgstr "L'informe s'ha enviat correctament."
|
msgstr "L'informe s'ha enviat correctament."
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||||
msgid "Lat: %1, Lon: %2"
|
msgid "Lat: %1, Lon: %2"
|
||||||
@@ -3710,12 +3720,12 @@ msgctxt "@action:button"
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel·la"
|
msgstr "Cancel·la"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:154
|
#: src/messagecontent/CodeComponent.qml:161
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Copy to clipboard"
|
msgid "Copy to clipboard"
|
||||||
msgstr "Copia a dins del porta-retalls"
|
msgstr "Copia a dins del porta-retalls"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:166
|
#: src/messagecontent/CodeComponent.qml:173
|
||||||
#: src/messagecontent/VideoComponent.qml:374
|
#: src/messagecontent/VideoComponent.qml:374
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -3926,13 +3936,13 @@ msgctxt "as in 'this vote has ended'"
|
|||||||
msgid "(Ended)"
|
msgid "(Ended)"
|
||||||
msgstr "(Finalitzat)"
|
msgstr "(Finalitzat)"
|
||||||
|
|
||||||
#: src/messagecontent/pollhandler.cpp:306
|
#: src/messagecontent/pollhandler.cpp:308
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "%1 is the poll answer that had the most votes"
|
msgctxt "%1 is the poll answer that had the most votes"
|
||||||
msgid "The poll has ended. Top answer: %1"
|
msgid "The poll has ended. Top answer: %1"
|
||||||
msgstr "La votació ha finalitzat. Resposta guanyadora: %1"
|
msgstr "La votació ha finalitzat. Resposta guanyadora: %1"
|
||||||
|
|
||||||
#: src/messagecontent/ReactionComponent.qml:88
|
#: src/messagecontent/ReactionComponent.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@button"
|
msgctxt "@button"
|
||||||
msgid "React"
|
msgid "React"
|
||||||
@@ -3968,7 +3978,7 @@ msgctxt "@action:button"
|
|||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr "Volum"
|
msgstr "Volum"
|
||||||
|
|
||||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Locations on a map"
|
msgctxt "Locations on a map"
|
||||||
msgid "Locations"
|
msgid "Locations"
|
||||||
@@ -3979,18 +3989,18 @@ msgstr "Ubicacions"
|
|||||||
msgid "There are no locations shared in this room."
|
msgid "There are no locations shared in this room."
|
||||||
msgstr "No hi ha ubicacions compartides en esta sala."
|
msgstr "No hi ha ubicacions compartides en esta sala."
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Room settings"
|
msgid "Room settings"
|
||||||
msgstr "Configureu la sala"
|
msgstr "Configureu la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr "Informació"
|
msgstr "Informació"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr "Multimèdia"
|
msgstr "Multimèdia"
|
||||||
@@ -4007,95 +4017,95 @@ msgctxt "@action:title"
|
|||||||
msgid "Room Information"
|
msgid "Room Information"
|
||||||
msgstr "Informació de la sala"
|
msgstr "Informació de la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:90
|
#: src/roominfo/RoomInformation.qml:72
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Room actions"
|
msgctxt "Room actions"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Accions"
|
msgstr "Accions"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:100
|
#: src/roominfo/RoomInformation.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Search Messages"
|
msgid "Search Messages"
|
||||||
msgstr "Busca missatges"
|
msgstr "Busca missatges"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:117
|
#: src/roominfo/RoomInformation.qml:99
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Verify user"
|
msgid "Verify user"
|
||||||
msgstr "Verifica l'usuari"
|
msgstr "Verifica l'usuari"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Elimina de les preferides"
|
msgstr "Elimina de les preferides"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Afig a les preferides"
|
msgstr "Afig a les preferides"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:141
|
#: src/roominfo/RoomInformation.qml:123
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr "Extensions"
|
msgstr "Extensions"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:147
|
#: src/roominfo/RoomInformation.qml:129
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr "Extensions"
|
msgstr "Extensions"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:157
|
#: src/roominfo/RoomInformation.qml:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Shared Locations"
|
msgid "Shared Locations"
|
||||||
msgstr "Ubicacions compartides"
|
msgstr "Ubicacions compartides"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:173
|
#: src/roominfo/RoomInformation.qml:155
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr "Missatges fixats"
|
msgstr "Missatges fixats"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:188
|
#: src/roominfo/RoomInformation.qml:170
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Inspect Room Data"
|
msgid "Inspect Room Data"
|
||||||
msgstr "Inspecciona les dades de la sala"
|
msgstr "Inspecciona les dades de la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Space…"
|
msgid "Leave Space…"
|
||||||
msgstr "Ix de l'espai…"
|
msgstr "Ix de l'espai…"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr "Ix de la sala…"
|
msgstr "Ix de la sala…"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:222
|
#: src/roominfo/RoomInformation.qml:204
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Membres"
|
msgstr "Membres"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Invite a User"
|
msgid "Invite a User"
|
||||||
msgstr "Convida un usuari"
|
msgstr "Convida un usuari"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:241
|
#: src/roominfo/RoomInformation.qml:223
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Invite user to room"
|
msgid "Invite user to room"
|
||||||
msgstr "Convida un usuari a la sala"
|
msgstr "Convida un usuari a la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%1 member"
|
msgid "%1 member"
|
||||||
@@ -4103,7 +4113,7 @@ msgid_plural "%1 members"
|
|||||||
msgstr[0] "%1 membre"
|
msgstr[0] "%1 membre"
|
||||||
msgstr[1] "%1 membres"
|
msgstr[1] "%1 membres"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "No member count"
|
msgid "No member count"
|
||||||
msgstr "No hi ha comptador de membres"
|
msgstr "No hi ha comptador de membres"
|
||||||
@@ -4159,42 +4169,42 @@ msgctxt "@action:button"
|
|||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr "Elimina el giny"
|
msgstr "Elimina el giny"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:38
|
#: src/rooms/ExploreComponent.qml:36
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Rooms"
|
msgid "Rooms"
|
||||||
msgstr "Sales"
|
msgstr "Sales"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:50
|
#: src/rooms/ExploreComponent.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Search Rooms"
|
msgid "Search Rooms"
|
||||||
msgstr "Busca sales"
|
msgstr "Busca sales"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:75
|
#: src/rooms/ExploreComponent.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Show Menu"
|
msgid "Show Menu"
|
||||||
msgstr "Mostra el menú"
|
msgstr "Mostra el menú"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "Busqueu els vostres amics"
|
msgstr "Busqueu els vostres amics"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "Busca d'amics"
|
msgstr "Busca d'amics"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:104
|
#: src/rooms/ExploreComponent.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Create a Room"
|
msgid "Create a Room"
|
||||||
msgstr "Crea una sala"
|
msgstr "Crea una sala"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:119
|
#: src/rooms/ExploreComponent.qml:103
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
msgstr "Escaneja un codi QR"
|
msgstr "Escaneja un codi QR"
|
||||||
@@ -4226,13 +4236,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Create a Space"
|
msgid "Create a Space"
|
||||||
msgstr "Crea un espai"
|
msgstr "Crea un espai"
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:366
|
#: src/rooms/models/roomtreemodel.cpp:364
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "Invited you to chat"
|
msgid "Invited you to chat"
|
||||||
msgstr "Vos ha convidat al xat"
|
msgstr "Vos ha convidat al xat"
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:368
|
#: src/rooms/models/roomtreemodel.cpp:366
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "%1 invited you"
|
msgid "%1 invited you"
|
||||||
@@ -4314,6 +4324,38 @@ msgstr "Configureu la sala"
|
|||||||
|
|
||||||
#: src/rooms/RoomContextMenu.qml:154
|
#: src/rooms/RoomContextMenu.qml:154
|
||||||
#, kde-format
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr "Informa…"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:159
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr "Informa d'una sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:160
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this room"
|
||||||
|
msgstr "Motiu per a informar d'esta sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:162
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "Informa"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:164
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr "Informa d'una sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:174
|
||||||
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr "Ix de la sala…"
|
msgstr "Ix de la sala…"
|
||||||
@@ -4379,13 +4421,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Search in friend directory"
|
msgid "Search in friend directory"
|
||||||
msgstr "Busca en el directori d'amics"
|
msgstr "Busca en el directori d'amics"
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Collapse <section name>"
|
msgctxt "Collapse <section name>"
|
||||||
msgid "Collapse %1"
|
msgid "Collapse %1"
|
||||||
msgstr "Reduïx %1"
|
msgstr "Reduïx %1"
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Expand <section name"
|
msgctxt "Expand <section name"
|
||||||
msgid "Expand %1"
|
msgid "Expand %1"
|
||||||
@@ -5904,7 +5946,7 @@ msgstr "Configureu el servidor intermediari"
|
|||||||
#: src/settings/NetworkProxyPage.qml:78
|
#: src/settings/NetworkProxyPage.qml:78
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Host"
|
msgid "Host"
|
||||||
msgstr "Amfitrió"
|
msgstr "Màquina"
|
||||||
|
|
||||||
#: src/settings/NetworkProxyPage.qml:91
|
#: src/settings/NetworkProxyPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
@@ -7041,19 +7083,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
|||||||
msgid "%1 said %2"
|
msgid "%1 said %2"
|
||||||
msgstr "%1 ha dit %2"
|
msgstr "%1 ha dit %2"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||||
msgid "Unpin"
|
msgid "Unpin"
|
||||||
msgstr "Deixa de fixar"
|
msgstr "Deixa de fixar"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
msgstr "Fixa"
|
msgstr "Fixa"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:416
|
#: src/timeline/DelegateContextMenu.qml:415
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
@@ -7123,31 +7165,31 @@ msgstr ""
|
|||||||
"Este és el començament del xat. No hi ha missatges històrics més enllà "
|
"Este és el començament del xat. No hi ha missatges històrics més enllà "
|
||||||
"d'este punt."
|
"d'este punt."
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to first unread message"
|
msgid "Jump to first unread message"
|
||||||
msgstr "Ves fins al primer missatge sense llegir"
|
msgstr "Ves fins al primer missatge sense llegir"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to oldest loaded message"
|
msgid "Jump to oldest loaded message"
|
||||||
msgstr "Ves fins al missatge carregat més antic"
|
msgstr "Ves fins al missatge carregat més antic"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:272
|
#: src/timeline/TimelineView.qml:245
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to latest message"
|
msgid "Jump to latest message"
|
||||||
msgstr "Ves fins a l'últim missatge"
|
msgstr "Ves fins a l'últim missatge"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:307
|
#: src/timeline/TimelineView.qml:279
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:placeholder"
|
msgctxt "@info:placeholder"
|
||||||
msgid "Drag items here to share them"
|
msgid "Drag items here to share them"
|
||||||
msgstr "Arrossegueu ací els elements per a compartir"
|
msgstr "Arrossegueu ací els elements per a compartir"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:332
|
#: src/timeline/TimelineView.qml:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Message displayed when some users are typing"
|
msgctxt "Message displayed when some users are typing"
|
||||||
msgid "%2 is typing"
|
msgid "%2 is typing"
|
||||||
|
|||||||
508
po/cs/neochat.po
508
po/cs/neochat.po
File diff suppressed because it is too large
Load Diff
381
po/da/neochat.po
381
po/da/neochat.po
File diff suppressed because it is too large
Load Diff
1081
po/de/neochat.po
1081
po/de/neochat.po
File diff suppressed because it is too large
Load Diff
422
po/el/neochat.po
422
po/el/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
434
po/eo/neochat.po
434
po/eo/neochat.po
File diff suppressed because it is too large
Load Diff
370
po/es/neochat.po
370
po/es/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: neochat\n"
|
"Project-Id-Version: neochat\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||||
"PO-Revision-Date: 2025-11-11 01:01+0100\n"
|
"PO-Revision-Date: 2025-12-02 01:39+0100\n"
|
||||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -27,129 +27,129 @@ msgctxt ""
|
|||||||
msgid "Receiving notifications for new messages"
|
msgid "Receiving notifications for new messages"
|
||||||
msgstr "Recibir notificaciones de nuevos mensajes"
|
msgstr "Recibir notificaciones de nuevos mensajes"
|
||||||
|
|
||||||
#: src/app/controller.cpp:316
|
#: src/app/controller.cpp:319
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Receiving push notifications"
|
msgid "Receiving push notifications"
|
||||||
msgstr "Recepción de notificaciones push"
|
msgstr "Recepción de notificaciones push"
|
||||||
|
|
||||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "NeoChat"
|
msgid "NeoChat"
|
||||||
msgstr "NeoChat"
|
msgstr "NeoChat"
|
||||||
|
|
||||||
#: src/app/main.cpp:138
|
#: src/app/main.cpp:133
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Chat on Matrix"
|
msgid "Chat on Matrix"
|
||||||
msgstr "Chat en Matrix"
|
msgstr "Chat en Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:140
|
#: src/app/main.cpp:135
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||||
msgstr "© 2018-2020 Black Hat, 2020-2025 La Comunidad KDE"
|
msgstr "© 2018-2020 Black Hat, 2020-2025 La Comunidad KDE"
|
||||||
|
|
||||||
#: src/app/main.cpp:141
|
#: src/app/main.cpp:136
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Carl Schwan"
|
msgid "Carl Schwan"
|
||||||
msgstr "Carl Schwan"
|
msgstr "Carl Schwan"
|
||||||
|
|
||||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||||
#: src/app/main.cpp:145
|
#: src/app/main.cpp:140
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer"
|
msgid "Maintainer"
|
||||||
msgstr "Responsable"
|
msgstr "Responsable"
|
||||||
|
|
||||||
#: src/app/main.cpp:142
|
#: src/app/main.cpp:137
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Tobias Fella"
|
msgid "Tobias Fella"
|
||||||
msgstr "Tobias Fella"
|
msgstr "Tobias Fella"
|
||||||
|
|
||||||
#: src/app/main.cpp:143
|
#: src/app/main.cpp:138
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "James Graham"
|
msgid "James Graham"
|
||||||
msgstr "James Graham"
|
msgstr "James Graham"
|
||||||
|
|
||||||
#: src/app/main.cpp:144
|
#: src/app/main.cpp:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Joshua Goins"
|
msgid "Joshua Goins"
|
||||||
msgstr "Joshua Goins"
|
msgstr "Joshua Goins"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Black Hat"
|
msgid "Black Hat"
|
||||||
msgstr "Black Hat"
|
msgstr "Black Hat"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Original author of Spectral"
|
msgid "Original author of Spectral"
|
||||||
msgstr "Autor original de Spectral"
|
msgstr "Autor original de Spectral"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Alexey Rusakov"
|
msgid "Alexey Rusakov"
|
||||||
msgstr "Alexey Rusakov"
|
msgstr "Alexey Rusakov"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer of libQuotient"
|
msgid "Maintainer of libQuotient"
|
||||||
msgstr "Responsable de libQuotient"
|
msgstr "Responsable de libQuotient"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "NAME OF TRANSLATORS"
|
msgctxt "NAME OF TRANSLATORS"
|
||||||
msgid "Your names"
|
msgid "Your names"
|
||||||
msgstr "Eloy Cuadra"
|
msgstr "Eloy Cuadra"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "EMAIL OF TRANSLATORS"
|
msgctxt "EMAIL OF TRANSLATORS"
|
||||||
msgid "Your emails"
|
msgid "Your emails"
|
||||||
msgstr "ecuadra@eloihr.net"
|
msgstr "ecuadra@eloihr.net"
|
||||||
|
|
||||||
#: src/app/main.cpp:155
|
#: src/app/main.cpp:150
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Biblioteca Qt para la escritura de clientes multiplataforma para Matrix"
|
"Biblioteca Qt para la escritura de clientes multiplataforma para Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:157
|
#: src/app/main.cpp:152
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "<version number> (built against <possibly different version number>)"
|
msgctxt "<version number> (built against <possibly different version number>)"
|
||||||
msgid "%1 (built against %2)"
|
msgid "%1 (built against %2)"
|
||||||
msgstr "%1 (compilado con %2)"
|
msgstr "%1 (compilado con %2)"
|
||||||
|
|
||||||
#: src/app/main.cpp:178
|
#: src/app/main.cpp:167
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Client for the matrix communication protocol"
|
msgid "Client for the matrix communication protocol"
|
||||||
msgstr "Cliente para el protocolo de comunicaciones Matrix"
|
msgstr "Cliente para el protocolo de comunicaciones Matrix"
|
||||||
|
|
||||||
#: src/app/main.cpp:179
|
#: src/app/main.cpp:168
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Supports matrix: url scheme"
|
msgid "Supports matrix: url scheme"
|
||||||
msgstr "Permite el esquema de URL «matrix:»"
|
msgstr "Permite el esquema de URL «matrix:»"
|
||||||
|
|
||||||
#: src/app/main.cpp:180
|
#: src/app/main.cpp:169
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ignorar todos los errores de SSL (por ejemplo, certificados sin firmar)."
|
"Ignorar todos los errores de SSL (por ejemplo, certificados sin firmar)."
|
||||||
|
|
||||||
#: src/app/main.cpp:182
|
#: src/app/main.cpp:171
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "command line description"
|
msgctxt "command line description"
|
||||||
msgid "Replace an existing instance"
|
msgid "Replace an existing instance"
|
||||||
msgstr "Sustituir una instancia existente"
|
msgstr "Sustituir una instancia existente"
|
||||||
|
|
||||||
#: src/app/main.cpp:185
|
#: src/app/main.cpp:174
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Only used for autotests"
|
msgid "Only used for autotests"
|
||||||
msgstr "Se usa solo para pruebas automáticas"
|
msgstr "Se usa solo para pruebas automáticas"
|
||||||
|
|
||||||
#: src/app/main.cpp:195
|
#: src/app/main.cpp:184
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Share a URL to Matrix"
|
msgid "Share a URL to Matrix"
|
||||||
msgstr "Compartir una URL con Matrix"
|
msgstr "Compartir una URL con Matrix"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Encrypted Message"
|
msgid "Encrypted Message"
|
||||||
msgstr "Mensaje cifrado"
|
msgstr "Mensaje cifrado"
|
||||||
@@ -174,40 +174,40 @@ msgstr "Responder"
|
|||||||
msgid "Reply…"
|
msgid "Reply…"
|
||||||
msgstr "Responder…"
|
msgstr "Responder…"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:306
|
#: src/app/notificationsmanager.cpp:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 invited you to a room"
|
msgid "%1 invited you to a room"
|
||||||
msgstr "%1 le ha invitado a una sala"
|
msgstr "%1 le ha invitado a una sala"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:309
|
#: src/app/notificationsmanager.cpp:307
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open this invitation in NeoChat"
|
msgid "Open this invitation in NeoChat"
|
||||||
msgstr "Abrir esta invitación en NeoChat"
|
msgstr "Abrir esta invitación en NeoChat"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:319
|
#: src/app/notificationsmanager.cpp:317
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Aceptar"
|
msgstr "Aceptar"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:320
|
#: src/app/notificationsmanager.cpp:318
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Rechazar"
|
msgstr "Rechazar"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:322
|
#: src/app/notificationsmanager.cpp:320
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject and Ignore User"
|
msgid "Reject and Ignore User"
|
||||||
msgstr "Rechazar e ignorar usuario"
|
msgstr "Rechazar e ignorar usuario"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:383
|
#: src/app/notificationsmanager.cpp:379
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 (%2)"
|
msgid "%1 (%2)"
|
||||||
msgstr "%1 (%2)"
|
msgstr "%1 (%2)"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:394
|
#: src/app/notificationsmanager.cpp:390
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open NeoChat"
|
msgid "Open NeoChat"
|
||||||
msgstr "Abrir NeoChat"
|
msgstr "Abrir NeoChat"
|
||||||
@@ -248,7 +248,7 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Developer Tools"
|
msgid "Open Developer Tools"
|
||||||
msgstr "Abrir las herramientas del desarrollador"
|
msgstr "Abrir las herramientas del desarrollador"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Developer Tools"
|
msgid "Developer Tools"
|
||||||
@@ -260,32 +260,32 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Secret Backup"
|
msgid "Open Secret Backup"
|
||||||
msgstr "Abrir copia de seguridad secreta"
|
msgstr "Abrir copia de seguridad secreta"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:84
|
#: src/app/qml/AccountMenu.qml:83
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Open Key Backup"
|
msgid "Open Key Backup"
|
||||||
msgstr "Abrir copia de seguridad de la clave"
|
msgstr "Abrir copia de seguridad de la clave"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:89
|
#: src/app/qml/AccountMenu.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Verify This Device"
|
msgid "Verify This Device"
|
||||||
msgstr "Verificar este dispositivo"
|
msgstr "Verificar este dispositivo"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Verification Request Sent"
|
msgid "Verification Request Sent"
|
||||||
msgstr "Solicitud de verificación enviada"
|
msgstr "Solicitud de verificación enviada"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "To proceed, accept the verification request on another device."
|
msgid "To proceed, accept the verification request on another device."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Para continuar, acepte la solicitud de verificación en otro dispositivo."
|
"Para continuar, acepte la solicitud de verificación en otro dispositivo."
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:107
|
#: src/app/qml/AccountMenu.qml:106
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Logout…"
|
msgid "Logout…"
|
||||||
@@ -604,31 +604,31 @@ msgctxt "@info:label 'Username' has invited you to this room at 'timestamp'."
|
|||||||
msgid "%1 has invited you to this room at %2."
|
msgid "%1 has invited you to this room at %2."
|
||||||
msgstr "%1 le ha invitado a esta sala el %2."
|
msgstr "%1 le ha invitado a esta sala el %2."
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:97
|
#: src/app/qml/InvitationView.qml:98
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||||
msgid "This user invited you to chat at %1."
|
msgid "This user invited you to chat at %1."
|
||||||
msgstr "Este usuario le ha invitado a chatear el %1."
|
msgstr "Este usuario le ha invitado a chatear el %1."
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:112
|
#: src/app/qml/InvitationView.qml:113
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Accept this invite"
|
msgctxt "@action:button Accept this invite"
|
||||||
msgid "Accept Invite"
|
msgid "Accept Invite"
|
||||||
msgstr "Aceptar invitación"
|
msgstr "Aceptar invitación"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:127
|
#: src/app/qml/InvitationView.qml:128
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Reject this invite"
|
msgctxt "@action:button Reject this invite"
|
||||||
msgid "Reject Invite"
|
msgid "Reject Invite"
|
||||||
msgstr "Rechazar invitación"
|
msgstr "Rechazar invitación"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:141
|
#: src/app/qml/InvitationView.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Block the user"
|
msgctxt "@action:button Block the user"
|
||||||
msgid "Block %1"
|
msgid "Block %1"
|
||||||
msgstr "Bloquear a %1"
|
msgstr "Bloquear a %1"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:180
|
#: src/app/qml/InvitationView.qml:181
|
||||||
#, kde-kuit-format
|
#, kde-kuit-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@info:label Ensure you are referring to the same translation used for that "
|
"@info:label Ensure you are referring to the same translation used for that "
|
||||||
@@ -949,7 +949,7 @@ msgctxt "@title:dialog"
|
|||||||
msgid "Select a File"
|
msgid "Select a File"
|
||||||
msgstr "Seleccione un archivo"
|
msgstr "Seleccione un archivo"
|
||||||
|
|
||||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
@@ -1039,63 +1039,63 @@ msgctxt "@action:button"
|
|||||||
msgid "Ignore"
|
msgid "Ignore"
|
||||||
msgstr "Ignorar"
|
msgstr "Ignorar"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:95
|
#: src/app/qml/RoomPage.qml:87
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Join Jitsi meeting…"
|
msgid "Join Jitsi meeting…"
|
||||||
msgstr "Unirme a una reunión de Jitsi…"
|
msgstr "Unirme a una reunión de Jitsi…"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Start Jitsi meeting…"
|
msgid "Start Jitsi meeting…"
|
||||||
msgstr "Iniciar reunión de Jitsi…"
|
msgstr "Iniciar reunión de Jitsi…"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "You do not have permissions to start Jitsi meetings"
|
msgid "You do not have permissions to start Jitsi meetings"
|
||||||
msgstr "No tiene permisos para iniciar reuniones de Jitsi"
|
msgstr "No tiene permisos para iniciar reuniones de Jitsi"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||||
#: src/roominfo/RoomInformation.qml:109
|
#: src/roominfo/RoomInformation.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:title"
|
msgctxt "@action:title"
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Buscar"
|
msgstr "Buscar"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:150
|
#: src/app/qml/RoomPage.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "This room contains official messages from your homeserver."
|
msgid "This room contains official messages from your homeserver."
|
||||||
msgstr "Esta sala contiene mensajes oficiales de su servidor doméstico."
|
msgstr "Esta sala contiene mensajes oficiales de su servidor doméstico."
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:161
|
#: src/app/qml/RoomPage.qml:153
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "NeoChat is offline. Please check your network connection."
|
msgid "NeoChat is offline. Please check your network connection."
|
||||||
msgstr "NeoChat no está conectado. Compruebe su conexión de red."
|
msgstr "NeoChat no está conectado. Compruebe su conexión de red."
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr "Mensajes fijados"
|
msgstr "Mensajes fijados"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:294
|
#: src/app/qml/RoomPage.qml:285
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Welcome to NeoChat"
|
msgid "Welcome to NeoChat"
|
||||||
msgstr "Bienvenido a NeoChat"
|
msgstr "Bienvenido a NeoChat"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:295
|
#: src/app/qml/RoomPage.qml:286
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:usagetip"
|
msgctxt "@info:usagetip"
|
||||||
msgid "Select or join a room to get started"
|
msgid "Select or join a room to get started"
|
||||||
msgstr "Seleccione o únase a una sala para empezar"
|
msgstr "Seleccione o únase a una sala para empezar"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:356
|
#: src/app/qml/RoomPage.qml:347
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:dialog"
|
msgctxt "@title:dialog"
|
||||||
msgid "Message Source"
|
msgid "Message Source"
|
||||||
@@ -1179,13 +1179,19 @@ msgctxt "@info"
|
|||||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||||
msgstr "El URL compartido para la imagen es <a href='%1'>%1</a>"
|
msgstr "El URL compartido para la imagen es <a href='%1'>%1</a>"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load your encrypted messages"
|
msgid "Load your encrypted messages"
|
||||||
msgstr "Cargar mensajes cifrados…"
|
msgstr "Cargar mensajes cifrados…"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:status"
|
||||||
|
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
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Encryption keys restored."
|
msgid "Encryption keys restored."
|
||||||
@@ -1193,71 +1199,45 @@ msgstr "Claves de cifrado restauradas."
|
|||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
|
||||||
msgid "The security phrase was not correct."
|
|
||||||
msgstr "La frase de seguridad no es correcta."
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock using Passphrase"
|
msgid "Unlock using Security Key or Backup Passphrase"
|
||||||
msgstr "Desbloquear usando contraseña larga"
|
msgstr "Desbloquear mediante clave de seguridad o contraseña de respaldo"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||||
#, kde-format
|
|
||||||
msgctxt "@info"
|
|
||||||
msgid "If you have a backup passphrase for this account, enter it below."
|
|
||||||
msgstr ""
|
|
||||||
"Si dispone de una contraseña de respaldo para esta cuenta, introdúzcala a "
|
|
||||||
"continuación."
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Backup Password:"
|
|
||||||
msgstr "Contraseña de respaldo:"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@action:button"
|
|
||||||
msgid "Unlock"
|
|
||||||
msgstr "Desbloquear"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Security Key"
|
|
||||||
msgstr "Desbloquear usando clave de seguridad"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have a security key for this account, enter it below or upload it as "
|
"If you have a security key or backup passphrase for this account, enter it "
|
||||||
"a file."
|
"below or upload it as a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si dispone de una clave de seguridad para esta cuenta, introdúzcala a "
|
"Si dispone de una clave de seguridad o de una contraseña de respaldo para "
|
||||||
"continuación o envíela como archivo."
|
"esta cuenta, introdúzcala a continuación o envíela como archivo."
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
msgid "Security Key:"
|
msgid "Security Key or Backup Passphrase:"
|
||||||
msgstr "Clave de seguridad:"
|
msgstr "Clave de seguridad o contraseña de respaldo:"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Upload from File"
|
msgid "Upload from File"
|
||||||
msgstr "Enviar un archivo"
|
msgstr "Enviar un archivo"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@action:button"
|
||||||
|
msgid "Unlock"
|
||||||
|
msgstr "Desbloquear"
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock from Cross-Signing"
|
msgid "Unlock from Cross-Signing"
|
||||||
msgstr "Desbloquear con firmado cruzado"
|
msgstr "Desbloquear con firmado cruzado"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1267,7 +1247,7 @@ msgstr ""
|
|||||||
"Si ya había verificado este dispositivo anteriormente, puede probar a cargar "
|
"Si ya había verificado este dispositivo anteriormente, puede probar a cargar "
|
||||||
"la clave de respaldo desde otros dispositivos pulsando el botón inferior."
|
"la clave de respaldo desde otros dispositivos pulsando el botón inferior."
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Request from other Devices"
|
msgid "Request from other Devices"
|
||||||
@@ -1415,6 +1395,38 @@ msgstr "Buscar mensajes de %1 en la sala"
|
|||||||
msgid "Copy link"
|
msgid "Copy link"
|
||||||
msgstr "Copiar enlace"
|
msgstr "Copiar enlace"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:298
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr "Denunciar…"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:303
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr "Denunciar usuario"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:304
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this user"
|
||||||
|
msgstr "Motivo para denunciar este usuario"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:306
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "Denunciar"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:308
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr "Denunciar usuario"
|
||||||
|
|
||||||
#: src/app/qml/UserMenu.qml:62
|
#: src/app/qml/UserMenu.qml:62
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -1652,24 +1664,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Terminado"
|
msgstr "Terminado"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:235
|
#: src/app/roommanager.cpp:213
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Id de Matrix mal formada o vacía<br />%1 no es un identificador de Matrix "
|
"Id de Matrix mal formada o vacía<br />%1 no es un identificador de Matrix "
|
||||||
"correcto"
|
"correcto"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:439
|
#: src/app/roommanager.cpp:430
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to join %1:<br />%2"
|
msgid "Failed to join %1:<br />%2"
|
||||||
msgstr "No se ha podido unir a %1:<br />%2"
|
msgstr "No se ha podido unir a %1:<br />%2"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:463
|
#: src/app/roommanager.cpp:454
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "You requested to join '%1'"
|
msgid "You requested to join '%1'"
|
||||||
msgstr "Ha solicitado unirse a «%1»"
|
msgstr "Ha solicitado unirse a «%1»"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:467
|
#: src/app/roommanager.cpp:458
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to request joining room<br />%1"
|
msgid "Failed to request joining room<br />%1"
|
||||||
msgstr "No se ha podido solicitar unirse a la sala<br />%1"
|
msgstr "No se ha podido solicitar unirse a la sala<br />%1"
|
||||||
@@ -1752,7 +1764,7 @@ msgctxt "@placeholder"
|
|||||||
msgid "Send a message…"
|
msgid "Send a message…"
|
||||||
msgstr "Enviar un mensaje…"
|
msgstr "Enviar un mensaje…"
|
||||||
|
|
||||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Cancel reply"
|
msgid "Cancel reply"
|
||||||
@@ -1960,19 +1972,13 @@ msgstr "Hilos"
|
|||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:25
|
#: src/devtools/FeatureFlagPage.qml:25
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
|
||||||
msgid "Secret Backup"
|
|
||||||
msgstr "Copia de seguridad secreta"
|
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:31
|
|
||||||
#, kde-format
|
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||||
"party ID"
|
"party ID"
|
||||||
msgid "Add phone numbers as 3PIDs"
|
msgid "Add phone numbers as 3PIDs"
|
||||||
msgstr "Añadir números de teléfono como 3PID"
|
msgstr "Añadir números de teléfono como 3PID"
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:40
|
#: src/devtools/FeatureFlagPage.qml:34
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||||
msgid "Calls"
|
msgid "Calls"
|
||||||
@@ -2352,12 +2358,12 @@ msgstr "ha salido de la sala"
|
|||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:392
|
#: src/libneochat/eventhandler.cpp:392
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room: %2"
|
msgid "has removed %1 from the room: %2"
|
||||||
msgstr "ha echado a %1 de la sala: %2"
|
msgstr "ha echado a %1 de la sala: %2"
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:394
|
#: src/libneochat/eventhandler.cpp:394
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room"
|
msgid "has removed %1 from the room"
|
||||||
msgstr "ha echado a %1 de la sala"
|
msgstr "ha echado a %1 de la sala"
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:398
|
#: src/libneochat/eventhandler.cpp:398
|
||||||
@@ -3198,7 +3204,7 @@ msgctxt "@info the person that created this room"
|
|||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr "Creador"
|
msgstr "Creador"
|
||||||
|
|
||||||
#: src/libneochat/neochatconnection.cpp:71
|
#: src/libneochat/neochatconnection.cpp:73
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"File too large to download.<br />Contact your matrix server administrator "
|
"File too large to download.<br />Contact your matrix server administrator "
|
||||||
@@ -3223,12 +3229,12 @@ msgstr "La creación de la sala ha fallado: %1"
|
|||||||
msgid "Space creation failed: %1"
|
msgid "Space creation failed: %1"
|
||||||
msgstr "La creación del espacio ha fallado: %1"
|
msgstr "La creación del espacio ha fallado: %1"
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1253
|
#: src/libneochat/neochatroom.cpp:1254
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Report sent successfully."
|
msgid "Report sent successfully."
|
||||||
msgstr "La denuncia se ha enviado correctamente."
|
msgstr "La denuncia se ha enviado correctamente."
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||||
msgid "Lat: %1, Lon: %2"
|
msgid "Lat: %1, Lon: %2"
|
||||||
@@ -3706,12 +3712,12 @@ msgctxt "@action:button"
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:154
|
#: src/messagecontent/CodeComponent.qml:161
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Copy to clipboard"
|
msgid "Copy to clipboard"
|
||||||
msgstr "Copiar en el portapapeles"
|
msgstr "Copiar en el portapapeles"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:166
|
#: src/messagecontent/CodeComponent.qml:173
|
||||||
#: src/messagecontent/VideoComponent.qml:374
|
#: src/messagecontent/VideoComponent.qml:374
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -3922,13 +3928,13 @@ msgctxt "as in 'this vote has ended'"
|
|||||||
msgid "(Ended)"
|
msgid "(Ended)"
|
||||||
msgstr "(Finalizada)"
|
msgstr "(Finalizada)"
|
||||||
|
|
||||||
#: src/messagecontent/pollhandler.cpp:306
|
#: src/messagecontent/pollhandler.cpp:308
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "%1 is the poll answer that had the most votes"
|
msgctxt "%1 is the poll answer that had the most votes"
|
||||||
msgid "The poll has ended. Top answer: %1"
|
msgid "The poll has ended. Top answer: %1"
|
||||||
msgstr "La encuesta ha finalizado: Respuesta más elegida: %1"
|
msgstr "La encuesta ha finalizado: Respuesta más elegida: %1"
|
||||||
|
|
||||||
#: src/messagecontent/ReactionComponent.qml:88
|
#: src/messagecontent/ReactionComponent.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@button"
|
msgctxt "@button"
|
||||||
msgid "React"
|
msgid "React"
|
||||||
@@ -3963,7 +3969,7 @@ msgctxt "@action:button"
|
|||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr "Volumen"
|
msgstr "Volumen"
|
||||||
|
|
||||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Locations on a map"
|
msgctxt "Locations on a map"
|
||||||
msgid "Locations"
|
msgid "Locations"
|
||||||
@@ -3974,18 +3980,18 @@ msgstr "Ubicaciones"
|
|||||||
msgid "There are no locations shared in this room."
|
msgid "There are no locations shared in this room."
|
||||||
msgstr "No hay ubicaciones compartidas en esta sala."
|
msgstr "No hay ubicaciones compartidas en esta sala."
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Room settings"
|
msgid "Room settings"
|
||||||
msgstr "Preferencias de la sala"
|
msgstr "Preferencias de la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr "Información"
|
msgstr "Información"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr "Multimedia"
|
msgstr "Multimedia"
|
||||||
@@ -4002,95 +4008,95 @@ msgctxt "@action:title"
|
|||||||
msgid "Room Information"
|
msgid "Room Information"
|
||||||
msgstr "Información de la sala"
|
msgstr "Información de la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:90
|
#: src/roominfo/RoomInformation.qml:72
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Room actions"
|
msgctxt "Room actions"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Acciones"
|
msgstr "Acciones"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:100
|
#: src/roominfo/RoomInformation.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Search Messages"
|
msgid "Search Messages"
|
||||||
msgstr "Buscar mensajes"
|
msgstr "Buscar mensajes"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:117
|
#: src/roominfo/RoomInformation.qml:99
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Verify user"
|
msgid "Verify user"
|
||||||
msgstr "Verificar usuario"
|
msgstr "Verificar usuario"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Eliminar de favoritas"
|
msgstr "Eliminar de favoritas"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Añadir a favoritas"
|
msgstr "Añadir a favoritas"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:141
|
#: src/roominfo/RoomInformation.qml:123
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr "Extensiones"
|
msgstr "Extensiones"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:147
|
#: src/roominfo/RoomInformation.qml:129
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr "Extensiones"
|
msgstr "Extensiones"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:157
|
#: src/roominfo/RoomInformation.qml:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Shared Locations"
|
msgid "Shared Locations"
|
||||||
msgstr "Ubicaciones compartidas"
|
msgstr "Ubicaciones compartidas"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:173
|
#: src/roominfo/RoomInformation.qml:155
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr "Mensajes fijados"
|
msgstr "Mensajes fijados"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:188
|
#: src/roominfo/RoomInformation.qml:170
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Inspect Room Data"
|
msgid "Inspect Room Data"
|
||||||
msgstr "Inspeccionar datos de la sala"
|
msgstr "Inspeccionar datos de la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Space…"
|
msgid "Leave Space…"
|
||||||
msgstr "Salir del espacio…"
|
msgstr "Salir del espacio…"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr "Salir de la sala…"
|
msgstr "Salir de la sala…"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:222
|
#: src/roominfo/RoomInformation.qml:204
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Miembros"
|
msgstr "Miembros"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Invite a User"
|
msgid "Invite a User"
|
||||||
msgstr "Invitar a un usuario"
|
msgstr "Invitar a un usuario"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:241
|
#: src/roominfo/RoomInformation.qml:223
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Invite user to room"
|
msgid "Invite user to room"
|
||||||
msgstr "Invitar usuario a la sala"
|
msgstr "Invitar usuario a la sala"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%1 member"
|
msgid "%1 member"
|
||||||
@@ -4098,7 +4104,7 @@ msgid_plural "%1 members"
|
|||||||
msgstr[0] "%1 miembro"
|
msgstr[0] "%1 miembro"
|
||||||
msgstr[1] "%1 miembros"
|
msgstr[1] "%1 miembros"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "No member count"
|
msgid "No member count"
|
||||||
msgstr "Sin contador de miembros"
|
msgstr "Sin contador de miembros"
|
||||||
@@ -4154,42 +4160,42 @@ msgctxt "@action:button"
|
|||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr "Eliminar widget"
|
msgstr "Eliminar widget"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:38
|
#: src/rooms/ExploreComponent.qml:36
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Rooms"
|
msgid "Rooms"
|
||||||
msgstr "Salas"
|
msgstr "Salas"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:50
|
#: src/rooms/ExploreComponent.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Search Rooms"
|
msgid "Search Rooms"
|
||||||
msgstr "Buscar salas"
|
msgstr "Buscar salas"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:75
|
#: src/rooms/ExploreComponent.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Show Menu"
|
msgid "Show Menu"
|
||||||
msgstr "Mostrar el menú"
|
msgstr "Mostrar el menú"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "Encontrar amigos"
|
msgstr "Encontrar amigos"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "Encontrar amigos"
|
msgstr "Encontrar amigos"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:104
|
#: src/rooms/ExploreComponent.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Create a Room"
|
msgid "Create a Room"
|
||||||
msgstr "Crear una sala"
|
msgstr "Crear una sala"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:119
|
#: src/rooms/ExploreComponent.qml:103
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
msgstr "Escanear un código QR"
|
msgstr "Escanear un código QR"
|
||||||
@@ -4221,13 +4227,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Create a Space"
|
msgid "Create a Space"
|
||||||
msgstr "Crear un espacio"
|
msgstr "Crear un espacio"
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:366
|
#: src/rooms/models/roomtreemodel.cpp:364
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "Invited you to chat"
|
msgid "Invited you to chat"
|
||||||
msgstr "Le ha invitado a chatear"
|
msgstr "Le ha invitado a chatear"
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:368
|
#: src/rooms/models/roomtreemodel.cpp:366
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "%1 invited you"
|
msgid "%1 invited you"
|
||||||
@@ -4309,6 +4315,38 @@ msgstr "Preferencias de la sala"
|
|||||||
|
|
||||||
#: src/rooms/RoomContextMenu.qml:154
|
#: src/rooms/RoomContextMenu.qml:154
|
||||||
#, kde-format
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr "Denunciar…"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:159
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr "Denunciar sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:160
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this room"
|
||||||
|
msgstr "Motivo para denunciar esta sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:162
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "Denunciar"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:164
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr "Denunciar sala"
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:174
|
||||||
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr "Salir de la sala…"
|
msgstr "Salir de la sala…"
|
||||||
@@ -4372,13 +4410,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Search in friend directory"
|
msgid "Search in friend directory"
|
||||||
msgstr "Buscar en el directorio de amigos"
|
msgstr "Buscar en el directorio de amigos"
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Collapse <section name>"
|
msgctxt "Collapse <section name>"
|
||||||
msgid "Collapse %1"
|
msgid "Collapse %1"
|
||||||
msgstr "Contraer %1"
|
msgstr "Contraer %1"
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Expand <section name"
|
msgctxt "Expand <section name"
|
||||||
msgid "Expand %1"
|
msgid "Expand %1"
|
||||||
@@ -7033,19 +7071,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
|||||||
msgid "%1 said %2"
|
msgid "%1 said %2"
|
||||||
msgstr "%1 dijo %2"
|
msgstr "%1 dijo %2"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||||
msgid "Unpin"
|
msgid "Unpin"
|
||||||
msgstr "No fijar"
|
msgstr "No fijar"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
msgstr "Fijar"
|
msgstr "Fijar"
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:416
|
#: src/timeline/DelegateContextMenu.qml:415
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
@@ -7115,31 +7153,31 @@ msgstr ""
|
|||||||
"Este es el inicio del chat. No hay mensajes en el historial antes de este "
|
"Este es el inicio del chat. No hay mensajes en el historial antes de este "
|
||||||
"punto."
|
"punto."
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to first unread message"
|
msgid "Jump to first unread message"
|
||||||
msgstr "Saltar al primer mensaje sin leer"
|
msgstr "Saltar al primer mensaje sin leer"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to oldest loaded message"
|
msgid "Jump to oldest loaded message"
|
||||||
msgstr "Saltar al mensaje cargado más antiguo"
|
msgstr "Saltar al mensaje cargado más antiguo"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:272
|
#: src/timeline/TimelineView.qml:245
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to latest message"
|
msgid "Jump to latest message"
|
||||||
msgstr "Saltar al último mensaje"
|
msgstr "Saltar al último mensaje"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:307
|
#: src/timeline/TimelineView.qml:279
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:placeholder"
|
msgctxt "@info:placeholder"
|
||||||
msgid "Drag items here to share them"
|
msgid "Drag items here to share them"
|
||||||
msgstr "Arrastre elementos aquí para compartirlos"
|
msgstr "Arrastre elementos aquí para compartirlos"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:332
|
#: src/timeline/TimelineView.qml:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Message displayed when some users are typing"
|
msgctxt "Message displayed when some users are typing"
|
||||||
msgid "%2 is typing"
|
msgid "%2 is typing"
|
||||||
|
|||||||
397
po/eu/neochat.po
397
po/eu/neochat.po
File diff suppressed because it is too large
Load Diff
662
po/fi/neochat.po
662
po/fi/neochat.po
File diff suppressed because it is too large
Load Diff
462
po/fr/neochat.po
462
po/fr/neochat.po
File diff suppressed because it is too large
Load Diff
7002
po/ga/neochat.po
7002
po/ga/neochat.po
File diff suppressed because it is too large
Load Diff
436
po/gl/neochat.po
436
po/gl/neochat.po
File diff suppressed because it is too large
Load Diff
406
po/he/neochat.po
406
po/he/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/hi/neochat.po
434
po/hi/neochat.po
File diff suppressed because it is too large
Load Diff
481
po/hu/neochat.po
481
po/hu/neochat.po
File diff suppressed because it is too large
Load Diff
944
po/ia/neochat.po
944
po/ia/neochat.po
File diff suppressed because it is too large
Load Diff
416
po/id/neochat.po
416
po/id/neochat.po
File diff suppressed because it is too large
Load Diff
409
po/ie/neochat.po
409
po/ie/neochat.po
File diff suppressed because it is too large
Load Diff
420
po/it/neochat.po
420
po/it/neochat.po
File diff suppressed because it is too large
Load Diff
358
po/ja/neochat.po
358
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: neochat\n"
|
"Project-Id-Version: neochat\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
||||||
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
|
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
|
||||||
"Language-Team: Japanese <kde-jp@kde.org>\n"
|
"Language-Team: Japanese <kde-jp@kde.org>\n"
|
||||||
@@ -22,127 +22,127 @@ msgctxt ""
|
|||||||
msgid "Receiving notifications for new messages"
|
msgid "Receiving notifications for new messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/controller.cpp:316
|
#: src/app/controller.cpp:319
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Receiving push notifications"
|
msgid "Receiving push notifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "NeoChat"
|
msgid "NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:138
|
#: src/app/main.cpp:133
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Chat on Matrix"
|
msgid "Chat on Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:140
|
#: src/app/main.cpp:135
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:141
|
#: src/app/main.cpp:136
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Carl Schwan"
|
msgid "Carl Schwan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||||
#: src/app/main.cpp:145
|
#: src/app/main.cpp:140
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer"
|
msgid "Maintainer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:142
|
#: src/app/main.cpp:137
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Tobias Fella"
|
msgid "Tobias Fella"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:143
|
#: src/app/main.cpp:138
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "James Graham"
|
msgid "James Graham"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:144
|
#: src/app/main.cpp:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Joshua Goins"
|
msgid "Joshua Goins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Black Hat"
|
msgid "Black Hat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Original author of Spectral"
|
msgid "Original author of Spectral"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Alexey Rusakov"
|
msgid "Alexey Rusakov"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer of libQuotient"
|
msgid "Maintainer of libQuotient"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "NAME OF TRANSLATORS"
|
msgctxt "NAME OF TRANSLATORS"
|
||||||
msgid "Your names"
|
msgid "Your names"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "EMAIL OF TRANSLATORS"
|
msgctxt "EMAIL OF TRANSLATORS"
|
||||||
msgid "Your emails"
|
msgid "Your emails"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:155
|
#: src/app/main.cpp:150
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:157
|
#: src/app/main.cpp:152
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "<version number> (built against <possibly different version number>)"
|
msgctxt "<version number> (built against <possibly different version number>)"
|
||||||
msgid "%1 (built against %2)"
|
msgid "%1 (built against %2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:178
|
#: src/app/main.cpp:167
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Client for the matrix communication protocol"
|
msgid "Client for the matrix communication protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:179
|
#: src/app/main.cpp:168
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Supports matrix: url scheme"
|
msgid "Supports matrix: url scheme"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:180
|
#: src/app/main.cpp:169
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:182
|
#: src/app/main.cpp:171
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "command line description"
|
msgctxt "command line description"
|
||||||
msgid "Replace an existing instance"
|
msgid "Replace an existing instance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:185
|
#: src/app/main.cpp:174
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Only used for autotests"
|
msgid "Only used for autotests"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:195
|
#: src/app/main.cpp:184
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Share a URL to Matrix"
|
msgid "Share a URL to Matrix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Encrypted Message"
|
msgid "Encrypted Message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -167,40 +167,40 @@ msgstr ""
|
|||||||
msgid "Reply…"
|
msgid "Reply…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:306
|
#: src/app/notificationsmanager.cpp:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 invited you to a room"
|
msgid "%1 invited you to a room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:309
|
#: src/app/notificationsmanager.cpp:307
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open this invitation in NeoChat"
|
msgid "Open this invitation in NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:319
|
#: src/app/notificationsmanager.cpp:317
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:320
|
#: src/app/notificationsmanager.cpp:318
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:322
|
#: src/app/notificationsmanager.cpp:320
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject and Ignore User"
|
msgid "Reject and Ignore User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:383
|
#: src/app/notificationsmanager.cpp:379
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 (%2)"
|
msgid "%1 (%2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:394
|
#: src/app/notificationsmanager.cpp:390
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open NeoChat"
|
msgid "Open NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -241,7 +241,7 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Developer Tools"
|
msgid "Open Developer Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Developer Tools"
|
msgid "Developer Tools"
|
||||||
@@ -253,31 +253,31 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Secret Backup"
|
msgid "Open Secret Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:84
|
#: src/app/qml/AccountMenu.qml:83
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Open Key Backup"
|
msgid "Open Key Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:89
|
#: src/app/qml/AccountMenu.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Verify This Device"
|
msgid "Verify This Device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Verification Request Sent"
|
msgid "Verification Request Sent"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "To proceed, accept the verification request on another device."
|
msgid "To proceed, accept the verification request on another device."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:107
|
#: src/app/qml/AccountMenu.qml:106
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Logout…"
|
msgid "Logout…"
|
||||||
@@ -592,31 +592,31 @@ msgctxt "@info:label 'Username' has invited you to this room at 'timestamp'."
|
|||||||
msgid "%1 has invited you to this room at %2."
|
msgid "%1 has invited you to this room at %2."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:97
|
#: src/app/qml/InvitationView.qml:98
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||||
msgid "This user invited you to chat at %1."
|
msgid "This user invited you to chat at %1."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:112
|
#: src/app/qml/InvitationView.qml:113
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Accept this invite"
|
msgctxt "@action:button Accept this invite"
|
||||||
msgid "Accept Invite"
|
msgid "Accept Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:127
|
#: src/app/qml/InvitationView.qml:128
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Reject this invite"
|
msgctxt "@action:button Reject this invite"
|
||||||
msgid "Reject Invite"
|
msgid "Reject Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:141
|
#: src/app/qml/InvitationView.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Block the user"
|
msgctxt "@action:button Block the user"
|
||||||
msgid "Block %1"
|
msgid "Block %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:180
|
#: src/app/qml/InvitationView.qml:181
|
||||||
#, kde-kuit-format
|
#, kde-kuit-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@info:label Ensure you are referring to the same translation used for that "
|
"@info:label Ensure you are referring to the same translation used for that "
|
||||||
@@ -934,7 +934,7 @@ msgctxt "@title:dialog"
|
|||||||
msgid "Select a File"
|
msgid "Select a File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
@@ -1024,63 +1024,63 @@ msgctxt "@action:button"
|
|||||||
msgid "Ignore"
|
msgid "Ignore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:95
|
#: src/app/qml/RoomPage.qml:87
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Join Jitsi meeting…"
|
msgid "Join Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Start Jitsi meeting…"
|
msgid "Start Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "You do not have permissions to start Jitsi meetings"
|
msgid "You do not have permissions to start Jitsi meetings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||||
#: src/roominfo/RoomInformation.qml:109
|
#: src/roominfo/RoomInformation.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:title"
|
msgctxt "@action:title"
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:150
|
#: src/app/qml/RoomPage.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "This room contains official messages from your homeserver."
|
msgid "This room contains official messages from your homeserver."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:161
|
#: src/app/qml/RoomPage.qml:153
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "NeoChat is offline. Please check your network connection."
|
msgid "NeoChat is offline. Please check your network connection."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:294
|
#: src/app/qml/RoomPage.qml:285
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Welcome to NeoChat"
|
msgid "Welcome to NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:295
|
#: src/app/qml/RoomPage.qml:286
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:usagetip"
|
msgctxt "@info:usagetip"
|
||||||
msgid "Select or join a room to get started"
|
msgid "Select or join a room to get started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:356
|
#: src/app/qml/RoomPage.qml:347
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:dialog"
|
msgctxt "@title:dialog"
|
||||||
msgid "Message Source"
|
msgid "Message Source"
|
||||||
@@ -1164,13 +1164,19 @@ msgctxt "@info"
|
|||||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load your encrypted messages"
|
msgid "Load your encrypted messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:status"
|
||||||
|
msgid "The security key or backup passphrase was not correct."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Encryption keys restored."
|
msgid "Encryption keys restored."
|
||||||
@@ -1178,67 +1184,43 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
|
||||||
msgid "The security phrase was not correct."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock using Passphrase"
|
msgid "Unlock using Security Key or Backup Passphrase"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||||
#, kde-format
|
|
||||||
msgctxt "@info"
|
|
||||||
msgid "If you have a backup passphrase for this account, enter it below."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Backup Password:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@action:button"
|
|
||||||
msgid "Unlock"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Security Key"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have a security key for this account, enter it below or upload it as "
|
"If you have a security key or backup passphrase for this account, enter it "
|
||||||
"a file."
|
"below or upload it as a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
msgid "Security Key:"
|
msgid "Security Key or Backup Passphrase:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Upload from File"
|
msgid "Upload from File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@action:button"
|
||||||
|
msgid "Unlock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock from Cross-Signing"
|
msgid "Unlock from Cross-Signing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1246,7 +1228,7 @@ msgid ""
|
|||||||
"key from other devices by clicking the button below."
|
"key from other devices by clicking the button below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Request from other Devices"
|
msgid "Request from other Devices"
|
||||||
@@ -1393,6 +1375,38 @@ msgstr ""
|
|||||||
msgid "Copy link"
|
msgid "Copy link"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:298
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:303
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:304
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this user"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:306
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:308
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UserMenu.qml:62
|
#: src/app/qml/UserMenu.qml:62
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -1595,22 +1609,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:235
|
#: src/app/roommanager.cpp:213
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:439
|
#: src/app/roommanager.cpp:430
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to join %1:<br />%2"
|
msgid "Failed to join %1:<br />%2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:463
|
#: src/app/roommanager.cpp:454
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "You requested to join '%1'"
|
msgid "You requested to join '%1'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:467
|
#: src/app/roommanager.cpp:458
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to request joining room<br />%1"
|
msgid "Failed to request joining room<br />%1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1691,7 +1705,7 @@ msgctxt "@placeholder"
|
|||||||
msgid "Send a message…"
|
msgid "Send a message…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Cancel reply"
|
msgid "Cancel reply"
|
||||||
@@ -1893,19 +1907,13 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:25
|
#: src/devtools/FeatureFlagPage.qml:25
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
|
||||||
msgid "Secret Backup"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:31
|
|
||||||
#, kde-format
|
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||||
"party ID"
|
"party ID"
|
||||||
msgid "Add phone numbers as 3PIDs"
|
msgid "Add phone numbers as 3PIDs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:40
|
#: src/devtools/FeatureFlagPage.qml:34
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||||
msgid "Calls"
|
msgid "Calls"
|
||||||
@@ -2278,12 +2286,12 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:392
|
#: src/libneochat/eventhandler.cpp:392
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room: %2"
|
msgid "has removed %1 from the room: %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:394
|
#: src/libneochat/eventhandler.cpp:394
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room"
|
msgid "has removed %1 from the room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:398
|
#: src/libneochat/eventhandler.cpp:398
|
||||||
@@ -3123,7 +3131,7 @@ msgctxt "@info the person that created this room"
|
|||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatconnection.cpp:71
|
#: src/libneochat/neochatconnection.cpp:73
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"File too large to download.<br />Contact your matrix server administrator "
|
"File too large to download.<br />Contact your matrix server administrator "
|
||||||
@@ -3146,12 +3154,12 @@ msgstr ""
|
|||||||
msgid "Space creation failed: %1"
|
msgid "Space creation failed: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1253
|
#: src/libneochat/neochatroom.cpp:1254
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Report sent successfully."
|
msgid "Report sent successfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||||
msgid "Lat: %1, Lon: %2"
|
msgid "Lat: %1, Lon: %2"
|
||||||
@@ -3624,12 +3632,12 @@ msgctxt "@action:button"
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:154
|
#: src/messagecontent/CodeComponent.qml:161
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Copy to clipboard"
|
msgid "Copy to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:166
|
#: src/messagecontent/CodeComponent.qml:173
|
||||||
#: src/messagecontent/VideoComponent.qml:374
|
#: src/messagecontent/VideoComponent.qml:374
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -3832,13 +3840,13 @@ msgctxt "as in 'this vote has ended'"
|
|||||||
msgid "(Ended)"
|
msgid "(Ended)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/pollhandler.cpp:306
|
#: src/messagecontent/pollhandler.cpp:308
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "%1 is the poll answer that had the most votes"
|
msgctxt "%1 is the poll answer that had the most votes"
|
||||||
msgid "The poll has ended. Top answer: %1"
|
msgid "The poll has ended. Top answer: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/ReactionComponent.qml:88
|
#: src/messagecontent/ReactionComponent.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@button"
|
msgctxt "@button"
|
||||||
msgid "React"
|
msgid "React"
|
||||||
@@ -3873,7 +3881,7 @@ msgctxt "@action:button"
|
|||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Locations on a map"
|
msgctxt "Locations on a map"
|
||||||
msgid "Locations"
|
msgid "Locations"
|
||||||
@@ -3884,18 +3892,18 @@ msgstr ""
|
|||||||
msgid "There are no locations shared in this room."
|
msgid "There are no locations shared in this room."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Room settings"
|
msgid "Room settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3912,102 +3920,102 @@ msgctxt "@action:title"
|
|||||||
msgid "Room Information"
|
msgid "Room Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:90
|
#: src/roominfo/RoomInformation.qml:72
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Room actions"
|
msgctxt "Room actions"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:100
|
#: src/roominfo/RoomInformation.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Search Messages"
|
msgid "Search Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:117
|
#: src/roominfo/RoomInformation.qml:99
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Verify user"
|
msgid "Verify user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:141
|
#: src/roominfo/RoomInformation.qml:123
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:147
|
#: src/roominfo/RoomInformation.qml:129
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:157
|
#: src/roominfo/RoomInformation.qml:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Shared Locations"
|
msgid "Shared Locations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:173
|
#: src/roominfo/RoomInformation.qml:155
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:188
|
#: src/roominfo/RoomInformation.qml:170
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Inspect Room Data"
|
msgid "Inspect Room Data"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Space…"
|
msgid "Leave Space…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:222
|
#: src/roominfo/RoomInformation.qml:204
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Invite a User"
|
msgid "Invite a User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:241
|
#: src/roominfo/RoomInformation.qml:223
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Invite user to room"
|
msgid "Invite user to room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%1 member"
|
msgid "%1 member"
|
||||||
msgid_plural "%1 members"
|
msgid_plural "%1 members"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "No member count"
|
msgid "No member count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4063,42 +4071,42 @@ msgctxt "@action:button"
|
|||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:38
|
#: src/rooms/ExploreComponent.qml:36
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Rooms"
|
msgid "Rooms"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:50
|
#: src/rooms/ExploreComponent.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Search Rooms"
|
msgid "Search Rooms"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:75
|
#: src/rooms/ExploreComponent.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Show Menu"
|
msgid "Show Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:104
|
#: src/rooms/ExploreComponent.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Create a Room"
|
msgid "Create a Room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:119
|
#: src/rooms/ExploreComponent.qml:103
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4130,13 +4138,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Create a Space"
|
msgid "Create a Space"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:366
|
#: src/rooms/models/roomtreemodel.cpp:364
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "Invited you to chat"
|
msgid "Invited you to chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:368
|
#: src/rooms/models/roomtreemodel.cpp:366
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "%1 invited you"
|
msgid "%1 invited you"
|
||||||
@@ -4218,6 +4226,38 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/rooms/RoomContextMenu.qml:154
|
#: src/rooms/RoomContextMenu.qml:154
|
||||||
#, kde-format
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:159
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:160
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:162
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:164
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:174
|
||||||
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4281,13 +4321,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Search in friend directory"
|
msgid "Search in friend directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Collapse <section name>"
|
msgctxt "Collapse <section name>"
|
||||||
msgid "Collapse %1"
|
msgid "Collapse %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Expand <section name"
|
msgctxt "Expand <section name"
|
||||||
msgid "Expand %1"
|
msgid "Expand %1"
|
||||||
@@ -6874,19 +6914,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
|||||||
msgid "%1 said %2"
|
msgid "%1 said %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||||
msgid "Unpin"
|
msgid "Unpin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:416
|
#: src/timeline/DelegateContextMenu.qml:415
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
@@ -6953,31 +6993,31 @@ msgid ""
|
|||||||
"this point."
|
"this point."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to first unread message"
|
msgid "Jump to first unread message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to oldest loaded message"
|
msgid "Jump to oldest loaded message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:272
|
#: src/timeline/TimelineView.qml:245
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to latest message"
|
msgid "Jump to latest message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:307
|
#: src/timeline/TimelineView.qml:279
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:placeholder"
|
msgctxt "@info:placeholder"
|
||||||
msgid "Drag items here to share them"
|
msgid "Drag items here to share them"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:332
|
#: src/timeline/TimelineView.qml:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Message displayed when some users are typing"
|
msgctxt "Message displayed when some users are typing"
|
||||||
msgid "%2 is typing"
|
msgid "%2 is typing"
|
||||||
|
|||||||
398
po/ka/neochat.po
398
po/ka/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/ko/neochat.po
434
po/ko/neochat.po
File diff suppressed because it is too large
Load Diff
399
po/lt/neochat.po
399
po/lt/neochat.po
File diff suppressed because it is too large
Load Diff
691
po/lv/neochat.po
691
po/lv/neochat.po
File diff suppressed because it is too large
Load Diff
405
po/nl/neochat.po
405
po/nl/neochat.po
File diff suppressed because it is too large
Load Diff
408
po/nn/neochat.po
408
po/nn/neochat.po
File diff suppressed because it is too large
Load Diff
396
po/pa/neochat.po
396
po/pa/neochat.po
File diff suppressed because it is too large
Load Diff
413
po/pl/neochat.po
413
po/pl/neochat.po
File diff suppressed because it is too large
Load Diff
414
po/pt/neochat.po
414
po/pt/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
406
po/ro/neochat.po
406
po/ro/neochat.po
File diff suppressed because it is too large
Load Diff
432
po/ru/neochat.po
432
po/ru/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/sa/neochat.po
434
po/sa/neochat.po
File diff suppressed because it is too large
Load Diff
397
po/sk/neochat.po
397
po/sk/neochat.po
File diff suppressed because it is too large
Load Diff
411
po/sl/neochat.po
411
po/sl/neochat.po
File diff suppressed because it is too large
Load Diff
611
po/sv/neochat.po
611
po/sv/neochat.po
File diff suppressed because it is too large
Load Diff
619
po/ta/neochat.po
619
po/ta/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
399
po/tr/neochat.po
399
po/tr/neochat.po
File diff suppressed because it is too large
Load Diff
402
po/uk/neochat.po
402
po/uk/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kdeorg\n"
|
"Project-Id-Version: kdeorg\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||||
"PO-Revision-Date: 2024-04-23 19:24\n"
|
"PO-Revision-Date: 2024-04-23 19:24\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
@@ -14,8 +14,8 @@ msgstr ""
|
|||||||
"X-Crowdin-Project: kdeorg\n"
|
"X-Crowdin-Project: kdeorg\n"
|
||||||
"X-Crowdin-Project-ID: 269464\n"
|
"X-Crowdin-Project-ID: 269464\n"
|
||||||
"X-Crowdin-Language: zh-CN\n"
|
"X-Crowdin-Language: zh-CN\n"
|
||||||
"X-Crowdin-File: /kf6-stable/messages/neochat/neochat.pot\n"
|
"X-Crowdin-File: /kf6-trunk/messages/neochat/neochat.pot\n"
|
||||||
"X-Crowdin-File-ID: 49732\n"
|
"X-Crowdin-File-ID: 44721\n"
|
||||||
|
|
||||||
#: src/app/controller.cpp:172
|
#: src/app/controller.cpp:172
|
||||||
#, kde-format
|
#, kde-format
|
||||||
@@ -25,73 +25,73 @@ msgctxt ""
|
|||||||
msgid "Receiving notifications for new messages"
|
msgid "Receiving notifications for new messages"
|
||||||
msgstr "接收新消息通知"
|
msgstr "接收新消息通知"
|
||||||
|
|
||||||
#: src/app/controller.cpp:316
|
#: src/app/controller.cpp:319
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Receiving push notifications"
|
msgid "Receiving push notifications"
|
||||||
msgstr "正在接收推送通知"
|
msgstr "正在接收推送通知"
|
||||||
|
|
||||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "NeoChat"
|
msgid "NeoChat"
|
||||||
msgstr "NeoChat"
|
msgstr "NeoChat"
|
||||||
|
|
||||||
#: src/app/main.cpp:138
|
#: src/app/main.cpp:133
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Chat on Matrix"
|
msgid "Chat on Matrix"
|
||||||
msgstr "在 Matrix 上聊天"
|
msgstr "在 Matrix 上聊天"
|
||||||
|
|
||||||
#: src/app/main.cpp:140
|
#: src/app/main.cpp:135
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:141
|
#: src/app/main.cpp:136
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Carl Schwan"
|
msgid "Carl Schwan"
|
||||||
msgstr "Carl Schwan"
|
msgstr "Carl Schwan"
|
||||||
|
|
||||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||||
#: src/app/main.cpp:145
|
#: src/app/main.cpp:140
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer"
|
msgid "Maintainer"
|
||||||
msgstr "维护人员"
|
msgstr "维护人员"
|
||||||
|
|
||||||
#: src/app/main.cpp:142
|
#: src/app/main.cpp:137
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Tobias Fella"
|
msgid "Tobias Fella"
|
||||||
msgstr "Tobias Fella"
|
msgstr "Tobias Fella"
|
||||||
|
|
||||||
#: src/app/main.cpp:143
|
#: src/app/main.cpp:138
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "James Graham"
|
msgid "James Graham"
|
||||||
msgstr "James Graham"
|
msgstr "James Graham"
|
||||||
|
|
||||||
#: src/app/main.cpp:144
|
#: src/app/main.cpp:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Joshua Goins"
|
msgid "Joshua Goins"
|
||||||
msgstr "Joshua Goins"
|
msgstr "Joshua Goins"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Black Hat"
|
msgid "Black Hat"
|
||||||
msgstr "Black Hat"
|
msgstr "Black Hat"
|
||||||
|
|
||||||
#: src/app/main.cpp:149
|
#: src/app/main.cpp:144
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Original author of Spectral"
|
msgid "Original author of Spectral"
|
||||||
msgstr "Spectral 的原作者"
|
msgstr "Spectral 的原作者"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Alexey Rusakov"
|
msgid "Alexey Rusakov"
|
||||||
msgstr "Alexey Rusakov"
|
msgstr "Alexey Rusakov"
|
||||||
|
|
||||||
#: src/app/main.cpp:150
|
#: src/app/main.cpp:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Maintainer of libQuotient"
|
msgid "Maintainer of libQuotient"
|
||||||
msgstr "libQuotient 的维护者"
|
msgstr "libQuotient 的维护者"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "NAME OF TRANSLATORS"
|
msgctxt "NAME OF TRANSLATORS"
|
||||||
msgid "Your names"
|
msgid "Your names"
|
||||||
@@ -99,7 +99,7 @@ msgstr ""
|
|||||||
"KDE China (中国), Guo Yunhe (郭云鹤), Yang Boyuan (杨博远), Coelacanthus, "
|
"KDE China (中国), Guo Yunhe (郭云鹤), Yang Boyuan (杨博远), Coelacanthus, "
|
||||||
"Tyson Tan (钛山), Gary Wang, Zhangzhi Hu"
|
"Tyson Tan (钛山), Gary Wang, Zhangzhi Hu"
|
||||||
|
|
||||||
#: src/app/main.cpp:151
|
#: src/app/main.cpp:146
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "EMAIL OF TRANSLATORS"
|
msgctxt "EMAIL OF TRANSLATORS"
|
||||||
msgid "Your emails"
|
msgid "Your emails"
|
||||||
@@ -107,49 +107,49 @@ msgstr ""
|
|||||||
"kde-china@kde.org, i@guoyunhe.me, 073plan@gmail.com, coelacanthus@kde.org, "
|
"kde-china@kde.org, i@guoyunhe.me, 073plan@gmail.com, coelacanthus@kde.org, "
|
||||||
"tds00@qq.com, git@blumia.net, integral@member.fsf.org"
|
"tds00@qq.com, git@blumia.net, integral@member.fsf.org"
|
||||||
|
|
||||||
#: src/app/main.cpp:155
|
#: src/app/main.cpp:150
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||||
msgstr "一个用于编写跨平台 Matrix 客户端的 Qt 库"
|
msgstr "一个用于编写跨平台 Matrix 客户端的 Qt 库"
|
||||||
|
|
||||||
#: src/app/main.cpp:157
|
#: src/app/main.cpp:152
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "<version number> (built against <possibly different version number>)"
|
msgctxt "<version number> (built against <possibly different version number>)"
|
||||||
msgid "%1 (built against %2)"
|
msgid "%1 (built against %2)"
|
||||||
msgstr "%1 (使用 %2 构建)"
|
msgstr "%1 (使用 %2 构建)"
|
||||||
|
|
||||||
#: src/app/main.cpp:178
|
#: src/app/main.cpp:167
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Client for the matrix communication protocol"
|
msgid "Client for the matrix communication protocol"
|
||||||
msgstr "Matrix 通信协议客户端"
|
msgstr "Matrix 通信协议客户端"
|
||||||
|
|
||||||
#: src/app/main.cpp:179
|
#: src/app/main.cpp:168
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Supports matrix: url scheme"
|
msgid "Supports matrix: url scheme"
|
||||||
msgstr "支持 matrix:URL 协议"
|
msgstr "支持 matrix:URL 协议"
|
||||||
|
|
||||||
#: src/app/main.cpp:180
|
#: src/app/main.cpp:169
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||||
msgstr "忽略所有 SSL 错误,例如未签名证书。"
|
msgstr "忽略所有 SSL 错误,例如未签名证书。"
|
||||||
|
|
||||||
#: src/app/main.cpp:182
|
#: src/app/main.cpp:171
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "command line description"
|
msgctxt "command line description"
|
||||||
msgid "Replace an existing instance"
|
msgid "Replace an existing instance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/main.cpp:185
|
#: src/app/main.cpp:174
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Only used for autotests"
|
msgid "Only used for autotests"
|
||||||
msgstr "仅用于自动测试"
|
msgstr "仅用于自动测试"
|
||||||
|
|
||||||
#: src/app/main.cpp:195
|
#: src/app/main.cpp:184
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Share a URL to Matrix"
|
msgid "Share a URL to Matrix"
|
||||||
msgstr "分享 URL 到 Matrix"
|
msgstr "分享 URL 到 Matrix"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Encrypted Message"
|
msgid "Encrypted Message"
|
||||||
msgstr "加密的消息"
|
msgstr "加密的消息"
|
||||||
@@ -174,40 +174,40 @@ msgstr "回复"
|
|||||||
msgid "Reply…"
|
msgid "Reply…"
|
||||||
msgstr "回复…"
|
msgstr "回复…"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:306
|
#: src/app/notificationsmanager.cpp:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 invited you to a room"
|
msgid "%1 invited you to a room"
|
||||||
msgstr "%1 邀请您加入聊天室"
|
msgstr "%1 邀请您加入聊天室"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:309
|
#: src/app/notificationsmanager.cpp:307
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open this invitation in NeoChat"
|
msgid "Open this invitation in NeoChat"
|
||||||
msgstr "在 NeoChat 中打开此邀请"
|
msgstr "在 NeoChat 中打开此邀请"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:319
|
#: src/app/notificationsmanager.cpp:317
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "接受"
|
msgstr "接受"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:320
|
#: src/app/notificationsmanager.cpp:318
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "拒绝"
|
msgstr "拒绝"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:322
|
#: src/app/notificationsmanager.cpp:320
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||||
msgid "Reject and Ignore User"
|
msgid "Reject and Ignore User"
|
||||||
msgstr "拒绝并忽略用户"
|
msgstr "拒绝并忽略用户"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:383
|
#: src/app/notificationsmanager.cpp:379
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "%1 (%2)"
|
msgid "%1 (%2)"
|
||||||
msgstr "%1 (%2)"
|
msgstr "%1 (%2)"
|
||||||
|
|
||||||
#: src/app/notificationsmanager.cpp:394
|
#: src/app/notificationsmanager.cpp:390
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Open NeoChat"
|
msgid "Open NeoChat"
|
||||||
msgstr "打开 NeoChat"
|
msgstr "打开 NeoChat"
|
||||||
@@ -248,7 +248,7 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Developer Tools"
|
msgid "Open Developer Tools"
|
||||||
msgstr "显示开发者工具"
|
msgstr "显示开发者工具"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Developer Tools"
|
msgid "Developer Tools"
|
||||||
@@ -260,35 +260,35 @@ msgctxt "@action:inmenu"
|
|||||||
msgid "Open Secret Backup"
|
msgid "Open Secret Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:84
|
#: src/app/qml/AccountMenu.qml:83
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Open Key Backup"
|
msgid "Open Key Backup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:89
|
#: src/app/qml/AccountMenu.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Verify This Device"
|
msgid "Verify This Device"
|
||||||
msgstr "验证此设备"
|
msgstr "验证此设备"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Verification Request Sent"
|
msgid "Verification Request Sent"
|
||||||
msgstr "验证请求已发送"
|
msgstr "验证请求已发送"
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "To proceed, accept the verification request on another device."
|
msgid "To proceed, accept the verification request on another device."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/AccountMenu.qml:107
|
#: src/app/qml/AccountMenu.qml:106
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Logout…"
|
msgid "Logout…"
|
||||||
msgstr ""
|
msgstr "注销…"
|
||||||
|
|
||||||
#: src/app/qml/AccountSwitchDialog.qml:30
|
#: src/app/qml/AccountSwitchDialog.qml:30
|
||||||
#, kde-format
|
#, kde-format
|
||||||
@@ -599,31 +599,31 @@ msgctxt "@info:label 'Username' has invited you to this room at 'timestamp'."
|
|||||||
msgid "%1 has invited you to this room at %2."
|
msgid "%1 has invited you to this room at %2."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:97
|
#: src/app/qml/InvitationView.qml:98
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||||
msgid "This user invited you to chat at %1."
|
msgid "This user invited you to chat at %1."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:112
|
#: src/app/qml/InvitationView.qml:113
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Accept this invite"
|
msgctxt "@action:button Accept this invite"
|
||||||
msgid "Accept Invite"
|
msgid "Accept Invite"
|
||||||
msgstr "接受邀请"
|
msgstr "接受邀请"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:127
|
#: src/app/qml/InvitationView.qml:128
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Reject this invite"
|
msgctxt "@action:button Reject this invite"
|
||||||
msgid "Reject Invite"
|
msgid "Reject Invite"
|
||||||
msgstr "拒绝邀请"
|
msgstr "拒绝邀请"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:141
|
#: src/app/qml/InvitationView.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button Block the user"
|
msgctxt "@action:button Block the user"
|
||||||
msgid "Block %1"
|
msgid "Block %1"
|
||||||
msgstr "屏蔽 %1"
|
msgstr "屏蔽 %1"
|
||||||
|
|
||||||
#: src/app/qml/InvitationView.qml:180
|
#: src/app/qml/InvitationView.qml:181
|
||||||
#, kde-kuit-format
|
#, kde-kuit-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@info:label Ensure you are referring to the same translation used for that "
|
"@info:label Ensure you are referring to the same translation used for that "
|
||||||
@@ -941,7 +941,7 @@ msgctxt "@title:dialog"
|
|||||||
msgid "Select a File"
|
msgid "Select a File"
|
||||||
msgstr "选择文件"
|
msgstr "选择文件"
|
||||||
|
|
||||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
@@ -1031,63 +1031,63 @@ msgctxt "@action:button"
|
|||||||
msgid "Ignore"
|
msgid "Ignore"
|
||||||
msgstr "忽略"
|
msgstr "忽略"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:95
|
#: src/app/qml/RoomPage.qml:87
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Join Jitsi meeting…"
|
msgid "Join Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Start Jitsi meeting…"
|
msgid "Start Jitsi meeting…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:98
|
#: src/app/qml/RoomPage.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "You do not have permissions to start Jitsi meetings"
|
msgid "You do not have permissions to start Jitsi meetings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||||
#: src/roominfo/RoomInformation.qml:109
|
#: src/roominfo/RoomInformation.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:title"
|
msgctxt "@action:title"
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "搜索"
|
msgstr "搜索"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:150
|
#: src/app/qml/RoomPage.qml:142
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "This room contains official messages from your homeserver."
|
msgid "This room contains official messages from your homeserver."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:161
|
#: src/app/qml/RoomPage.qml:153
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "NeoChat is offline. Please check your network connection."
|
msgid "NeoChat is offline. Please check your network connection."
|
||||||
msgstr "NeoChat 处于离线状态。请检查您的网络连接。"
|
msgstr "NeoChat 处于离线状态。请检查您的网络连接。"
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:294
|
#: src/app/qml/RoomPage.qml:285
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Welcome to NeoChat"
|
msgid "Welcome to NeoChat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:295
|
#: src/app/qml/RoomPage.qml:286
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:usagetip"
|
msgctxt "@info:usagetip"
|
||||||
msgid "Select or join a room to get started"
|
msgid "Select or join a room to get started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/RoomPage.qml:356
|
#: src/app/qml/RoomPage.qml:347
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:dialog"
|
msgctxt "@title:dialog"
|
||||||
msgid "Message Source"
|
msgid "Message Source"
|
||||||
@@ -1171,13 +1171,19 @@ msgctxt "@info"
|
|||||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||||
msgstr "此图像的分享 URL 为 <a href='%1'>%1</a>"
|
msgstr "此图像的分享 URL 为 <a href='%1'>%1</a>"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load your encrypted messages"
|
msgid "Load your encrypted messages"
|
||||||
msgstr "加载您的加密消息"
|
msgstr "加载您的加密消息"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:status"
|
||||||
|
msgid "The security key or backup passphrase was not correct."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Encryption keys restored."
|
msgid "Encryption keys restored."
|
||||||
@@ -1185,67 +1191,43 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@title"
|
||||||
msgid "The security phrase was not correct."
|
msgid "Unlock using Security Key or Backup Passphrase"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Passphrase"
|
|
||||||
msgstr "使用密码解锁"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@info"
|
|
||||||
msgid "If you have a backup passphrase for this account, enter it below."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Backup Password:"
|
|
||||||
msgstr "备份密码:"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@action:button"
|
|
||||||
msgid "Unlock"
|
|
||||||
msgstr "解锁"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@title"
|
|
||||||
msgid "Unlock using Security Key"
|
|
||||||
msgstr "使用安全密钥解锁"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have a security key for this account, enter it below or upload it as "
|
"If you have a security key or backup passphrase for this account, enter it "
|
||||||
"a file."
|
"below or upload it as a file."
|
||||||
msgstr "如果您拥有此账户的安全密钥,请在下方输入或作为文件上传。"
|
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
|
||||||
#, kde-format
|
|
||||||
msgctxt "@label:textbox"
|
|
||||||
msgid "Security Key:"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@label:textbox"
|
||||||
|
msgid "Security Key or Backup Passphrase:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Upload from File"
|
msgid "Upload from File"
|
||||||
msgstr "从文件上传"
|
msgstr "从文件上传"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@action:button"
|
||||||
|
msgid "Unlock"
|
||||||
|
msgstr "解锁"
|
||||||
|
|
||||||
|
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Unlock from Cross-Signing"
|
msgid "Unlock from Cross-Signing"
|
||||||
msgstr "使用交叉签名解锁"
|
msgstr "使用交叉签名解锁"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1255,7 +1237,7 @@ msgstr ""
|
|||||||
"如果您以前曾验证过此设备,您可以通过点击下面的按钮来尝试从其他设备加载备份密"
|
"如果您以前曾验证过此设备,您可以通过点击下面的按钮来尝试从其他设备加载备份密"
|
||||||
"钥。"
|
"钥。"
|
||||||
|
|
||||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Request from other Devices"
|
msgid "Request from other Devices"
|
||||||
@@ -1402,6 +1384,38 @@ msgstr ""
|
|||||||
msgid "Copy link"
|
msgid "Copy link"
|
||||||
msgstr "复制链接"
|
msgstr "复制链接"
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:298
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:303
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:304
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this user"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:306
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this user to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/app/qml/UserDetailDialog.qml:308
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/qml/UserMenu.qml:62
|
#: src/app/qml/UserMenu.qml:62
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -1607,22 +1621,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:235
|
#: src/app/roommanager.cpp:213
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:439
|
#: src/app/roommanager.cpp:430
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to join %1:<br />%2"
|
msgid "Failed to join %1:<br />%2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:463
|
#: src/app/roommanager.cpp:454
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "You requested to join '%1'"
|
msgid "You requested to join '%1'"
|
||||||
msgstr "您请求加入 '%1'"
|
msgstr "您请求加入 '%1'"
|
||||||
|
|
||||||
#: src/app/roommanager.cpp:467
|
#: src/app/roommanager.cpp:458
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Failed to request joining room<br />%1"
|
msgid "Failed to request joining room<br />%1"
|
||||||
msgstr "加入聊天室 %1 失败"
|
msgstr "加入聊天室 %1 失败"
|
||||||
@@ -1703,7 +1717,7 @@ msgctxt "@placeholder"
|
|||||||
msgid "Send a message…"
|
msgid "Send a message…"
|
||||||
msgstr "发送一条消息..."
|
msgstr "发送一条消息..."
|
||||||
|
|
||||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Cancel reply"
|
msgid "Cancel reply"
|
||||||
@@ -1906,19 +1920,13 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:25
|
#: src/devtools/FeatureFlagPage.qml:25
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
|
||||||
msgid "Secret Backup"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:31
|
|
||||||
#, kde-format
|
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||||
"party ID"
|
"party ID"
|
||||||
msgid "Add phone numbers as 3PIDs"
|
msgid "Add phone numbers as 3PIDs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/devtools/FeatureFlagPage.qml:40
|
#: src/devtools/FeatureFlagPage.qml:34
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||||
msgid "Calls"
|
msgid "Calls"
|
||||||
@@ -2291,12 +2299,12 @@ msgstr "离开聊天室"
|
|||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:392
|
#: src/libneochat/eventhandler.cpp:392
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room: %2"
|
msgid "has removed %1 from the room: %2"
|
||||||
msgstr "将 %1 移出了聊天室:%2"
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:394
|
#: src/libneochat/eventhandler.cpp:394
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "has put %1 out of the room"
|
msgid "has removed %1 from the room"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/eventhandler.cpp:398
|
#: src/libneochat/eventhandler.cpp:398
|
||||||
@@ -3136,7 +3144,7 @@ msgctxt "@info the person that created this room"
|
|||||||
msgid "Creator"
|
msgid "Creator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/libneochat/neochatconnection.cpp:71
|
#: src/libneochat/neochatconnection.cpp:73
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"File too large to download.<br />Contact your matrix server administrator "
|
"File too large to download.<br />Contact your matrix server administrator "
|
||||||
@@ -3159,12 +3167,12 @@ msgstr "聊天室创建失败:%1"
|
|||||||
msgid "Space creation failed: %1"
|
msgid "Space creation failed: %1"
|
||||||
msgstr "空间创建失败:%1"
|
msgstr "空间创建失败:%1"
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1253
|
#: src/libneochat/neochatroom.cpp:1254
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Report sent successfully."
|
msgid "Report sent successfully."
|
||||||
msgstr "举报成功。"
|
msgstr "举报成功。"
|
||||||
|
|
||||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||||
msgid "Lat: %1, Lon: %2"
|
msgid "Lat: %1, Lon: %2"
|
||||||
@@ -3638,12 +3646,12 @@ msgctxt "@action:button"
|
|||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "取消"
|
msgstr "取消"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:154
|
#: src/messagecontent/CodeComponent.qml:161
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Copy to clipboard"
|
msgid "Copy to clipboard"
|
||||||
msgstr "复制到剪贴板"
|
msgstr "复制到剪贴板"
|
||||||
|
|
||||||
#: src/messagecontent/CodeComponent.qml:166
|
#: src/messagecontent/CodeComponent.qml:173
|
||||||
#: src/messagecontent/VideoComponent.qml:374
|
#: src/messagecontent/VideoComponent.qml:374
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@@ -3846,13 +3854,13 @@ msgctxt "as in 'this vote has ended'"
|
|||||||
msgid "(Ended)"
|
msgid "(Ended)"
|
||||||
msgstr "(已结束)"
|
msgstr "(已结束)"
|
||||||
|
|
||||||
#: src/messagecontent/pollhandler.cpp:306
|
#: src/messagecontent/pollhandler.cpp:308
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "%1 is the poll answer that had the most votes"
|
msgctxt "%1 is the poll answer that had the most votes"
|
||||||
msgid "The poll has ended. Top answer: %1"
|
msgid "The poll has ended. Top answer: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/messagecontent/ReactionComponent.qml:88
|
#: src/messagecontent/ReactionComponent.qml:90
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@button"
|
msgctxt "@button"
|
||||||
msgid "React"
|
msgid "React"
|
||||||
@@ -3887,7 +3895,7 @@ msgctxt "@action:button"
|
|||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr "音量"
|
msgstr "音量"
|
||||||
|
|
||||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Locations on a map"
|
msgctxt "Locations on a map"
|
||||||
msgid "Locations"
|
msgid "Locations"
|
||||||
@@ -3898,18 +3906,18 @@ msgstr "位置"
|
|||||||
msgid "There are no locations shared in this room."
|
msgid "There are no locations shared in this room."
|
||||||
msgstr "此聊天室中没有共享位置。"
|
msgstr "此聊天室中没有共享位置。"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Room settings"
|
msgid "Room settings"
|
||||||
msgstr "聊天室设置"
|
msgstr "聊天室设置"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr "信息"
|
msgstr "信息"
|
||||||
|
|
||||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr "媒体"
|
msgstr "媒体"
|
||||||
@@ -3926,102 +3934,102 @@ msgctxt "@action:title"
|
|||||||
msgid "Room Information"
|
msgid "Room Information"
|
||||||
msgstr "聊天室信息"
|
msgstr "聊天室信息"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:90
|
#: src/roominfo/RoomInformation.qml:72
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Room actions"
|
msgctxt "Room actions"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:100
|
#: src/roominfo/RoomInformation.qml:82
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Search Messages"
|
msgid "Search Messages"
|
||||||
msgstr "搜索消息"
|
msgstr "搜索消息"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:117
|
#: src/roominfo/RoomInformation.qml:99
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Verify user"
|
msgid "Verify user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:128
|
#: src/roominfo/RoomInformation.qml:110
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:141
|
#: src/roominfo/RoomInformation.qml:123
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:147
|
#: src/roominfo/RoomInformation.qml:129
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Extensions"
|
msgid "Extensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:157
|
#: src/roominfo/RoomInformation.qml:139
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Shared Locations"
|
msgid "Shared Locations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:173
|
#: src/roominfo/RoomInformation.qml:155
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Pinned Messages"
|
msgid "Pinned Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:188
|
#: src/roominfo/RoomInformation.qml:170
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Inspect Room Data"
|
msgid "Inspect Room Data"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Space…"
|
msgid "Leave Space…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:209
|
#: src/roominfo/RoomInformation.qml:191
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:222
|
#: src/roominfo/RoomInformation.qml:204
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "成员"
|
msgstr "成员"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Invite a User"
|
msgid "Invite a User"
|
||||||
msgstr "邀请用户"
|
msgstr "邀请用户"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:241
|
#: src/roominfo/RoomInformation.qml:223
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Invite user to room"
|
msgid "Invite user to room"
|
||||||
msgstr "邀请用户到聊天室"
|
msgstr "邀请用户到聊天室"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%1 member"
|
msgid "%1 member"
|
||||||
msgid_plural "%1 members"
|
msgid_plural "%1 members"
|
||||||
msgstr[0] "%1 位成员"
|
msgstr[0] "%1 位成员"
|
||||||
|
|
||||||
#: src/roominfo/RoomInformation.qml:248
|
#: src/roominfo/RoomInformation.qml:230
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "No member count"
|
msgid "No member count"
|
||||||
msgstr "无成员计数"
|
msgstr "无成员计数"
|
||||||
@@ -4077,42 +4085,42 @@ msgctxt "@action:button"
|
|||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:38
|
#: src/rooms/ExploreComponent.qml:36
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Rooms"
|
msgid "Rooms"
|
||||||
msgstr "聊天室"
|
msgstr "聊天室"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:50
|
#: src/rooms/ExploreComponent.qml:48
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Search Rooms"
|
msgid "Search Rooms"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:75
|
#: src/rooms/ExploreComponent.qml:61
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Show Menu"
|
msgid "Show Menu"
|
||||||
msgstr "显示菜单"
|
msgstr "显示菜单"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "查找好友"
|
msgstr "查找好友"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@title"
|
msgctxt "@title"
|
||||||
msgid "Find your friends"
|
msgid "Find your friends"
|
||||||
msgstr "查找好友"
|
msgstr "查找好友"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:104
|
#: src/rooms/ExploreComponent.qml:88
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Create a Room"
|
msgid "Create a Room"
|
||||||
msgstr "创建聊天室"
|
msgstr "创建聊天室"
|
||||||
|
|
||||||
#: src/rooms/ExploreComponent.qml:119
|
#: src/rooms/ExploreComponent.qml:103
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgid "Scan a QR Code"
|
msgid "Scan a QR Code"
|
||||||
msgstr "扫描二维码"
|
msgstr "扫描二维码"
|
||||||
@@ -4144,13 +4152,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Create a Space"
|
msgid "Create a Space"
|
||||||
msgstr "创建空间"
|
msgstr "创建空间"
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:366
|
#: src/rooms/models/roomtreemodel.cpp:364
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "Invited you to chat"
|
msgid "Invited you to chat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/models/roomtreemodel.cpp:368
|
#: src/rooms/models/roomtreemodel.cpp:366
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:label"
|
msgctxt "@info:label"
|
||||||
msgid "%1 invited you"
|
msgid "%1 invited you"
|
||||||
@@ -4232,6 +4240,38 @@ msgstr "聊天室设置"
|
|||||||
|
|
||||||
#: src/rooms/RoomContextMenu.qml:154
|
#: src/rooms/RoomContextMenu.qml:154
|
||||||
#, kde-format
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report…"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:159
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title:dialog"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:160
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@info:placeholder"
|
||||||
|
msgid "Reason for reporting this room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:162
|
||||||
|
#, kde-format
|
||||||
|
msgctxt ""
|
||||||
|
"@action:button 'Report' as in 'Report this room to the administrators'"
|
||||||
|
msgid "Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:164
|
||||||
|
#, kde-format
|
||||||
|
msgctxt "@title"
|
||||||
|
msgid "Report Room"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/rooms/RoomContextMenu.qml:174
|
||||||
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Leave Room…"
|
msgid "Leave Room…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -4295,13 +4335,13 @@ msgctxt "@action:button"
|
|||||||
msgid "Search in friend directory"
|
msgid "Search in friend directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Collapse <section name>"
|
msgctxt "Collapse <section name>"
|
||||||
msgid "Collapse %1"
|
msgid "Collapse %1"
|
||||||
msgstr "折叠 %1"
|
msgstr "折叠 %1"
|
||||||
|
|
||||||
#: src/rooms/RoomTreeSection.qml:61
|
#: src/rooms/RoomTreeSection.qml:59
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Expand <section name"
|
msgctxt "Expand <section name"
|
||||||
msgid "Expand %1"
|
msgid "Expand %1"
|
||||||
@@ -6892,19 +6932,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
|||||||
msgid "%1 said %2"
|
msgid "%1 said %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||||
msgid "Unpin"
|
msgid "Unpin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:403
|
#: src/timeline/DelegateContextMenu.qml:402
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/DelegateContextMenu.qml:416
|
#: src/timeline/DelegateContextMenu.qml:415
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
@@ -6971,31 +7011,31 @@ msgid ""
|
|||||||
"this point."
|
"this point."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to first unread message"
|
msgid "Jump to first unread message"
|
||||||
msgstr "跳转到第一条未读消息"
|
msgstr "跳转到第一条未读消息"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:241
|
#: src/timeline/TimelineView.qml:214
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to oldest loaded message"
|
msgid "Jump to oldest loaded message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:272
|
#: src/timeline/TimelineView.qml:245
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Jump to latest message"
|
msgid "Jump to latest message"
|
||||||
msgstr "跳转到最新消息"
|
msgstr "跳转到最新消息"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:307
|
#: src/timeline/TimelineView.qml:279
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "@info:placeholder"
|
msgctxt "@info:placeholder"
|
||||||
msgid "Drag items here to share them"
|
msgid "Drag items here to share them"
|
||||||
msgstr "拖动项目到此处来分享"
|
msgstr "拖动项目到此处来分享"
|
||||||
|
|
||||||
#: src/timeline/TimelineView.qml:332
|
#: src/timeline/TimelineView.qml:304
|
||||||
#, kde-format
|
#, kde-format
|
||||||
msgctxt "Message displayed when some users are typing"
|
msgctxt "Message displayed when some users are typing"
|
||||||
msgid "%2 is typing"
|
msgid "%2 is typing"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -153,7 +153,6 @@ target_include_directories(neochat-app PRIVATE ${CMAKE_BINARY_DIR})
|
|||||||
|
|
||||||
target_link_libraries(neochat-app PRIVATE
|
target_link_libraries(neochat-app PRIVATE
|
||||||
neochat
|
neochat
|
||||||
KF6::IconThemes
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ecm_add_app_icon(NEOCHAT_ICON ICONS ${CMAKE_SOURCE_DIR}/128-logo.png)
|
ecm_add_app_icon(NEOCHAT_ICON ICONS ${CMAKE_SOURCE_DIR}/128-logo.png)
|
||||||
|
|||||||
@@ -246,7 +246,10 @@ void Controller::initActiveConnection(NeoChatConnection *oldConnection, NeoChatC
|
|||||||
if (newConnection) {
|
if (newConnection) {
|
||||||
connect(newConnection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
|
connect(newConnection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
|
||||||
connect(newConnection, &NeoChatConnection::badgeNotificationCountChanged, this, &Controller::updateBadgeNotificationCount);
|
connect(newConnection, &NeoChatConnection::badgeNotificationCountChanged, this, &Controller::updateBadgeNotificationCount);
|
||||||
|
|
||||||
|
// Refresh and update manually, in case we init too late for the badge count to actually change.
|
||||||
newConnection->refreshBadgeNotificationCount();
|
newConnection->refreshBadgeNotificationCount();
|
||||||
|
updateBadgeNotificationCount(newConnection->badgeNotificationCount());
|
||||||
}
|
}
|
||||||
Q_EMIT activeConnectionChanged(newConnection);
|
Q_EMIT activeConnectionChanged(newConnection);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@
|
|||||||
#include <KWindowSystem>
|
#include <KWindowSystem>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <KIconTheme>
|
|
||||||
#include <KLocalizedQmlContext>
|
#include <KLocalizedQmlContext>
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KirigamiApp>
|
#include <KirigamiApp>
|
||||||
@@ -103,10 +102,6 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
||||||
|
|
||||||
// We currently need to do this ourselves,
|
|
||||||
// KirigamiApp currently called this after constructing the app which breaks icons on Windows.
|
|
||||||
KIconTheme::initTheme();
|
|
||||||
|
|
||||||
#ifdef HAVE_WEBVIEW
|
#ifdef HAVE_WEBVIEW
|
||||||
QtWebView::initialize();
|
QtWebView::initialize();
|
||||||
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
|
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
|
||||||
@@ -166,12 +161,6 @@ int main(int argc, char *argv[])
|
|||||||
Connection::setEncryptionDefault(true);
|
Connection::setEncryptionDefault(true);
|
||||||
Connection::setDirectChatEncryptionDefault(true);
|
Connection::setDirectChatEncryptionDefault(true);
|
||||||
|
|
||||||
#ifdef NEOCHAT_FLATPAK
|
|
||||||
// Copy over the included FontConfig configuration to the
|
|
||||||
// app's config dir:
|
|
||||||
QFile::copy(u"/app/etc/fonts/conf.d/99-noto-mono-color-emoji.conf"_s, u"/var/config/fontconfig/conf.d/99-noto-mono-color-emoji.conf"_s);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ColorSchemer colorScheme;
|
ColorSchemer colorScheme;
|
||||||
|
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
|
|||||||
@@ -211,10 +211,6 @@
|
|||||||
<label>Enable threads</label>
|
<label>Enable threads</label>
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
</entry>
|
</entry>
|
||||||
<entry name="SecretBackup" type="bool">
|
|
||||||
<label>Enable secret backup</label>
|
|
||||||
<default>false</default>
|
|
||||||
</entry>
|
|
||||||
<entry name="Phone3PId" type="bool">
|
<entry name="Phone3PId" type="bool">
|
||||||
<label>Enable add phone numbers as 3PIDs</label>
|
<label>Enable add phone numbers as 3PIDs</label>
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
|
|||||||
@@ -216,12 +216,12 @@ void NotificationsManager::postNotification(NeoChatRoom *room,
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
notification->setTitle(room->displayName());
|
|
||||||
|
|
||||||
QString entry;
|
QString entry;
|
||||||
if (room->isDirectChat()) {
|
if (sender == room->displayName()) {
|
||||||
|
notification->setTitle(sender);
|
||||||
entry = text.toHtmlEscaped();
|
entry = text.toHtmlEscaped();
|
||||||
} else {
|
} else {
|
||||||
|
notification->setTitle(room->displayName());
|
||||||
entry = i18n("%1: %2", sender, text.toHtmlEscaped());
|
entry = i18n("%1: %2", sender, text.toHtmlEscaped());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,9 +253,7 @@ void NotificationsManager::postNotification(NeoChatRoom *room,
|
|||||||
notification->setReplyAction(std::move(replyAction));
|
notification->setReplyAction(std::move(replyAction));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
|
||||||
}
|
|
||||||
notification->sendEvent();
|
notification->sendEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -349,9 +347,7 @@ void NotificationsManager::doPostInviteNotification(QPointer<NeoChatRoom> room)
|
|||||||
m_invitations.remove(room->id());
|
m_invitations.remove(room->id());
|
||||||
});
|
});
|
||||||
|
|
||||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
|
||||||
}
|
|
||||||
|
|
||||||
notification->sendEvent();
|
notification->sendEvent();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ KirigamiComponents.ConvergentContextMenu {
|
|||||||
Kirigami.Action {
|
Kirigami.Action {
|
||||||
text: i18nc("@action:inmenu", "Open Secret Backup")
|
text: i18nc("@action:inmenu", "Open Secret Backup")
|
||||||
icon.name: "unlock"
|
icon.name: "unlock"
|
||||||
visible: NeoChatConfig.secretBackup
|
|
||||||
onTriggered: root.window.pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UnlockSSSSDialog'), {}, {
|
onTriggered: root.window.pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UnlockSSSSDialog'), {}, {
|
||||||
title: i18nc("@title:window", "Open Key Backup")
|
title: i18nc("@title:window", "Open Key Backup")
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -54,6 +54,12 @@ ColumnLayout {
|
|||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Kirigami.Heading {
|
||||||
|
text: root.currentRoom.displayName
|
||||||
|
|
||||||
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
}
|
||||||
|
|
||||||
Kirigami.SelectableLabel {
|
Kirigami.SelectableLabel {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
font: Kirigami.Theme.smallFont
|
font: Kirigami.Theme.smallFont
|
||||||
@@ -61,12 +67,7 @@ ColumnLayout {
|
|||||||
visible: root.currentRoom && root.currentRoom.canonicalAlias
|
visible: root.currentRoom && root.currentRoom.canonicalAlias
|
||||||
text: root.currentRoom && root.currentRoom.canonicalAlias ? root.currentRoom.canonicalAlias : ""
|
text: root.currentRoom && root.currentRoom.canonicalAlias ? root.currentRoom.canonicalAlias : ""
|
||||||
color: Kirigami.Theme.disabledTextColor
|
color: Kirigami.Theme.disabledTextColor
|
||||||
}
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
|
||||||
Kirigami.Heading {
|
|
||||||
text: root.currentRoom.displayName
|
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignHCenter
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,13 +23,45 @@ Components.AlbumMaximizeComponent {
|
|||||||
*/
|
*/
|
||||||
required property NeoChatRoom currentRoom
|
required property NeoChatRoom currentRoom
|
||||||
|
|
||||||
readonly property string currentEventId: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.EventIdRole)
|
readonly property string currentEventId: {
|
||||||
|
const idx = (content as ListView).currentIndex;
|
||||||
|
|
||||||
readonly property var currentAuthor: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.AuthorRole)
|
if (idx === -1) {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
readonly property var currentTime: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.TimeRole)
|
return model.data(model.index(idx, 0), TimelineMessageModel.EventIdRole)
|
||||||
|
}
|
||||||
|
|
||||||
readonly property var currentProgressInfo: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.ProgressInfoRole)
|
readonly property var currentAuthor: {
|
||||||
|
const idx = (content as ListView).currentIndex;
|
||||||
|
|
||||||
|
if (idx === -1) {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
return model.data(model.index(idx, 0), TimelineMessageModel.AuthorRole)
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly property var currentTime: {
|
||||||
|
|
||||||
|
const idx = (content as ListView).currentIndex;
|
||||||
|
|
||||||
|
if (idx === -1) {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
model.data(model.index(idx, 0), TimelineMessageModel.TimeRole)
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly property var currentProgressInfo: {
|
||||||
|
const idx = (content as ListView).currentIndex;
|
||||||
|
|
||||||
|
if (idx === -1) {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
model.data(model.index(idx, 0), TimelineMessageModel.ProgressInfoRole)
|
||||||
|
}
|
||||||
|
|
||||||
actions: [
|
actions: [
|
||||||
ShareAction {
|
ShareAction {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Kirigami.SearchDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onAccepted: if (currentItem) {
|
onAccepted: if (currentItem) {
|
||||||
(root.currentItem as RoomDelegate).clicked();
|
(currentItem as QQC2.ItemDelegate).clicked();
|
||||||
}
|
}
|
||||||
|
|
||||||
onTextChanged: RoomManager.sortFilterRoomListModel.filterText = text
|
onTextChanged: RoomManager.sortFilterRoomListModel.filterText = text
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ Kirigami.Page {
|
|||||||
Keys.onReturnPressed: event => {
|
Keys.onReturnPressed: event => {
|
||||||
if (event.modifiers & Qt.ControlModifier) {
|
if (event.modifiers & Qt.ControlModifier) {
|
||||||
root.accepted(reason.text);
|
root.accepted(reason.text);
|
||||||
root.Kirigami.PageStack.closeDialog();
|
root.closeDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,14 +52,14 @@ Kirigami.Page {
|
|||||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole
|
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.accepted(reason.text);
|
root.accepted(reason.text);
|
||||||
root.Kirigami.PageStack.closeDialog();
|
root.closeDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QQC2.Button {
|
QQC2.Button {
|
||||||
icon.name: "dialog-cancel-symbolic"
|
icon.name: "dialog-cancel-symbolic"
|
||||||
text: i18nc("@action", "Cancel")
|
text: i18nc("@action", "Cancel")
|
||||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole
|
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole
|
||||||
onClicked: root.Kirigami.PageStack.closeDialog()
|
onClicked: root.closeDialog()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,14 +75,6 @@ Kirigami.Page {
|
|||||||
focus: true
|
focus: true
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
||||||
background: null // This needs to stay null, because of transparency blur
|
|
||||||
|
|
||||||
onHeightChanged: {
|
|
||||||
// HACK: See TimelineView for the hack details.
|
|
||||||
// We get the height change here *first* so we are informed this is because of a window resize and not due to the pinned message.
|
|
||||||
(timelineViewLoader.item as TimelineView).resetViewSettling();
|
|
||||||
}
|
|
||||||
|
|
||||||
actions: [
|
actions: [
|
||||||
Kirigami.Action {
|
Kirigami.Action {
|
||||||
id: jitsiMeetingAction
|
id: jitsiMeetingAction
|
||||||
@@ -121,7 +113,7 @@ Kirigami.Page {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
Kirigami.Action {
|
Kirigami.Action {
|
||||||
visible: Kirigami.Settings.isMobile || !(root.Kirigami.PageStack.pageStack as Kirigami.PageRow)?.wideMode
|
visible: Kirigami.Settings.isMobile || !(root.Kirigami.PageStack.pageStack as Kirigami.PageRow).wideMode
|
||||||
icon.name: "view-right-new"
|
icon.name: "view-right-new"
|
||||||
onTriggered: (root.QQC2.ApplicationWindow.window as Main).openRoomDrawer()
|
onTriggered: (root.QQC2.ApplicationWindow.window as Main).openRoomDrawer()
|
||||||
}
|
}
|
||||||
@@ -263,7 +255,6 @@ Kirigami.Page {
|
|||||||
id: timelineView
|
id: timelineView
|
||||||
messageFilterModel: root.messageFilterModel
|
messageFilterModel: root.messageFilterModel
|
||||||
compactLayout: NeoChatConfig.compactLayout
|
compactLayout: NeoChatConfig.compactLayout
|
||||||
fileDropEnabled: !Controller.isFlatpak
|
|
||||||
markReadCondition: NeoChatConfig.markReadCondition
|
markReadCondition: NeoChatConfig.markReadCondition
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,7 +289,7 @@ Kirigami.Page {
|
|||||||
|
|
||||||
footer: Loader {
|
footer: Loader {
|
||||||
id: chatBarLoader
|
id: chatBarLoader
|
||||||
height: active ? (item as ChatBar)?.implicitHeight : 0
|
height: active ? (item as ChatBar).implicitHeight : 0
|
||||||
active: timelineViewLoader.active && !root.currentRoom.readOnly
|
active: timelineViewLoader.active && !root.currentRoom.readOnly
|
||||||
sourceComponent: ChatBar {
|
sourceComponent: ChatBar {
|
||||||
id: chatBar
|
id: chatBar
|
||||||
@@ -358,7 +349,7 @@ Kirigami.Page {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, selectedText: string, hoveredLink: string) {
|
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, isThread: bool, selectedText: string, hoveredLink: string) {
|
||||||
(delegateContextMenu.createObject(root, {
|
(delegateContextMenu.createObject(root, {
|
||||||
author: author,
|
author: author,
|
||||||
eventId: eventId,
|
eventId: eventId,
|
||||||
@@ -366,8 +357,6 @@ Kirigami.Page {
|
|||||||
mimeType: mimeType,
|
mimeType: mimeType,
|
||||||
progressInfo: progressInfo,
|
progressInfo: progressInfo,
|
||||||
messageComponentType: messageComponentType,
|
messageComponentType: messageComponentType,
|
||||||
selectedText,
|
|
||||||
hoveredLink,
|
|
||||||
}) as DelegateContextMenu).popup();
|
}) as DelegateContextMenu).popup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.kde.neochat
|
|||||||
FormCard.FormCardPage {
|
FormCard.FormCardPage {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
property bool processing: false
|
||||||
|
|
||||||
title: i18nc("@title:window", "Load your encrypted messages")
|
title: i18nc("@title:window", "Load your encrypted messages")
|
||||||
|
|
||||||
topPadding: Kirigami.Units.gridUnit
|
topPadding: Kirigami.Units.gridUnit
|
||||||
@@ -25,75 +27,42 @@ FormCard.FormCardPage {
|
|||||||
position: Kirigami.InlineMessage.Position.Header
|
position: Kirigami.InlineMessage.Position.Header
|
||||||
}
|
}
|
||||||
|
|
||||||
property SSSSHandler ssssHandler: SSSSHandler {
|
Connections {
|
||||||
id: ssssHandler
|
target: Controller.activeConnection
|
||||||
|
function onKeyBackupError(): void {
|
||||||
|
securityKeyField.clear()
|
||||||
|
root.processing = false
|
||||||
|
banner.text = i18nc("@info:status", "The security key or backup passphrase was not correct.")
|
||||||
|
banner.visible = true
|
||||||
|
}
|
||||||
|
|
||||||
property bool processing: false
|
function onKeyBackupUnlocked(): void {
|
||||||
|
root.processing = false
|
||||||
connection: Controller.activeConnection
|
|
||||||
onKeyBackupUnlocked: {
|
|
||||||
ssssHandler.processing = false
|
|
||||||
banner.text = i18nc("@info:status", "Encryption keys restored.")
|
banner.text = i18nc("@info:status", "Encryption keys restored.")
|
||||||
banner.type = Kirigami.MessageType.Positive
|
banner.type = Kirigami.MessageType.Positive
|
||||||
banner.visible = true
|
banner.visible = true
|
||||||
}
|
}
|
||||||
onError: error => {
|
|
||||||
if (error !== SSSSHandler.WrongKeyError) {
|
|
||||||
banner.text = error
|
|
||||||
banner.visible = true
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
passwordField.clear()
|
|
||||||
ssssHandler.processing = false
|
|
||||||
banner.text = i18nc("@info:status", "The security phrase was not correct.")
|
|
||||||
banner.visible = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FormCard.FormHeader {
|
FormCard.FormHeader {
|
||||||
title: i18nc("@title", "Unlock using Passphrase")
|
title: i18nc("@title", "Unlock using Security Key or Backup Passphrase")
|
||||||
}
|
}
|
||||||
FormCard.FormCard {
|
FormCard.FormCard {
|
||||||
FormCard.FormTextDelegate {
|
FormCard.FormTextDelegate {
|
||||||
description: i18nc("@info", "If you have a backup passphrase for this account, enter it below.")
|
description: i18nc("@info", "If you have a security key or backup passphrase for this account, enter it below or upload it as a file.")
|
||||||
}
|
|
||||||
FormCard.FormTextFieldDelegate {
|
|
||||||
id: passwordField
|
|
||||||
label: i18nc("@label:textbox", "Backup Password:")
|
|
||||||
echoMode: TextInput.Password
|
|
||||||
}
|
|
||||||
FormCard.FormButtonDelegate {
|
|
||||||
id: unlockButton
|
|
||||||
text: i18nc("@action:button", "Unlock")
|
|
||||||
icon.name: "unlock"
|
|
||||||
enabled: passwordField.text.length > 0 && !ssssHandler.processing
|
|
||||||
onClicked: {
|
|
||||||
ssssHandler.processing = true
|
|
||||||
banner.visible = false
|
|
||||||
ssssHandler.unlockSSSSWithPassphrase(passwordField.text)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FormCard.FormHeader {
|
|
||||||
title: i18nc("@title", "Unlock using Security Key")
|
|
||||||
}
|
|
||||||
FormCard.FormCard {
|
|
||||||
FormCard.FormTextDelegate {
|
|
||||||
description: i18nc("@info", "If you have a security key for this account, enter it below or upload it as a file.")
|
|
||||||
}
|
}
|
||||||
FormCard.FormTextFieldDelegate {
|
FormCard.FormTextFieldDelegate {
|
||||||
id: securityKeyField
|
id: securityKeyField
|
||||||
label: i18nc("@label:textbox", "Security Key:")
|
label: i18nc("@label:textbox", "Security Key or Backup Passphrase:")
|
||||||
echoMode: TextInput.Password
|
echoMode: TextInput.Password
|
||||||
}
|
}
|
||||||
FormCard.FormButtonDelegate {
|
FormCard.FormButtonDelegate {
|
||||||
id: uploadSecurityKeyButton
|
id: uploadSecurityKeyButton
|
||||||
text: i18nc("@action:button", "Upload from File")
|
text: i18nc("@action:button", "Upload from File")
|
||||||
icon.name: "cloud-upload"
|
icon.name: "cloud-upload"
|
||||||
enabled: !ssssHandler.processing
|
enabled: !root.processing
|
||||||
onClicked: {
|
onClicked: {
|
||||||
ssssHandler.processing = true
|
root.processing = true
|
||||||
openFileDialog.open()
|
openFileDialog.open()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,10 +70,10 @@ FormCard.FormCardPage {
|
|||||||
id: unlockSecurityKeyButton
|
id: unlockSecurityKeyButton
|
||||||
text: i18nc("@action:button", "Unlock")
|
text: i18nc("@action:button", "Unlock")
|
||||||
icon.name: "unlock"
|
icon.name: "unlock"
|
||||||
enabled: securityKeyField.text.length > 0 && !ssssHandler.processing
|
enabled: securityKeyField.text.length > 0 && !root.processing
|
||||||
onClicked: {
|
onClicked: {
|
||||||
ssssHandler.processing = true
|
root.processing = true
|
||||||
ssssHandler.unlockSSSSFromSecurityKey(securityKeyField.text)
|
Controller.activeConnection.unlockSSSS(securityKeyField.text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,10 +89,10 @@ FormCard.FormCardPage {
|
|||||||
id: unlockCrossSigningButton
|
id: unlockCrossSigningButton
|
||||||
icon.name: "emblem-shared-symbolic"
|
icon.name: "emblem-shared-symbolic"
|
||||||
text: i18nc("@action:button", "Request from other Devices")
|
text: i18nc("@action:button", "Request from other Devices")
|
||||||
enabled: !ssssHandler.processing
|
enabled: !root.processing
|
||||||
onClicked: {
|
onClicked: {
|
||||||
ssssHandler.processing = true
|
root.processing = true
|
||||||
ssssHandler.unlockSSSSFromCrossSigning()
|
Controller.activeConnection.unlockSSSS("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -293,5 +293,25 @@ Kirigami.Dialog {
|
|||||||
icon.name: "username-copy"
|
icon.name: "username-copy"
|
||||||
onClicked: Clipboard.saveText("https://matrix.to/#/" + root.user.id)
|
onClicked: Clipboard.saveText("https://matrix.to/#/" + root.user.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FormCard.FormButtonDelegate {
|
||||||
|
text: i18nc("@action:button 'Report' as in 'Report this user to the administrators'", "Report…")
|
||||||
|
icon.name: "dialog-warning-symbolic"
|
||||||
|
visible: root.connection.supportsMatrixSpecVersion("v1.13")
|
||||||
|
onClicked: {
|
||||||
|
let dialog = ((QQC2.ApplicationWindow.window as Kirigami.ApplicationWindow).pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), {
|
||||||
|
title: i18nc("@title:dialog", "Report User"),
|
||||||
|
placeholder: i18nc("@info:placeholder", "Reason for reporting this user"),
|
||||||
|
icon: "dialog-warning-symbolic",
|
||||||
|
actionText: i18nc("@action:button 'Report' as in 'Report this user to the administrators'", "Report")
|
||||||
|
}, {
|
||||||
|
title: i18nc("@title", "Report User"),
|
||||||
|
width: Kirigami.Units.gridUnit * 25
|
||||||
|
}) as ReasonDialog;
|
||||||
|
dialog.accepted.connect(reason => {
|
||||||
|
root.connection.reportUser(root.user.id, reason);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,28 +29,6 @@
|
|||||||
#include <KIO/OpenUrlJob>
|
#include <KIO/OpenUrlJob>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Stops RoomManager from updating the last room and space config.
|
|
||||||
*/
|
|
||||||
class LastRoomBlocker
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
explicit LastRoomBlocker(RoomManager *manager)
|
|
||||||
: m_manager(manager)
|
|
||||||
{
|
|
||||||
Q_ASSERT(manager);
|
|
||||||
|
|
||||||
m_manager->m_dontUpdateLastRoom = true;
|
|
||||||
}
|
|
||||||
~LastRoomBlocker()
|
|
||||||
{
|
|
||||||
m_manager->m_dontUpdateLastRoom = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
RoomManager *m_manager;
|
|
||||||
};
|
|
||||||
|
|
||||||
RoomManager::RoomManager(QObject *parent)
|
RoomManager::RoomManager(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_config(KSharedConfig::openStateConfig())
|
, m_config(KSharedConfig::openStateConfig())
|
||||||
@@ -346,6 +324,17 @@ void RoomManager::loadInitialRoom()
|
|||||||
resolveResource(m_arg);
|
resolveResource(m_arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_isMobile) {
|
||||||
|
QString lastSpace = m_lastRoomConfig.readEntry(u"lastSpace"_s, QString());
|
||||||
|
// We can't have empty keys in KConfig, so we stored it as "Home"
|
||||||
|
if (lastSpace == u"Home"_s) {
|
||||||
|
lastSpace.clear();
|
||||||
|
}
|
||||||
|
setCurrentSpace(lastSpace, false);
|
||||||
|
// We don't want to open a room on startup on mobile
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_currentRoom) {
|
if (m_currentRoom) {
|
||||||
// we opened a room with the arg parsing already
|
// we opened a room with the arg parsing already
|
||||||
return;
|
return;
|
||||||
@@ -358,14 +347,16 @@ void RoomManager::loadInitialRoom()
|
|||||||
|
|
||||||
void RoomManager::openRoomForActiveConnection()
|
void RoomManager::openRoomForActiveConnection()
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_connection);
|
if (!m_connection) {
|
||||||
|
setCurrentRoom({});
|
||||||
|
setCurrentSpace({}, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto lastSpace = m_lastRoomConfig.readEntry(u"lastSpace"_s, QString());
|
auto lastSpace = m_lastRoomConfig.readEntry(u"lastSpace"_s, QString());
|
||||||
if (lastSpace == u"Home"_s) {
|
if (lastSpace == u"Home"_s) {
|
||||||
lastSpace.clear();
|
lastSpace.clear();
|
||||||
}
|
}
|
||||||
// We don't want to open a room on startup on mobile
|
setCurrentSpace(lastSpace, true);
|
||||||
setCurrentSpace(lastSpace, !m_isMobile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UriResolveResult RoomManager::visitUser(User *user, const QString &action)
|
UriResolveResult RoomManager::visitUser(User *user, const QString &action)
|
||||||
@@ -522,7 +513,7 @@ void RoomManager::setConnection(NeoChatConnection *connection)
|
|||||||
Q_EMIT connectionChanged();
|
Q_EMIT connectionChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
void RoomManager::setCurrentSpace(const QString &spaceId, bool setRoom)
|
||||||
{
|
{
|
||||||
m_currentSpaceId = spaceId;
|
m_currentSpaceId = spaceId;
|
||||||
|
|
||||||
@@ -542,65 +533,25 @@ void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
|||||||
m_lastRoomConfig.writeEntry(u"lastSpace"_s, spaceId.isEmpty() ? u"Home"_s : spaceId);
|
m_lastRoomConfig.writeEntry(u"lastSpace"_s, spaceId.isEmpty() ? u"Home"_s : spaceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we requested to change to the last opened room, do so:
|
if (!setRoom) {
|
||||||
if (goToLastUsedRoom) {
|
return;
|
||||||
// We don't want to needlessly update the last room config here, that should only be done during explicit user action.
|
}
|
||||||
LastRoomBlocker blocker(this);
|
|
||||||
|
|
||||||
// We can't have empty keys in KConfig, so it's stored as "Home":
|
// We intentionally don't want to open the last room on mobile
|
||||||
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString()); !lastRoom.isEmpty()) {
|
if (m_isMobile) {
|
||||||
resolveResource(lastRoom, "no_join"_L1);
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// If no last room was opened, go to the space home:
|
// We can't have empty keys in KConfig, so it's stored as "Home"
|
||||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString()); !lastRoom.isEmpty()) {
|
||||||
resolveResource(spaceId, "no_join"_L1);
|
resolveResource(lastRoom, "no_join"_L1);
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Fallback to no room opened:
|
|
||||||
setCurrentRoom({});
|
|
||||||
}
|
}
|
||||||
}
|
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
||||||
|
resolveResource(spaceId, "no_join"_L1);
|
||||||
QString RoomManager::findSpaceIdForCurrentRoom() const
|
return;
|
||||||
{
|
|
||||||
if (!m_currentRoom) {
|
|
||||||
return m_currentSpaceId;
|
|
||||||
}
|
}
|
||||||
if (m_currentRoom->isDirectChat()) {
|
setCurrentRoom({});
|
||||||
const auto roomsInSpace = SpaceHierarchyCache::instance().getRoomListForSpace(m_currentSpaceId, false);
|
|
||||||
if (roomsInSpace.contains(m_currentRoom->id())) {
|
|
||||||
return m_currentSpaceId;
|
|
||||||
}
|
|
||||||
return "DM"_L1;
|
|
||||||
}
|
|
||||||
const auto &parentSpaces = SpaceHierarchyCache::instance().parentSpaces(m_currentRoom->id());
|
|
||||||
if (parentSpaces.contains(m_currentSpaceId)) {
|
|
||||||
return m_currentSpaceId;
|
|
||||||
}
|
|
||||||
static auto config = NeoChatConfig::self();
|
|
||||||
if (config->allRoomsInHome()) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
if (const auto &parent = m_connection->room(m_currentRoom->canonicalParent())) {
|
|
||||||
for (const auto &parentParent : SpaceHierarchyCache::instance().parentSpaces(parent->id())) {
|
|
||||||
if (SpaceHierarchyCache::instance().parentSpaces(parentParent).isEmpty()) {
|
|
||||||
return parentParent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return parent->id();
|
|
||||||
}
|
|
||||||
for (const auto &space : parentSpaces) {
|
|
||||||
if (SpaceHierarchyCache::instance().parentSpaces(space).isEmpty()) {
|
|
||||||
return space;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (m_currentRoom->isSpace()) {
|
|
||||||
return m_currentSpaceId;
|
|
||||||
}
|
|
||||||
return {};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RoomManager::setCurrentRoom(const QString &roomId)
|
void RoomManager::setCurrentRoom(const QString &roomId)
|
||||||
@@ -620,25 +571,57 @@ void RoomManager::setCurrentRoom(const QString &roomId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT currentRoomChanged();
|
Q_EMIT currentRoomChanged();
|
||||||
|
if (m_connection) {
|
||||||
if (!m_dontUpdateLastRoom) {
|
|
||||||
if (roomId.isEmpty()) {
|
if (roomId.isEmpty()) {
|
||||||
m_lastRoomConfig.deleteEntry(m_currentSpaceId);
|
m_lastRoomConfig.deleteEntry(m_currentSpaceId);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto spaceIdForRoom = findSpaceIdForCurrentRoom();
|
|
||||||
// We can't have empty keys in KConfig, so name it "Home"
|
|
||||||
if (spaceIdForRoom.isEmpty()) {
|
|
||||||
m_lastRoomConfig.writeEntry(u"Home"_s, roomId);
|
|
||||||
} else {
|
} else {
|
||||||
m_lastRoomConfig.writeEntry(spaceIdForRoom, roomId);
|
// We can't have empty keys in KConfig, so name it "Home"
|
||||||
}
|
if (m_currentSpaceId.isEmpty()) {
|
||||||
|
m_lastRoomConfig.writeEntry(u"Home"_s, roomId);
|
||||||
if (m_currentSpaceId != spaceIdForRoom) {
|
} else {
|
||||||
setCurrentSpace(spaceIdForRoom, false);
|
m_lastRoomConfig.writeEntry(m_currentSpaceId, roomId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (roomId.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (m_currentRoom->isSpace()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (m_currentRoom->isDirectChat()) {
|
||||||
|
const auto roomsInSpace = SpaceHierarchyCache::instance().getRoomListForSpace(m_currentSpaceId, false);
|
||||||
|
if (!roomsInSpace.contains(m_currentRoom->id()) && m_currentSpaceId != "DM"_L1) {
|
||||||
|
setCurrentSpace("DM"_L1, false);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const auto &parentSpaces = SpaceHierarchyCache::instance().parentSpaces(roomId);
|
||||||
|
if (parentSpaces.contains(m_currentSpaceId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
static auto config = NeoChatConfig::self();
|
||||||
|
if (config->allRoomsInHome()) {
|
||||||
|
setCurrentSpace({}, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (const auto &parent = m_connection->room(m_currentRoom->canonicalParent())) {
|
||||||
|
for (const auto &parentParent : SpaceHierarchyCache::instance().parentSpaces(parent->id())) {
|
||||||
|
if (SpaceHierarchyCache::instance().parentSpaces(parentParent).isEmpty()) {
|
||||||
|
setCurrentSpace(parentParent, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setCurrentSpace(parent->id(), false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (const auto &space : parentSpaces) {
|
||||||
|
if (SpaceHierarchyCache::instance().parentSpaces(space).isEmpty()) {
|
||||||
|
setCurrentSpace(space, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setCurrentSpace({}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RoomManager::clearCurrentRoom()
|
void RoomManager::clearCurrentRoom()
|
||||||
|
|||||||
@@ -337,11 +337,6 @@ Q_SIGNALS:
|
|||||||
|
|
||||||
void currentSpaceChanged();
|
void currentSpaceChanged();
|
||||||
|
|
||||||
protected:
|
|
||||||
bool m_dontUpdateLastRoom = false; // Don't set directly, use LastRoomBlocker.
|
|
||||||
|
|
||||||
friend class LastRoomBlocker;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_isMobile = false;
|
bool m_isMobile = false;
|
||||||
|
|
||||||
@@ -378,22 +373,8 @@ private:
|
|||||||
|
|
||||||
void setCurrentRoom(const QString &roomId);
|
void setCurrentRoom(const QString &roomId);
|
||||||
|
|
||||||
/**
|
// Space ID, "DM", or empty string
|
||||||
* @brief Find the most appropriate space for the currently selected room
|
void setCurrentSpace(const QString &spaceId, bool setRoom = true);
|
||||||
*
|
|
||||||
* Should be used to figure out what space to switch to after a room change.
|
|
||||||
*
|
|
||||||
* @return The Space ID that the currently set room should be displayed as part of. (or "DM" for DM and "" for Home)
|
|
||||||
*/
|
|
||||||
QString findSpaceIdForCurrentRoom() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Sets the current space.
|
|
||||||
*
|
|
||||||
* @param spaceId The ID of the space, "DM" for direct messages or an empty string for Home.
|
|
||||||
* @param goToLastUsedRoom If true, we will navigate to the last opened room in this space.
|
|
||||||
*/
|
|
||||||
void setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom = true);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Resolve a user URI.
|
* @brief Resolve a user URI.
|
||||||
|
|||||||
@@ -286,6 +286,8 @@ QQC2.Control {
|
|||||||
quickFormatBar.selectionStart = selectionStart;
|
quickFormatBar.selectionStart = selectionStart;
|
||||||
quickFormatBar.selectionEnd = selectionEnd;
|
quickFormatBar.selectionEnd = selectionEnd;
|
||||||
quickFormatBar.open();
|
quickFormatBar.open();
|
||||||
|
} else if (quickFormatBar.visible) {
|
||||||
|
quickFormatBar.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ QQC2.Popup {
|
|||||||
padding: 2
|
padding: 2
|
||||||
|
|
||||||
implicitHeight: Kirigami.Units.gridUnit * 20 + 2 * padding
|
implicitHeight: Kirigami.Units.gridUnit * 20 + 2 * padding
|
||||||
width: Math.min(contentItem.categoryIconSize * 11 + 2 * padding, QQC2.ApplicationWindow.window?.width)
|
width: Math.min(contentItem.categoryIconSize * 11 + 2 * padding, QQC2.ApplicationWindow.window.width)
|
||||||
contentItem: EmojiPicker {
|
contentItem: EmojiPicker {
|
||||||
id: emojiPicker
|
id: emojiPicker
|
||||||
height: 400
|
height: 400
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ ColumnLayout {
|
|||||||
id: quickReactions
|
id: quickReactions
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
model: ["👍", "👎", "😄", "🎉", "😕", "❤️", "🚀", "👀"]
|
model: ["👍", "👎", "😄", "🎉", "😕", "❤", "🚀", "👀"]
|
||||||
|
|
||||||
delegate: EmojiDelegate {
|
delegate: EmojiDelegate {
|
||||||
required property string modelData
|
required property string modelData
|
||||||
|
|||||||
@@ -21,12 +21,6 @@ FormCard.FormCard {
|
|||||||
|
|
||||||
onToggled: NeoChatConfig.threads = checked
|
onToggled: NeoChatConfig.threads = checked
|
||||||
}
|
}
|
||||||
FormCard.FormCheckDelegate {
|
|
||||||
text: i18nc("@option:check Enable the matrix 'secret backup' feature", "Secret Backup")
|
|
||||||
checked: NeoChatConfig.secretBackup
|
|
||||||
|
|
||||||
onToggled: NeoChatConfig.secretBackup = checked
|
|
||||||
}
|
|
||||||
FormCard.FormCheckDelegate {
|
FormCard.FormCheckDelegate {
|
||||||
text: i18nc("@option:check Enable the matrix feature to add a phone number as a third party ID", "Add phone numbers as 3PIDs")
|
text: i18nc("@option:check Enable the matrix feature to add a phone number as a third party ID", "Add phone numbers as 3PIDs")
|
||||||
checked: NeoChatConfig.phone3PId
|
checked: NeoChatConfig.phone3PId
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ target_sources(LibNeoChat PRIVATE
|
|||||||
events/imagepackevent.cpp
|
events/imagepackevent.cpp
|
||||||
events/pollevent.cpp
|
events/pollevent.cpp
|
||||||
jobs/neochatgetcommonroomsjob.cpp
|
jobs/neochatgetcommonroomsjob.cpp
|
||||||
|
jobs/neochatreportroomjob.cpp
|
||||||
|
jobs/neochatreportuserjob.cpp
|
||||||
models/actionsmodel.cpp
|
models/actionsmodel.cpp
|
||||||
models/completionmodel.cpp
|
models/completionmodel.cpp
|
||||||
models/completionproxymodel.cpp
|
models/completionproxymodel.cpp
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include "chatbarcache.h"
|
#include "chatbarcache.h"
|
||||||
|
|
||||||
|
#include <QMimeData>
|
||||||
|
|
||||||
|
#include <KUrlMimeData>
|
||||||
|
|
||||||
#include <Quotient/roommember.h>
|
#include <Quotient/roommember.h>
|
||||||
|
|
||||||
#include "eventhandler.h"
|
#include "eventhandler.h"
|
||||||
@@ -295,4 +299,17 @@ void ChatBarCache::clearCache()
|
|||||||
clearRelations();
|
clearRelations();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ChatBarCache::drop(QList<QUrl> u, const QString &transferPortal)
|
||||||
|
{
|
||||||
|
QMimeData mimeData;
|
||||||
|
mimeData.setUrls(u);
|
||||||
|
if (!transferPortal.isEmpty()) {
|
||||||
|
mimeData.setData(u"application/vnd.portal.filetransfer"_s, transferPortal.toLatin1());
|
||||||
|
}
|
||||||
|
auto urls = KUrlMimeData::urlsFromMimeData(&mimeData);
|
||||||
|
if (urls.size() > 0) {
|
||||||
|
setAttachmentPath(urls[0].toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#include "moc_chatbarcache.cpp"
|
#include "moc_chatbarcache.cpp"
|
||||||
|
|||||||
@@ -198,6 +198,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
Q_INVOKABLE void postMessage();
|
Q_INVOKABLE void postMessage();
|
||||||
|
|
||||||
|
Q_INVOKABLE void drop(QList<QUrl> urls, const QString &transferPortal);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void textChanged();
|
void textChanged();
|
||||||
void relationIdChanged(const QString &oldEventId, const QString &newEventId);
|
void relationIdChanged(const QString &oldEventId, const QString &newEventId);
|
||||||
|
|||||||
@@ -389,9 +389,9 @@ QString EventHandler::getBody(const NeoChatRoom *room, const Quotient::RoomEvent
|
|||||||
return i18n("left the room");
|
return i18n("left the room");
|
||||||
}
|
}
|
||||||
if (const auto &reason = e.contentJson()["reason"_L1].toString().toHtmlEscaped(); !reason.isEmpty()) {
|
if (const auto &reason = e.contentJson()["reason"_L1].toString().toHtmlEscaped(); !reason.isEmpty()) {
|
||||||
return i18n("has put %1 out of the room: %2", subjectName, reason);
|
return i18n("has removed %1 from the room: %2", subjectName, reason);
|
||||||
}
|
}
|
||||||
return i18n("has put %1 out of the room", subjectName);
|
return i18n("has removed %1 from the room", subjectName);
|
||||||
case Membership::Ban:
|
case Membership::Ban:
|
||||||
if (e.senderId() != e.userId()) {
|
if (e.senderId() != e.userId()) {
|
||||||
if (e.reason().isEmpty()) {
|
if (e.reason().isEmpty()) {
|
||||||
|
|||||||
14
src/libneochat/jobs/neochatreportroomjob.cpp
Normal file
14
src/libneochat/jobs/neochatreportroomjob.cpp
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "neochatreportroomjob.h"
|
||||||
|
|
||||||
|
using namespace Quotient;
|
||||||
|
|
||||||
|
NeochatReportRoomJob::NeochatReportRoomJob(const QString &userId, const QString &reason)
|
||||||
|
: BaseJob(HttpVerb::Post, u"ReportRoomJob"_s, makePath(" /_matrix/client/v3/", userId, "/report"))
|
||||||
|
{
|
||||||
|
QJsonObject _dataJson;
|
||||||
|
addParam<IfNotEmpty>(_dataJson, "reason"_L1, reason);
|
||||||
|
setRequestData({_dataJson});
|
||||||
|
}
|
||||||
13
src/libneochat/jobs/neochatreportroomjob.h
Normal file
13
src/libneochat/jobs/neochatreportroomjob.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Quotient/jobs/basejob.h>
|
||||||
|
|
||||||
|
// TODO: Remove once libQuotient updates to Matrix API v1.14
|
||||||
|
class NeochatReportRoomJob : public Quotient::BaseJob
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit NeochatReportRoomJob(const QString &roomId, const QString &reason);
|
||||||
|
};
|
||||||
14
src/libneochat/jobs/neochatreportuserjob.cpp
Normal file
14
src/libneochat/jobs/neochatreportuserjob.cpp
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "neochatreportuserjob.h"
|
||||||
|
|
||||||
|
using namespace Quotient;
|
||||||
|
|
||||||
|
NeochatReportUserJob::NeochatReportUserJob(const QString &userId, const QString &reason)
|
||||||
|
: BaseJob(HttpVerb::Post, u"ReportUserJob"_s, makePath("/_matrix/client/v3/users/", userId, "/report"))
|
||||||
|
{
|
||||||
|
QJsonObject _dataJson;
|
||||||
|
addParam<IfNotEmpty>(_dataJson, "reason"_L1, reason);
|
||||||
|
setRequestData({_dataJson});
|
||||||
|
}
|
||||||
13
src/libneochat/jobs/neochatreportuserjob.h
Normal file
13
src/libneochat/jobs/neochatreportuserjob.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Quotient/jobs/basejob.h>
|
||||||
|
|
||||||
|
// TODO: Remove once libQuotient updates to Matrix API v1.14
|
||||||
|
class NeochatReportUserJob : public Quotient::BaseJob
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit NeochatReportUserJob(const QString &userId, const QString &reason);
|
||||||
|
};
|
||||||
@@ -59,7 +59,7 @@ QList<ActionsModel::Action> actions{
|
|||||||
Action{
|
Action{
|
||||||
u"shrug"_s,
|
u"shrug"_s,
|
||||||
[](const QString &message, NeoChatRoom *, ChatBarCache *) {
|
[](const QString &message, NeoChatRoom *, ChatBarCache *) {
|
||||||
return u"¯\\\\\\_(ツ)\\_/¯ %1"_s.arg(message);
|
return u"¯\\\\_(ツ)_/¯ %1"_s.arg(message);
|
||||||
},
|
},
|
||||||
Quotient::RoomMessageEvent::MsgType::Text,
|
Quotient::RoomMessageEvent::MsgType::Text,
|
||||||
kli18n("<message>"),
|
kli18n("<message>"),
|
||||||
|
|||||||
@@ -118,10 +118,8 @@ void RoomListModel::connectRoomSignals(NeoChatRoom *room)
|
|||||||
connect(room, &Room::displaynameChanged, this, [this, room] {
|
connect(room, &Room::displaynameChanged, this, [this, room] {
|
||||||
refresh(room, {DisplayNameRole});
|
refresh(room, {DisplayNameRole});
|
||||||
});
|
});
|
||||||
connect(room, &Room::changed, this, [this, room](Room::Changes changes) {
|
connect(room, &Room::unreadStatsChanged, this, [this, room] {
|
||||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
refresh(room, {ContextNotificationCountRole, HasHighlightNotificationsRole, NotificationCountRole});
|
||||||
refresh(room, {ContextNotificationCountRole, HasHighlightNotificationsRole, NotificationCountRole});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
connect(room, &Room::notificationCountChanged, this, [this, room] {
|
connect(room, &Room::notificationCountChanged, this, [this, room] {
|
||||||
refresh(room);
|
refresh(room);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <QImageReader>
|
#include <QImageReader>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
|
|
||||||
|
#include "jobs/neochatreportuserjob.h"
|
||||||
#include "neochatroom.h"
|
#include "neochatroom.h"
|
||||||
#include "spacehierarchycache.h"
|
#include "spacehierarchycache.h"
|
||||||
|
|
||||||
@@ -19,6 +20,7 @@
|
|||||||
#include <Quotient/csapi/profile.h>
|
#include <Quotient/csapi/profile.h>
|
||||||
#include <Quotient/csapi/registration.h>
|
#include <Quotient/csapi/registration.h>
|
||||||
#include <Quotient/csapi/versions.h>
|
#include <Quotient/csapi/versions.h>
|
||||||
|
#include <Quotient/e2ee/sssshandler.h>
|
||||||
#include <Quotient/jobs/downloadfilejob.h>
|
#include <Quotient/jobs/downloadfilejob.h>
|
||||||
#include <Quotient/qt_connection_util.h>
|
#include <Quotient/qt_connection_util.h>
|
||||||
#include <Quotient/room.h>
|
#include <Quotient/room.h>
|
||||||
@@ -75,37 +77,31 @@ void NeoChatConnection::connectSignals()
|
|||||||
Q_EMIT directChatInvitesChanged();
|
Q_EMIT directChatInvitesChanged();
|
||||||
for (const auto &chatId : additions) {
|
for (const auto &chatId : additions) {
|
||||||
if (const auto chat = room(chatId)) {
|
if (const auto chat = room(chatId)) {
|
||||||
connect(chat, &Room::changed, this, [this](Room::Changes changes) {
|
connect(chat, &Room::unreadStatsChanged, this, [this]() {
|
||||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
refreshBadgeNotificationCount();
|
||||||
refreshBadgeNotificationCount();
|
Q_EMIT directChatNotificationsChanged();
|
||||||
Q_EMIT directChatNotificationsChanged();
|
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const auto &chatId : removals) {
|
for (const auto &chatId : removals) {
|
||||||
if (const auto chat = room(chatId)) {
|
if (const auto chat = room(chatId)) {
|
||||||
disconnect(chat, &Room::changed, this, nullptr);
|
disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
||||||
if (room->isDirectChat()) {
|
if (room->isDirectChat()) {
|
||||||
connect(room, &Room::changed, this, [this](Room::Changes changes) {
|
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
Q_EMIT directChatNotificationsChanged();
|
||||||
Q_EMIT directChatNotificationsChanged();
|
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Q_EMIT roomInvitesChanged();
|
Q_EMIT roomInvitesChanged();
|
||||||
connect(room, &Room::changed, this, [this](Room::Changes changes) {
|
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
refreshBadgeNotificationCount();
|
||||||
refreshBadgeNotificationCount();
|
Q_EMIT homeNotificationsChanged();
|
||||||
Q_EMIT homeNotificationsChanged();
|
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
||||||
@@ -166,6 +162,10 @@ void NeoChatConnection::refreshBadgeNotificationCount()
|
|||||||
for (const auto &r : allRooms()) {
|
for (const auto &r : allRooms()) {
|
||||||
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||||
count += room->contextAwareNotificationCount();
|
count += room->contextAwareNotificationCount();
|
||||||
|
|
||||||
|
if (room->joinState() == JoinState::Invite) {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,4 +576,36 @@ bool NeoChatConnection::isVerifiedSession() const
|
|||||||
return isVerifiedDevice(userId(), deviceId());
|
return isVerifiedDevice(userId(), deviceId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NeoChatConnection::unlockSSSS(const QString &secret)
|
||||||
|
{
|
||||||
|
auto handler = new SSSSHandler();
|
||||||
|
handler->setConnection(this);
|
||||||
|
connect(handler, &SSSSHandler::error, this, [secret, handler, this]() {
|
||||||
|
disconnect(handler, &SSSSHandler::error, this, nullptr);
|
||||||
|
if (!secret.isEmpty()) {
|
||||||
|
connect(handler, &SSSSHandler::error, this, [handler, this]() {
|
||||||
|
Q_EMIT keyBackupError();
|
||||||
|
delete handler;
|
||||||
|
});
|
||||||
|
handler->unlockSSSSWithPassphrase(secret);
|
||||||
|
} else {
|
||||||
|
Q_EMIT keyBackupError();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
connect(handler, &SSSSHandler::keyBackupUnlocked, this, [handler, this]() {
|
||||||
|
Q_EMIT keyBackupUnlocked();
|
||||||
|
connect(handler, &SSSSHandler::finished, handler, &SSSSHandler::deleteLater);
|
||||||
|
});
|
||||||
|
if (secret.isEmpty()) {
|
||||||
|
handler->unlockSSSSFromCrossSigning();
|
||||||
|
} else {
|
||||||
|
handler->unlockSSSSFromSecurityKey(secret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void NeoChatConnection::reportUser(const QString &userId, const QString &reason)
|
||||||
|
{
|
||||||
|
callApi<NeochatReportUserJob>(userId, reason);
|
||||||
|
}
|
||||||
|
|
||||||
#include "moc_neochatconnection.cpp"
|
#include "moc_neochatconnection.cpp"
|
||||||
|
|||||||
@@ -222,6 +222,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool isVerifiedSession() const;
|
bool isVerifiedSession() const;
|
||||||
|
|
||||||
|
Q_INVOKABLE void unlockSSSS(const QString &secret);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Report a user.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void reportUser(const QString &userId, const QString &reason);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void globalUrlPreviewEnabledChanged();
|
void globalUrlPreviewEnabledChanged();
|
||||||
void labelChanged();
|
void labelChanged();
|
||||||
@@ -259,6 +266,9 @@ Q_SIGNALS:
|
|||||||
*/
|
*/
|
||||||
void ownSessionVerified();
|
void ownSessionVerified();
|
||||||
|
|
||||||
|
void keyBackupUnlocked();
|
||||||
|
void keyBackupError();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool m_globalUrlPreviewDefault;
|
static bool m_globalUrlPreviewDefault;
|
||||||
static PushRuleAction::Action m_defaultAction;
|
static PushRuleAction::Action m_defaultAction;
|
||||||
|
|||||||
@@ -50,12 +50,12 @@
|
|||||||
#include "roomlastmessageprovider.h"
|
#include "roomlastmessageprovider.h"
|
||||||
#include "spacehierarchycache.h"
|
#include "spacehierarchycache.h"
|
||||||
#include "urlhelper.h"
|
#include "urlhelper.h"
|
||||||
|
#include "jobs/neochatreportroomjob.h"
|
||||||
|
|
||||||
#ifndef Q_OS_ANDROID
|
#ifndef Q_OS_ANDROID
|
||||||
#include <KIO/Job>
|
#include <KIO/Job>
|
||||||
#include <KIO/JobTracker>
|
#include <KIO/JobTracker>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <KJobTrackerInterface>
|
#include <KJobTrackerInterface>
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
|
|
||||||
@@ -346,6 +346,10 @@ void NeoChatRoom::forget()
|
|||||||
|
|
||||||
void NeoChatRoom::sendTypingNotification(bool isTyping)
|
void NeoChatRoom::sendTypingNotification(bool isTyping)
|
||||||
{
|
{
|
||||||
|
// During the chatbar setup sequence, this may get called while we're still initializing
|
||||||
|
if (localMember().isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
connection()->callApi<SetTypingJob>(BackgroundRequest, localMember().id(), id(), isTyping, 10000);
|
connection()->callApi<SetTypingJob>(BackgroundRequest, localMember().id(), id(), isTyping, 10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1181,10 +1185,7 @@ void NeoChatRoom::loadPinnedMessage()
|
|||||||
connection()->callApi<GetOneRoomEventJob>(id(), mostRecentEventId).then([this](const auto &job) {
|
connection()->callApi<GetOneRoomEventJob>(id(), mostRecentEventId).then([this](const auto &job) {
|
||||||
auto event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
auto event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
||||||
if (auto encEv = eventCast<EncryptedEvent>(event.get())) {
|
if (auto encEv = eventCast<EncryptedEvent>(event.get())) {
|
||||||
auto decryptedMessage = decryptMessage(*encEv);
|
event = decryptMessage(*encEv);
|
||||||
if (decryptedMessage) {
|
|
||||||
event = std::move(decryptedMessage);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
m_pinnedMessage = EventHandler::richBody(this, event.get());
|
m_pinnedMessage = EventHandler::richBody(this, event.get());
|
||||||
Q_EMIT pinnedMessageChanged();
|
Q_EMIT pinnedMessageChanged();
|
||||||
@@ -1652,12 +1653,6 @@ void NeoChatRoom::downloadEventFromServer(const QString &eventId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
event_ptr_tt<RoomEvent> event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
event_ptr_tt<RoomEvent> event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
||||||
if (auto encEv = eventCast<EncryptedEvent>(event.get())) {
|
|
||||||
auto decryptedEvent = decryptMessage(*encEv);
|
|
||||||
if (decryptedEvent) {
|
|
||||||
event = std::move(decryptedEvent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m_extraEvents.push_back(std::move(event));
|
m_extraEvents.push_back(std::move(event));
|
||||||
Q_EMIT extraEventLoaded(eventId);
|
Q_EMIT extraEventLoaded(eventId);
|
||||||
},
|
},
|
||||||
@@ -1843,4 +1838,9 @@ QString NeoChatRoom::pinnedMessage() const
|
|||||||
return m_pinnedMessage;
|
return m_pinnedMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NeoChatRoom::report(const QString &reason)
|
||||||
|
{
|
||||||
|
connection()->callApi<NeochatReportRoomJob>(id(), reason);
|
||||||
|
}
|
||||||
|
|
||||||
#include "moc_neochatroom.cpp"
|
#include "moc_neochatroom.cpp"
|
||||||
|
|||||||
@@ -622,6 +622,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
QString pinnedMessage() const;
|
QString pinnedMessage() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Send a report about this room.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void report(const QString &reason);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_visible = false;
|
bool m_visible = false;
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ ColumnLayout {
|
|||||||
/**
|
/**
|
||||||
* @brief The canonical alias of the room, if it exists. Otherwise falls back to the first available alias.
|
* @brief The canonical alias of the room, if it exists. Otherwise falls back to the first available alias.
|
||||||
*/
|
*/
|
||||||
readonly property string roomAlias: room?.aliases[0] ?? ""
|
readonly property var roomAlias: room.aliases[0]
|
||||||
|
|
||||||
spacing: 0
|
Layout.fillWidth: true
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ void SpaceHierarchyCache::cacheSpaceHierarchy()
|
|||||||
Qt::SingleShotConnection);
|
Qt::SingleShotConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(neoChatRoom, &NeoChatRoom::changed, this, [this, neoChatRoom](NeoChatRoom::Changes changes) {
|
connect(neoChatRoom, &NeoChatRoom::unreadStatsChanged, this, [this, neoChatRoom]() {
|
||||||
if (neoChatRoom != nullptr && (changes & (NeoChatRoom::Change::UnreadStats | NeoChatRoom::Change::Highlights))) {
|
if (neoChatRoom != nullptr) {
|
||||||
const auto parents = parentSpaces(neoChatRoom->id());
|
const auto parents = parentSpaces(neoChatRoom->id());
|
||||||
if (parents.count() > 0) {
|
if (parents.count() > 0) {
|
||||||
Q_EMIT spaceNotifcationCountChanged(parents);
|
Q_EMIT spaceNotifcationCountChanged(parents);
|
||||||
|
|||||||
@@ -121,6 +121,13 @@ QQC2.Control {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TapHandler {
|
||||||
|
enabled: root.time.toString() !== "Invalid Date"
|
||||||
|
acceptedButtons: Qt.LeftButton
|
||||||
|
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad | PointerDevice.Stylus
|
||||||
|
onTapped: RoomManager.maximizeCode(root.author, root.time, root.display, root.componentAttributes.class)
|
||||||
|
}
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
acceptedDevices: PointerDevice.TouchScreen
|
acceptedDevices: PointerDevice.TouchScreen
|
||||||
onLongPressed: RoomManager.viewEventMenu(root.eventId, root.Message.room, root.Message.selectedText, root.Message.hoveredLink);
|
onLongPressed: RoomManager.viewEventMenu(root.eventId, root.Message.room, root.Message.selectedText, root.Message.hoveredLink);
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ Item {
|
|||||||
*/
|
*/
|
||||||
property var contentMaxHeight: undefined
|
property var contentMaxHeight: undefined
|
||||||
|
|
||||||
|
readonly property alias _private: _private
|
||||||
|
|
||||||
implicitWidth: mediaSizeHelper.currentSize.width
|
implicitWidth: mediaSizeHelper.currentSize.width
|
||||||
implicitHeight: mediaSizeHelper.currentSize.height
|
implicitHeight: mediaSizeHelper.currentSize.height
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,9 @@ Flow {
|
|||||||
*/
|
*/
|
||||||
required property ReactionModel reactionModel
|
required property ReactionModel reactionModel
|
||||||
|
|
||||||
// HACK: We do not set Layout properties here, see BUG 504344 for the crash it caused.
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
Layout.maximumWidth: Message.maxContentWidth
|
||||||
|
|
||||||
spacing: Kirigami.Units.smallSpacing
|
spacing: Kirigami.Units.smallSpacing
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ RowLayout {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
implicitWidth: Kirigami.Units.smallSpacing
|
implicitWidth: Kirigami.Units.smallSpacing
|
||||||
color: root.replyContentModel.author?.color ?? Kirigami.Theme.highlightColor
|
color: root.replyContentModel.author.color
|
||||||
radius: Kirigami.Units.cornerRadius
|
radius: Kirigami.Units.cornerRadius
|
||||||
}
|
}
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ QSize MediaSizeHelper::currentSize() const
|
|||||||
if (height > heightLimit()) {
|
if (height > heightLimit()) {
|
||||||
return QSize(qRound(heightLimit() * aspectRatio()), qRound(heightLimit()));
|
return QSize(qRound(heightLimit() * aspectRatio()), qRound(heightLimit()));
|
||||||
}
|
}
|
||||||
|
// TODO: NO
|
||||||
|
if (qIsNaN(width) || qIsNaN(height)) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
return QSize(qRound(width), qRound(height));
|
return QSize(qRound(width), qRound(height));
|
||||||
} else {
|
} else {
|
||||||
qreal height = std::min(heightLimit(), resolvedMediaHeight());
|
qreal height = std::min(heightLimit(), resolvedMediaHeight());
|
||||||
|
|||||||
@@ -269,8 +269,6 @@ void EventMessageContentModel::resetModel()
|
|||||||
updateItineraryModel();
|
updateItineraryModel();
|
||||||
|
|
||||||
Q_EMIT componentsUpdated();
|
Q_EMIT componentsUpdated();
|
||||||
// We need QML to re-evaluate author (for example, reply colors) if it was previously null.
|
|
||||||
Q_EMIT authorChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventMessageContentModel::resetContent(bool isEditing, bool isThreading)
|
void EventMessageContentModel::resetContent(bool isEditing, bool isThreading)
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ QDateTime MessageContentModel::time() const
|
|||||||
QString MessageContentModel::timeString() const
|
QString MessageContentModel::timeString() const
|
||||||
{
|
{
|
||||||
return time().toLocalTime().toString(u"hh:mm"_s);
|
return time().toLocalTime().toString(u"hh:mm"_s);
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MessageContentModel::authorId() const
|
QString MessageContentModel::authorId() const
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user