Compare commits
90 Commits
work/redst
...
v25.12.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc0d1aff35 | ||
|
|
bc594ec8a2 | ||
|
|
2a7f0b406c | ||
|
|
c9f685a733 | ||
|
|
5be43575fc | ||
|
|
558519f355 | ||
|
|
f83e2e2677 | ||
|
|
4c4f406c41 | ||
|
|
2f8a873202 | ||
|
|
78b3cfe916 | ||
|
|
0bc529da2d | ||
|
|
6ad6121dfa | ||
|
|
7b5b7a67ae | ||
|
|
59c8b82bc2 | ||
|
|
c6aec89b61 | ||
|
|
2ef3fd9d6c | ||
|
|
e64b6033f3 | ||
|
|
82989e7ef2 | ||
|
|
ddf272ab2b | ||
|
|
4d4b44e011 | ||
|
|
a17d7e18fd | ||
|
|
1e78f119f1 | ||
|
|
b6a4b67c22 | ||
|
|
e965e1680f | ||
|
|
7d4cc7a5cf | ||
|
|
112b4b54e5 | ||
|
|
782f096f21 | ||
|
|
57e0f04086 | ||
|
|
a639011db6 | ||
|
|
26e7f3780c | ||
|
|
8c96d05799 | ||
|
|
bc6e22bc6d | ||
|
|
4371c3f7e5 | ||
|
|
b88ee65a4c | ||
|
|
033e865a27 | ||
|
|
75ba46e292 | ||
|
|
d492ed038a | ||
|
|
b29108a2f7 | ||
|
|
2790d430ae | ||
|
|
23f61fff36 | ||
|
|
254d105e35 | ||
|
|
6dde57a786 | ||
|
|
d803fcb874 | ||
|
|
90e70a9295 | ||
|
|
2090e4dc0e | ||
|
|
5ced491d54 | ||
|
|
e156d4da90 | ||
|
|
b3aa2abd89 | ||
|
|
7627d6d0e2 | ||
|
|
77da7e6c7d | ||
|
|
1e3ce9d6cd | ||
|
|
321561fd89 | ||
|
|
856bc7b713 | ||
|
|
10e9b8d8f8 | ||
|
|
9f1803c551 | ||
|
|
9260c92026 | ||
|
|
9c7030a5db | ||
|
|
909e20889e | ||
|
|
74f4c291a0 | ||
|
|
242a248bf3 | ||
|
|
dfb0bb75f4 | ||
|
|
3cefd4b1ef | ||
|
|
3f3ce6b421 | ||
|
|
73d910421a | ||
|
|
1da44f3ae3 | ||
|
|
08836010c6 | ||
|
|
13042d9ba6 | ||
|
|
0e4b52ee62 | ||
|
|
4c32280343 | ||
|
|
a2e540d6ef | ||
|
|
573c8925d2 | ||
|
|
6c0bd850b0 | ||
|
|
1da9719314 | ||
|
|
3cd5f3a1c6 | ||
|
|
b4108f2eef | ||
|
|
bb7de18341 | ||
|
|
7b8328fce6 | ||
|
|
aeee6570c0 | ||
|
|
780b9a6f9b | ||
|
|
0ba06882d1 | ||
|
|
ce131a53e5 | ||
|
|
e9421e28dd | ||
|
|
1c64a6b5f0 | ||
|
|
9b5200c344 | ||
|
|
5baf4ab823 | ||
|
|
58a72a08f2 | ||
|
|
c9b97d4d0d | ||
|
|
2a7d61c73b | ||
|
|
f55bd28e10 | ||
|
|
2a67861099 |
@@ -2,7 +2,7 @@
|
||||
"id": "org.kde.neochat",
|
||||
"branch": "master",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "6.10",
|
||||
"runtime-version": "6.9",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "neochat",
|
||||
"tags": [
|
||||
@@ -31,6 +31,19 @@
|
||||
"/share/ndk-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",
|
||||
"config-opts": [
|
||||
@@ -65,7 +78,6 @@
|
||||
"name": "olm",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": [
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
|
||||
"-DOLM_TESTS=OFF"
|
||||
],
|
||||
"sources": [
|
||||
@@ -172,8 +184,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://download.kde.org/stable/release-service/25.08.3/src/kunifiedpush-25.08.3.tar.xz",
|
||||
"sha256": "e8c924438d5359f0fa0930ab35111012076e3a0ff4e959d6929595571383320a",
|
||||
"url": "https://download.kde.org/stable/release-service/25.08.0/src/kunifiedpush-25.08.0.tar.xz",
|
||||
"sha256": "846db6ffc7d93f6afea7ce0d5a9f10b52792157ceb593856542279f4197f3518",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 8763,
|
||||
|
||||
@@ -10,6 +10,7 @@ Dependencies:
|
||||
'frameworks/ki18n': '@latest-kf6'
|
||||
'frameworks/kconfig': '@latest-kf6'
|
||||
'frameworks/syntax-highlighting': '@latest-kf6'
|
||||
'frameworks/kiconthemes': '@latest-kf6'
|
||||
'frameworks/kitemmodels': '@latest-kf6'
|
||||
'frameworks/kquickcharts': '@latest-kf6'
|
||||
'frameworks/knotifications': '@latest-kf6'
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# KDE Applications version, managed by release script.
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "26")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "03")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "25")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "12")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "2")
|
||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
||||
@@ -46,6 +46,10 @@ if (NOT ANDROID)
|
||||
include(KDEClangFormat)
|
||||
endif()
|
||||
|
||||
if(NEOCHAT_FLATPAK)
|
||||
include(cmake/Flatpak.cmake)
|
||||
endif()
|
||||
|
||||
set(QUOTIENT_FORCE_NAMESPACED_INCLUDES TRUE)
|
||||
|
||||
ecm_set_disabled_deprecation_versions(Qt 6.9.0 KF 6.17.0)
|
||||
@@ -55,7 +59,7 @@ ecm_setup_version(${PROJECT_VERSION}
|
||||
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 QuickTest)
|
||||
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE COMPONENTS Core Quick Gui QuickControls2 Multimedia Svg TextToSpeech WebView)
|
||||
set_package_properties(Qt6 PROPERTIES
|
||||
TYPE REQUIRED
|
||||
PURPOSE "Basic application components"
|
||||
@@ -65,7 +69,7 @@ if (QT_KNOWN_POLICY_QTP0004)
|
||||
qt_policy(SET QTP0004 NEW)
|
||||
endif ()
|
||||
|
||||
find_package(KF6 ${KF_MIN_VERSION} COMPONENTS Kirigami I18n Notifications Config CoreAddons Sonnet ItemModels ColorScheme)
|
||||
find_package(KF6 ${KF_MIN_VERSION} COMPONENTS Kirigami I18n Notifications Config CoreAddons Sonnet ItemModels ColorScheme IconThemes)
|
||||
set_package_properties(KF6 PROPERTIES
|
||||
TYPE REQUIRED
|
||||
PURPOSE "Basic application components"
|
||||
|
||||
@@ -9,21 +9,6 @@ target_link_libraries(neochat_server PUBLIC Qt::HttpServer QuotientQt6)
|
||||
|
||||
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(
|
||||
neochatroomtest.cpp
|
||||
LINK_LIBRARIES neochat Qt::Test
|
||||
@@ -119,14 +104,3 @@ ecm_add_test(
|
||||
LINK_LIBRARIES neochat Qt::Test neochat_server
|
||||
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<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);
|
||||
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)
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* 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,8 +12,6 @@
|
||||
#include <QSslKey>
|
||||
#include <QUuid>
|
||||
|
||||
#include <QBuffer>
|
||||
#include <QImage>
|
||||
#include <Quotient/networkaccessmanager.h>
|
||||
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
@@ -118,20 +116,6 @@ void Server::start()
|
||||
});
|
||||
|
||||
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;
|
||||
QFile key(QStringLiteral(DATA_DIR) + u"/localhost.key"_s);
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
14
cmake/Flatpak.cmake
Normal file
14
cmake/Flatpak.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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
|
||||
)
|
||||
|
||||
23
cmake/Flatpak/99-noto-mono-color-emoji.conf
Normal file
23
cmake/Flatpak/99-noto-mono-color-emoji.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
<?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,6 +193,7 @@
|
||||
<li xml:lang="ar">التصويت - MSC3381</li>
|
||||
<li xml:lang="ca">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="en-GB">Polls - MSC3381</li>
|
||||
<li xml:lang="eo">Enketoj - MSC3381</li>
|
||||
@@ -227,6 +228,7 @@
|
||||
<li xml:lang="ar">حزم الملصقات - MSC2545</li>
|
||||
<li xml:lang="ca">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="en-GB">Sticker Packs - MSC2545</li>
|
||||
<li xml:lang="eo">Glumark-Pakoj - MSC2545</li>
|
||||
@@ -320,6 +322,7 @@
|
||||
<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::PromotionalArt16x9">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/promoimage-1920x1080.png</value>
|
||||
<value key="KDE::supporters">Anonymous donor, Akseli</value>
|
||||
</custom>
|
||||
<launchable type="desktop-id">org.kde.neochat.desktop</launchable>
|
||||
<screenshots>
|
||||
@@ -487,6 +490,8 @@
|
||||
<content_attribute id="social-chat">intense</content_attribute>
|
||||
</content_rating>
|
||||
<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.08.3" date="2025-11-06"/>
|
||||
<release version="25.08.2" date="2025-10-09"/>
|
||||
|
||||
406
po/ar/neochat.po
406
po/ar/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
||||
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
||||
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
||||
@@ -25,127 +25,127 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:319
|
||||
#: src/app/controller.cpp:316
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:133
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:135
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136
|
||||
#: src/app/main.cpp:141
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:137
|
||||
#: src/app/main.cpp:142
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:143
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:139
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:155
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:152
|
||||
#: src/app/main.cpp:157
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:167
|
||||
#: src/app/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:168
|
||||
#: src/app/main.cpp:179
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:169
|
||||
#: src/app/main.cpp:180
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:171
|
||||
#: src/app/main.cpp:182
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:174
|
||||
#: src/app/main.cpp:185
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:184
|
||||
#: src/app/main.cpp:195
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
@@ -170,40 +170,40 @@ msgstr ""
|
||||
msgid "Reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#, kde-format
|
||||
msgid "Open NeoChat"
|
||||
msgstr ""
|
||||
@@ -244,7 +244,7 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Developer Tools"
|
||||
@@ -256,31 +256,31 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#: src/app/qml/AccountMenu.qml:84
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#: src/app/qml/InvitationView.qml:97
|
||||
#, kde-format
|
||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||
msgid "This user invited you to chat at %1."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#: src/app/qml/InvitationView.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#, kde-kuit-format
|
||||
msgctxt ""
|
||||
"@info:label Ensure you are referring to the same translation used for that "
|
||||
@@ -937,7 +937,7 @@ msgctxt "@title:dialog"
|
||||
msgid "Select a File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1027,63 +1027,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1167,19 +1167,13 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1187,43 +1181,67 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgid "Backup Password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#: 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:82
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1231,7 +1249,7 @@ msgid ""
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1379,38 +1397,6 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
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
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -1613,22 +1599,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:213
|
||||
#: src/app/roommanager.cpp:235
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:430
|
||||
#: src/app/roommanager.cpp:439
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:454
|
||||
#: src/app/roommanager.cpp:463
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:458
|
||||
#: src/app/roommanager.cpp:467
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr ""
|
||||
@@ -1709,7 +1695,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1911,13 +1897,19 @@ msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:25
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
||||
msgid "Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:31
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||
"party ID"
|
||||
msgid "Add phone numbers as 3PIDs"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#: src/devtools/FeatureFlagPage.qml:40
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2291,12 +2283,12 @@ msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room"
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3136,7 +3128,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3159,12 +3151,12 @@ msgstr ""
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3637,12 +3629,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3849,13 +3841,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#, kde-format
|
||||
msgctxt "%1 is the poll answer that had the most votes"
|
||||
msgid "The poll has ended. Top answer: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#: src/messagecontent/ReactionComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3890,7 +3882,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3901,18 +3893,18 @@ msgstr ""
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr ""
|
||||
@@ -3929,95 +3921,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4025,7 +4017,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
@@ -4081,42 +4073,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr ""
|
||||
@@ -4148,13 +4140,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4236,38 +4228,6 @@ msgstr ""
|
||||
|
||||
#: src/rooms/RoomContextMenu.qml:154
|
||||
#, 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"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
@@ -4331,13 +4291,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6928,19 +6888,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7008,31 +6968,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
403
po/az/neochat.po
403
po/az/neochat.po
File diff suppressed because it is too large
Load Diff
562
po/ca/neochat.po
562
po/ca/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2025-12-01 11:35+0100\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2025-11-10 11:43+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
"Language: ca@valencia\n"
|
||||
@@ -28,127 +28,127 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "Rebre les notificacions dels missatges nous"
|
||||
|
||||
#: src/app/controller.cpp:319
|
||||
#: src/app/controller.cpp:316
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Rebre les notificacions automàtiques"
|
||||
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:133
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "Xat a Matrix"
|
||||
|
||||
#: src/app/main.cpp:135
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2025 la comunitat KDE"
|
||||
|
||||
#: src/app/main.cpp:136
|
||||
#: src/app/main.cpp:141
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: src/app/main.cpp:137
|
||||
#: src/app/main.cpp:142
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:143
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "Nate Graham"
|
||||
|
||||
#: src/app/main.cpp:139
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "Mantenidor de la libQuotient"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Josep M. Ferrer"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "txemaq@gmail.com"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:155
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr "Una biblioteca Qt per a escriure clients multiplataforma per a Matrix"
|
||||
|
||||
#: src/app/main.cpp:152
|
||||
#: src/app/main.cpp:157
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (construïda amb %2)"
|
||||
|
||||
#: src/app/main.cpp:167
|
||||
#: src/app/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client per al protocol de comunicacions Matrix"
|
||||
|
||||
#: src/app/main.cpp:168
|
||||
#: src/app/main.cpp:179
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Implementa l'esquema d'URL «matrix:»"
|
||||
|
||||
#: src/app/main.cpp:169
|
||||
#: src/app/main.cpp:180
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr "Ignora tots els errors d'SSL, p. ex., certificats sense signar."
|
||||
|
||||
#: src/app/main.cpp:171
|
||||
#: src/app/main.cpp:182
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr "Substituïx una instància existent"
|
||||
|
||||
#: src/app/main.cpp:174
|
||||
#: src/app/main.cpp:185
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "Només s'utilitza en les proves automàtiques"
|
||||
|
||||
#: src/app/main.cpp:184
|
||||
#: src/app/main.cpp:195
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "Compartix un URL a Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Missatge encriptat"
|
||||
@@ -173,40 +173,40 @@ msgstr "Respon"
|
||||
msgid "Reply…"
|
||||
msgstr "Respon…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 vos ha convidat a la sala"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "Obri esta invitació en NeoChat"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "Rebutja"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr "Rebutja i ignora l'usuari"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#, kde-format
|
||||
msgid "Open NeoChat"
|
||||
msgstr "Obri NeoChat"
|
||||
@@ -247,7 +247,7 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "Obri les eines de desenvolupament"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Developer Tools"
|
||||
@@ -259,25 +259,25 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Secret Backup"
|
||||
msgstr "Obri una còpia de seguretat del secret"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#: src/app/qml/AccountMenu.qml:84
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr "Obri una còpia de seguretat de la clau"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "Verifica este dispositiu"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "Enviament de sol·licitud de verificació"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
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 "
|
||||
"dispositiu."
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
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."
|
||||
msgstr "%1 vos ha convidat en esta sala %2."
|
||||
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#: src/app/qml/InvitationView.qml:97
|
||||
#, kde-format
|
||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||
msgid "This user invited you to chat at %1."
|
||||
msgstr "Este usuari vos ha convidat al xat %1."
|
||||
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#: src/app/qml/InvitationView.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "Accepta la invitació"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "Rebutja la invitació"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "Bloqueja %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#, kde-kuit-format
|
||||
msgctxt ""
|
||||
"@info:label Ensure you are referring to the same translation used for that "
|
||||
@@ -950,7 +950,7 @@ msgctxt "@title:dialog"
|
||||
msgid "Select a File"
|
||||
msgstr "Trieu un fitxer"
|
||||
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1040,38 +1040,38 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr "Ignora"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr "Unix-te a una reunió de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr "Inicia una reunió de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr "No teniu permís per a iniciar reunions de Jitsi"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr "La sala conté missatges oficials del vostre servidor domèstic."
|
||||
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
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 "
|
||||
"xarxa."
|
||||
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Missatges fixats"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr "Us donem la benvinguda a NeoChat"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr "Trieu o uniu-vos a una per a començar"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1182,21 +1182,13 @@ msgctxt "@info"
|
||||
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>"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "Càrrega dels missatges encriptats"
|
||||
|
||||
#: 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
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1204,47 +1196,71 @@ msgstr "S'han restaurat les claus d'encriptació."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
"Desbloqueja utilitzant la clau de seguretat o la frase de pas de còpia de "
|
||||
"seguretat"
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr "La frase de seguretat no és correcta."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr "Desbloqueja utilitzant la frase de pas"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
"Si teniu una clau de seguretat o una frase de pas de còpia de seguretat per "
|
||||
"a este compte, introduïu-la a continuació o carregueu-la com a fitxer."
|
||||
"Si teniu una còpia de seguretat de la frase de pas per a este compte, "
|
||||
"introduïu-la a continuació."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clau de seguretat o frase de pas de còpia de seguretat:"
|
||||
msgid "Backup Password:"
|
||||
msgstr "Còpia de seguretat de la contrasenya:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Carrega des del fitxer"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#: 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:82
|
||||
#: 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
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
msgstr ""
|
||||
"Si teniu una clau de seguretat per a este compte, introduïu-la a continuació "
|
||||
"o carregueu-la com a fitxer."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr "Clau de seguretat:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Carrega des del fitxer"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "Desbloqueja a partir d'una signatura creuada"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1255,7 +1271,7 @@ msgstr ""
|
||||
"clau de còpia de seguretat des d'altres dispositius clicant damunt del botó "
|
||||
"de davall."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1403,38 +1419,6 @@ msgstr "Busca missatges de %1 a la sala"
|
||||
msgid "Copy link"
|
||||
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
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -1670,24 +1654,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr "Fet"
|
||||
|
||||
#: src/app/roommanager.cpp:213
|
||||
#: src/app/roommanager.cpp:235
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
"ID de Matrix amb forma incorrecte o buit<br />%1 no és cap identificador "
|
||||
"correcte de Matrix"
|
||||
|
||||
#: src/app/roommanager.cpp:430
|
||||
#: src/app/roommanager.cpp:439
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr "No s'ha pogut unir-se a %1:<br />%2"
|
||||
|
||||
#: src/app/roommanager.cpp:454
|
||||
#: src/app/roommanager.cpp:463
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "Heu sol·licitat unir-vos a «%1»"
|
||||
|
||||
#: src/app/roommanager.cpp:458
|
||||
#: src/app/roommanager.cpp:467
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "Ha fallat mentre se sol·licitava unir-vos a la sala<br />%1"
|
||||
@@ -1769,7 +1753,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "Envia un missatge…"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1977,13 +1961,19 @@ msgstr "Fils"
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:25
|
||||
#, 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 ""
|
||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||
"party ID"
|
||||
msgid "Add phone numbers as 3PIDs"
|
||||
msgstr "Afig els números de telèfon com a 3PID"
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#: src/devtools/FeatureFlagPage.qml:40
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2361,13 +2351,13 @@ msgstr "ha/n deixat la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr "s'ha eliminat %1 de la sala: %2"
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "ha posat %1 fora de la sala: %2"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr "s'ha eliminat %1 de la sala"
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr "ha posat %1 fora de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
#, kde-format
|
||||
@@ -3211,7 +3201,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3236,12 +3226,12 @@ msgstr "No s'ha pogut crear la sala: %1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "No s'ha pogut crear l'espai: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "L'informe s'ha enviat correctament."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3720,12 +3710,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia a dins del porta-retalls"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3936,13 +3926,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalitzat)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#, kde-format
|
||||
msgctxt "%1 is the poll answer that had the most votes"
|
||||
msgid "The poll has ended. Top answer: %1"
|
||||
msgstr "La votació ha finalitzat. Resposta guanyadora: %1"
|
||||
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#: src/messagecontent/ReactionComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3978,7 +3968,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3989,18 +3979,18 @@ msgstr "Ubicacions"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "No hi ha ubicacions compartides en esta sala."
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "Configureu la sala"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "Informació"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "Multimèdia"
|
||||
@@ -4017,95 +4007,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "Informació de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr "Accions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "Busca missatges"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr "Verifica l'usuari"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Elimina de les preferides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Afig a les preferides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr "Ubicacions compartides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Missatges fixats"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr "Inspecciona les dades de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr "Ix de l'espai…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Ix de la sala…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "Convida un usuari"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Convida un usuari a la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4113,7 +4103,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membre"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "No hi ha comptador de membres"
|
||||
@@ -4169,42 +4159,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr "Elimina el giny"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "Sales"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr "Busca sales"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "Mostra el menú"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "Busqueu els vostres amics"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "Busca d'amics"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "Crea una sala"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "Escaneja un codi QR"
|
||||
@@ -4236,13 +4226,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crea un espai"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Vos ha convidat al xat"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4324,38 +4314,6 @@ msgstr "Configureu la sala"
|
||||
|
||||
#: src/rooms/RoomContextMenu.qml:154
|
||||
#, 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"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Ix de la sala…"
|
||||
@@ -4421,13 +4379,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr "Busca en el directori d'amics"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "Reduïx %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -5946,7 +5904,7 @@ msgstr "Configureu el servidor intermediari"
|
||||
#: src/settings/NetworkProxyPage.qml:78
|
||||
#, kde-format
|
||||
msgid "Host"
|
||||
msgstr "Màquina"
|
||||
msgstr "Amfitrió"
|
||||
|
||||
#: src/settings/NetworkProxyPage.qml:91
|
||||
#, kde-format
|
||||
@@ -7083,19 +7041,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr "%1 ha dit %2"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr "Deixa de fixar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr "Fixa"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7165,31 +7123,31 @@ msgstr ""
|
||||
"Este és el començament del xat. No hi ha missatges històrics més enllà "
|
||||
"d'este punt."
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ves fins al primer missatge sense llegir"
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr "Ves fins al missatge carregat més antic"
|
||||
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ves fins a l'últim missatge"
|
||||
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrossegueu ací els elements per a compartir"
|
||||
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
512
po/cs/neochat.po
512
po/cs/neochat.po
File diff suppressed because it is too large
Load Diff
389
po/da/neochat.po
389
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
426
po/el/neochat.po
426
po/el/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
444
po/eo/neochat.po
444
po/eo/neochat.po
File diff suppressed because it is too large
Load Diff
374
po/es/neochat.po
374
po/es/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2025-12-02 01:39+0100\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2025-11-11 01:01+0100\n"
|
||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||
"Language: es\n"
|
||||
@@ -27,129 +27,129 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "Recibir notificaciones de nuevos mensajes"
|
||||
|
||||
#: src/app/controller.cpp:319
|
||||
#: src/app/controller.cpp:316
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Recepción de notificaciones push"
|
||||
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:133
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "Chat en Matrix"
|
||||
|
||||
#: src/app/main.cpp:135
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2025 La Comunidad KDE"
|
||||
|
||||
#: src/app/main.cpp:136
|
||||
#: src/app/main.cpp:141
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsable"
|
||||
|
||||
#: src/app/main.cpp:137
|
||||
#: src/app/main.cpp:142
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:143
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/app/main.cpp:139
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "Responsable de libQuotient"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Eloy Cuadra"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "ecuadra@eloihr.net"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:155
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Biblioteca Qt para la escritura de clientes multiplataforma para Matrix"
|
||||
|
||||
#: src/app/main.cpp:152
|
||||
#: src/app/main.cpp:157
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilado con %2)"
|
||||
|
||||
#: src/app/main.cpp:167
|
||||
#: src/app/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente para el protocolo de comunicaciones Matrix"
|
||||
|
||||
#: src/app/main.cpp:168
|
||||
#: src/app/main.cpp:179
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Permite el esquema de URL «matrix:»"
|
||||
|
||||
#: src/app/main.cpp:169
|
||||
#: src/app/main.cpp:180
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr ""
|
||||
"Ignorar todos los errores de SSL (por ejemplo, certificados sin firmar)."
|
||||
|
||||
#: src/app/main.cpp:171
|
||||
#: src/app/main.cpp:182
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr "Sustituir una instancia existente"
|
||||
|
||||
#: src/app/main.cpp:174
|
||||
#: src/app/main.cpp:185
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "Se usa solo para pruebas automáticas"
|
||||
|
||||
#: src/app/main.cpp:184
|
||||
#: src/app/main.cpp:195
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "Compartir una URL con Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Mensaje cifrado"
|
||||
@@ -174,40 +174,40 @@ msgstr "Responder"
|
||||
msgid "Reply…"
|
||||
msgstr "Responder…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 le ha invitado a una sala"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "Abrir esta invitación en NeoChat"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "Rechazar"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr "Rechazar e ignorar usuario"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#, kde-format
|
||||
msgid "Open NeoChat"
|
||||
msgstr "Abrir NeoChat"
|
||||
@@ -248,7 +248,7 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "Abrir las herramientas del desarrollador"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Developer Tools"
|
||||
@@ -260,32 +260,32 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Secret Backup"
|
||||
msgstr "Abrir copia de seguridad secreta"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#: src/app/qml/AccountMenu.qml:84
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr "Abrir copia de seguridad de la clave"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "Verificar este dispositivo"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "Solicitud de verificación enviada"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
"Para continuar, acepte la solicitud de verificación en otro dispositivo."
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
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."
|
||||
msgstr "%1 le ha invitado a esta sala el %2."
|
||||
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#: src/app/qml/InvitationView.qml:97
|
||||
#, kde-format
|
||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||
msgid "This user invited you to chat at %1."
|
||||
msgstr "Este usuario le ha invitado a chatear el %1."
|
||||
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#: src/app/qml/InvitationView.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "Aceptar invitación"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "Rechazar invitación"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "Bloquear a %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#, kde-kuit-format
|
||||
msgctxt ""
|
||||
"@info:label Ensure you are referring to the same translation used for that "
|
||||
@@ -949,7 +949,7 @@ msgctxt "@title:dialog"
|
||||
msgid "Select a File"
|
||||
msgstr "Seleccione un archivo"
|
||||
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1039,63 +1039,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr "Ignorar"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr "Unirme a una reunión de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr "Iniciar reunión de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr "No tiene permisos para iniciar reuniones de Jitsi"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr "Esta sala contiene mensajes oficiales de su servidor doméstico."
|
||||
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr "NeoChat no está conectado. Compruebe su conexión de red."
|
||||
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Mensajes fijados"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr "Bienvenido a NeoChat"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr "Seleccione o únase a una sala para empezar"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1179,19 +1179,13 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr "El URL compartido para la imagen es <a href='%1'>%1</a>"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "Cargar mensajes cifrados…"
|
||||
|
||||
#: 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
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1199,45 +1193,71 @@ msgstr "Claves de cifrado restauradas."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr "Desbloquear mediante clave de seguridad o contraseña de respaldo"
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr "La frase de seguridad no es correcta."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr "Desbloquear usando contraseña larga"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
"Si dispone de una clave de seguridad o de una contraseña de respaldo para "
|
||||
"esta cuenta, introdúzcala a continuación o envíela como archivo."
|
||||
"Si dispone de una contraseña de respaldo para esta cuenta, introdúzcala a "
|
||||
"continuación."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clave de seguridad o contraseña de respaldo:"
|
||||
msgid "Backup Password:"
|
||||
msgstr "Contraseña de respaldo:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Enviar un archivo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#: 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:82
|
||||
#: 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
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
msgstr ""
|
||||
"Si dispone de una clave de seguridad para esta cuenta, introdúzcala a "
|
||||
"continuación o envíela como archivo."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr "Clave de seguridad:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Enviar un archivo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "Desbloquear con firmado cruzado"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1247,7 +1267,7 @@ msgstr ""
|
||||
"Si ya había verificado este dispositivo anteriormente, puede probar a cargar "
|
||||
"la clave de respaldo desde otros dispositivos pulsando el botón inferior."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1395,38 +1415,6 @@ msgstr "Buscar mensajes de %1 en la sala"
|
||||
msgid "Copy link"
|
||||
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
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -1664,24 +1652,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr "Terminado"
|
||||
|
||||
#: src/app/roommanager.cpp:213
|
||||
#: src/app/roommanager.cpp:235
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
"Id de Matrix mal formada o vacía<br />%1 no es un identificador de Matrix "
|
||||
"correcto"
|
||||
|
||||
#: src/app/roommanager.cpp:430
|
||||
#: src/app/roommanager.cpp:439
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr "No se ha podido unir a %1:<br />%2"
|
||||
|
||||
#: src/app/roommanager.cpp:454
|
||||
#: src/app/roommanager.cpp:463
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "Ha solicitado unirse a «%1»"
|
||||
|
||||
#: src/app/roommanager.cpp:458
|
||||
#: src/app/roommanager.cpp:467
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "No se ha podido solicitar unirse a la sala<br />%1"
|
||||
@@ -1764,7 +1752,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "Enviar un mensaje…"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1972,13 +1960,19 @@ msgstr "Hilos"
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:25
|
||||
#, 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 ""
|
||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||
"party ID"
|
||||
msgid "Add phone numbers as 3PIDs"
|
||||
msgstr "Añadir números de teléfono como 3PID"
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#: src/devtools/FeatureFlagPage.qml:40
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2358,12 +2352,12 @@ msgstr "ha salido de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "ha echado a %1 de la sala: %2"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room"
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr "ha echado a %1 de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3204,7 +3198,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3229,12 +3223,12 @@ msgstr "La creación de la sala ha fallado: %1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "La creación del espacio ha fallado: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "La denuncia se ha enviado correctamente."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3712,12 +3706,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar en el portapapeles"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3928,13 +3922,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalizada)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#, kde-format
|
||||
msgctxt "%1 is the poll answer that had the most votes"
|
||||
msgid "The poll has ended. Top answer: %1"
|
||||
msgstr "La encuesta ha finalizado: Respuesta más elegida: %1"
|
||||
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#: src/messagecontent/ReactionComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3969,7 +3963,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volumen"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3980,18 +3974,18 @@ msgstr "Ubicaciones"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "No hay ubicaciones compartidas en esta sala."
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "Preferencias de la sala"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "Información"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "Multimedia"
|
||||
@@ -4008,95 +4002,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "Información de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr "Acciones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "Buscar mensajes"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr "Verificar usuario"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Eliminar de favoritas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a favoritas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensiones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensiones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr "Ubicaciones compartidas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Mensajes fijados"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr "Inspeccionar datos de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr "Salir del espacio…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Salir de la sala…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Miembros"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "Invitar a un usuario"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invitar usuario a la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4104,7 +4098,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 miembro"
|
||||
msgstr[1] "%1 miembros"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Sin contador de miembros"
|
||||
@@ -4160,42 +4154,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr "Eliminar widget"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "Salas"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr "Buscar salas"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "Mostrar el menú"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "Encontrar amigos"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "Encontrar amigos"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "Crear una sala"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "Escanear un código QR"
|
||||
@@ -4227,13 +4221,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crear un espacio"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Le ha invitado a chatear"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4315,38 +4309,6 @@ msgstr "Preferencias de la sala"
|
||||
|
||||
#: src/rooms/RoomContextMenu.qml:154
|
||||
#, 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"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Salir de la sala…"
|
||||
@@ -4410,13 +4372,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr "Buscar en el directorio de amigos"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "Contraer %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -7071,19 +7033,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr "%1 dijo %2"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr "No fijar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr "Fijar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7153,31 +7115,31 @@ msgstr ""
|
||||
"Este es el inicio del chat. No hay mensajes en el historial antes de este "
|
||||
"punto."
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Saltar al primer mensaje sin leer"
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr "Saltar al mensaje cargado más antiguo"
|
||||
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Saltar al último mensaje"
|
||||
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrastre elementos aquí para compartirlos"
|
||||
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
403
po/eu/neochat.po
403
po/eu/neochat.po
File diff suppressed because it is too large
Load Diff
668
po/fi/neochat.po
668
po/fi/neochat.po
File diff suppressed because it is too large
Load Diff
468
po/fr/neochat.po
468
po/fr/neochat.po
File diff suppressed because it is too large
Load Diff
7002
po/ga/neochat.po
Normal file
7002
po/ga/neochat.po
Normal file
File diff suppressed because it is too large
Load Diff
444
po/gl/neochat.po
444
po/gl/neochat.po
File diff suppressed because it is too large
Load Diff
410
po/he/neochat.po
410
po/he/neochat.po
File diff suppressed because it is too large
Load Diff
444
po/hi/neochat.po
444
po/hi/neochat.po
File diff suppressed because it is too large
Load Diff
491
po/hu/neochat.po
491
po/hu/neochat.po
File diff suppressed because it is too large
Load Diff
952
po/ia/neochat.po
952
po/ia/neochat.po
File diff suppressed because it is too large
Load Diff
420
po/id/neochat.po
420
po/id/neochat.po
File diff suppressed because it is too large
Load Diff
413
po/ie/neochat.po
413
po/ie/neochat.po
File diff suppressed because it is too large
Load Diff
426
po/it/neochat.po
426
po/it/neochat.po
File diff suppressed because it is too large
Load Diff
362
po/ja/neochat.po
362
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
||||
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
|
||||
"Language-Team: Japanese <kde-jp@kde.org>\n"
|
||||
@@ -22,127 +22,127 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/controller.cpp:319
|
||||
#: src/app/controller.cpp:316
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:133
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:135
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136
|
||||
#: src/app/main.cpp:141
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:137
|
||||
#: src/app/main.cpp:142
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:143
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:139
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:155
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:152
|
||||
#: src/app/main.cpp:157
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:167
|
||||
#: src/app/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:168
|
||||
#: src/app/main.cpp:179
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:169
|
||||
#: src/app/main.cpp:180
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:171
|
||||
#: src/app/main.cpp:182
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:174
|
||||
#: src/app/main.cpp:185
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:184
|
||||
#: src/app/main.cpp:195
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
@@ -167,40 +167,40 @@ msgstr ""
|
||||
msgid "Reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#, kde-format
|
||||
msgid "Open NeoChat"
|
||||
msgstr ""
|
||||
@@ -241,7 +241,7 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Developer Tools"
|
||||
@@ -253,31 +253,31 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#: src/app/qml/AccountMenu.qml:84
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#: src/app/qml/InvitationView.qml:97
|
||||
#, kde-format
|
||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||
msgid "This user invited you to chat at %1."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#: src/app/qml/InvitationView.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#, kde-kuit-format
|
||||
msgctxt ""
|
||||
"@info:label Ensure you are referring to the same translation used for that "
|
||||
@@ -934,7 +934,7 @@ msgctxt "@title:dialog"
|
||||
msgid "Select a File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1024,63 +1024,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1164,19 +1164,13 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1184,43 +1178,67 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgid "Backup Password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#: 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:82
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1228,7 +1246,7 @@ msgid ""
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1375,38 +1393,6 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
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
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -1609,22 +1595,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:213
|
||||
#: src/app/roommanager.cpp:235
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:430
|
||||
#: src/app/roommanager.cpp:439
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:454
|
||||
#: src/app/roommanager.cpp:463
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:458
|
||||
#: src/app/roommanager.cpp:467
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr ""
|
||||
@@ -1705,7 +1691,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1907,13 +1893,19 @@ msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:25
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
||||
msgid "Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:31
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||
"party ID"
|
||||
msgid "Add phone numbers as 3PIDs"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#: src/devtools/FeatureFlagPage.qml:40
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2286,12 +2278,12 @@ msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room"
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3131,7 +3123,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3154,12 +3146,12 @@ msgstr ""
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3632,12 +3624,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3840,13 +3832,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#, kde-format
|
||||
msgctxt "%1 is the poll answer that had the most votes"
|
||||
msgid "The poll has ended. Top answer: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#: src/messagecontent/ReactionComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3881,7 +3873,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3892,18 +3884,18 @@ msgstr ""
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr ""
|
||||
@@ -3920,102 +3912,102 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
@@ -4071,42 +4063,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr ""
|
||||
@@ -4138,13 +4130,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4226,38 +4218,6 @@ msgstr ""
|
||||
|
||||
#: src/rooms/RoomContextMenu.qml:154
|
||||
#, 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"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
@@ -4321,13 +4281,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6914,19 +6874,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -6993,31 +6953,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
404
po/ka/neochat.po
404
po/ka/neochat.po
File diff suppressed because it is too large
Load Diff
440
po/ko/neochat.po
440
po/ko/neochat.po
File diff suppressed because it is too large
Load Diff
407
po/lt/neochat.po
407
po/lt/neochat.po
File diff suppressed because it is too large
Load Diff
701
po/lv/neochat.po
701
po/lv/neochat.po
File diff suppressed because it is too large
Load Diff
409
po/nl/neochat.po
409
po/nl/neochat.po
File diff suppressed because it is too large
Load Diff
418
po/nn/neochat.po
418
po/nn/neochat.po
File diff suppressed because it is too large
Load Diff
400
po/pa/neochat.po
400
po/pa/neochat.po
File diff suppressed because it is too large
Load Diff
419
po/pl/neochat.po
419
po/pl/neochat.po
File diff suppressed because it is too large
Load Diff
418
po/pt/neochat.po
418
po/pt/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
412
po/ro/neochat.po
412
po/ro/neochat.po
File diff suppressed because it is too large
Load Diff
440
po/ru/neochat.po
440
po/ru/neochat.po
File diff suppressed because it is too large
Load Diff
444
po/sa/neochat.po
444
po/sa/neochat.po
File diff suppressed because it is too large
Load Diff
401
po/sk/neochat.po
401
po/sk/neochat.po
File diff suppressed because it is too large
Load Diff
417
po/sl/neochat.po
417
po/sl/neochat.po
File diff suppressed because it is too large
Load Diff
621
po/sv/neochat.po
621
po/sv/neochat.po
File diff suppressed because it is too large
Load Diff
627
po/ta/neochat.po
627
po/ta/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
405
po/tr/neochat.po
405
po/tr/neochat.po
File diff suppressed because it is too large
Load Diff
406
po/uk/neochat.po
406
po/uk/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2024-04-23 19:24\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -14,8 +14,8 @@ msgstr ""
|
||||
"X-Crowdin-Project: kdeorg\n"
|
||||
"X-Crowdin-Project-ID: 269464\n"
|
||||
"X-Crowdin-Language: zh-CN\n"
|
||||
"X-Crowdin-File: /kf6-trunk/messages/neochat/neochat.pot\n"
|
||||
"X-Crowdin-File-ID: 44721\n"
|
||||
"X-Crowdin-File: /kf6-stable/messages/neochat/neochat.pot\n"
|
||||
"X-Crowdin-File-ID: 49732\n"
|
||||
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
@@ -25,73 +25,73 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "接收新消息通知"
|
||||
|
||||
#: src/app/controller.cpp:319
|
||||
#: src/app/controller.cpp:316
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "正在接收推送通知"
|
||||
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:133
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "在 Matrix 上聊天"
|
||||
|
||||
#: src/app/main.cpp:135
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136
|
||||
#: src/app/main.cpp:141
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "维护人员"
|
||||
|
||||
#: src/app/main.cpp:137
|
||||
#: src/app/main.cpp:142
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:143
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/app/main.cpp:139
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:149
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral 的原作者"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "libQuotient 的维护者"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
@@ -99,7 +99,7 @@ msgstr ""
|
||||
"KDE China (中国), Guo Yunhe (郭云鹤), Yang Boyuan (杨博远), Coelacanthus, "
|
||||
"Tyson Tan (钛山), Gary Wang, Zhangzhi Hu"
|
||||
|
||||
#: src/app/main.cpp:146
|
||||
#: src/app/main.cpp:151
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
@@ -107,49 +107,49 @@ msgstr ""
|
||||
"kde-china@kde.org, i@guoyunhe.me, 073plan@gmail.com, coelacanthus@kde.org, "
|
||||
"tds00@qq.com, git@blumia.net, integral@member.fsf.org"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:155
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr "一个用于编写跨平台 Matrix 客户端的 Qt 库"
|
||||
|
||||
#: src/app/main.cpp:152
|
||||
#: src/app/main.cpp:157
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (使用 %2 构建)"
|
||||
|
||||
#: src/app/main.cpp:167
|
||||
#: src/app/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix 通信协议客户端"
|
||||
|
||||
#: src/app/main.cpp:168
|
||||
#: src/app/main.cpp:179
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "支持 matrix:URL 协议"
|
||||
|
||||
#: src/app/main.cpp:169
|
||||
#: src/app/main.cpp:180
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr "忽略所有 SSL 错误,例如未签名证书。"
|
||||
|
||||
#: src/app/main.cpp:171
|
||||
#: src/app/main.cpp:182
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:174
|
||||
#: src/app/main.cpp:185
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "仅用于自动测试"
|
||||
|
||||
#: src/app/main.cpp:184
|
||||
#: src/app/main.cpp:195
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "分享 URL 到 Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "加密的消息"
|
||||
@@ -174,40 +174,40 @@ msgstr "回复"
|
||||
msgid "Reply…"
|
||||
msgstr "回复…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 邀请您加入聊天室"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "在 NeoChat 中打开此邀请"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "拒绝"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr "拒绝并忽略用户"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#, kde-format
|
||||
msgid "Open NeoChat"
|
||||
msgstr "打开 NeoChat"
|
||||
@@ -248,7 +248,7 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Developer Tools"
|
||||
msgstr "显示开发者工具"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:200
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Developer Tools"
|
||||
@@ -260,35 +260,35 @@ msgctxt "@action:inmenu"
|
||||
msgid "Open Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#: src/app/qml/AccountMenu.qml:84
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "验证此设备"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "验证请求已发送"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Logout…"
|
||||
msgstr "注销…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountSwitchDialog.qml:30
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#: src/app/qml/InvitationView.qml:97
|
||||
#, kde-format
|
||||
msgctxt "@info:label This user invited you to chat at 'timestamp'"
|
||||
msgid "This user invited you to chat at %1."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#: src/app/qml/InvitationView.qml:112
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "接受邀请"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "拒绝邀请"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "屏蔽 %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#, kde-kuit-format
|
||||
msgctxt ""
|
||||
"@info:label Ensure you are referring to the same translation used for that "
|
||||
@@ -941,7 +941,7 @@ msgctxt "@title:dialog"
|
||||
msgid "Select a File"
|
||||
msgstr "选择文件"
|
||||
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1031,63 +1031,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr "忽略"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr "NeoChat 处于离线状态。请检查您的网络连接。"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1171,19 +1171,13 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr "此图像的分享 URL 为 <a href='%1'>%1</a>"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "加载您的加密消息"
|
||||
|
||||
#: 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
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1191,43 +1185,67 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr "使用密码解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
msgid "Backup Password:"
|
||||
msgstr "备份密码:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "从文件上传"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#: 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:82
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr "使用安全密钥解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
msgstr "如果您拥有此账户的安全密钥,请在下方输入或作为文件上传。"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "从文件上传"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "使用交叉签名解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1237,7 +1255,7 @@ msgstr ""
|
||||
"如果您以前曾验证过此设备,您可以通过点击下面的按钮来尝试从其他设备加载备份密"
|
||||
"钥。"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1384,38 +1402,6 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
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
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -1621,22 +1607,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:213
|
||||
#: src/app/roommanager.cpp:235
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:430
|
||||
#: src/app/roommanager.cpp:439
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:454
|
||||
#: src/app/roommanager.cpp:463
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "您请求加入 '%1'"
|
||||
|
||||
#: src/app/roommanager.cpp:458
|
||||
#: src/app/roommanager.cpp:467
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "加入聊天室 %1 失败"
|
||||
@@ -1717,7 +1703,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "发送一条消息..."
|
||||
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1920,13 +1906,19 @@ msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:25
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix 'secret backup' feature"
|
||||
msgid "Secret Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:31
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"@option:check Enable the matrix feature to add a phone number as a third "
|
||||
"party ID"
|
||||
msgid "Add phone numbers as 3PIDs"
|
||||
msgstr ""
|
||||
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#: src/devtools/FeatureFlagPage.qml:40
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2299,12 +2291,12 @@ msgstr "离开聊天室"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr ""
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "将 %1 移出了聊天室:%2"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has removed %1 from the room"
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3144,7 +3136,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3167,12 +3159,12 @@ msgstr "聊天室创建失败:%1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "空间创建失败:%1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "举报成功。"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3646,12 +3638,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "复制到剪贴板"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3854,13 +3846,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(已结束)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#, kde-format
|
||||
msgctxt "%1 is the poll answer that had the most votes"
|
||||
msgid "The poll has ended. Top answer: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#: src/messagecontent/ReactionComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3895,7 +3887,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3906,18 +3898,18 @@ msgstr "位置"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "此聊天室中没有共享位置。"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "聊天室设置"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "信息"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "媒体"
|
||||
@@ -3934,102 +3926,102 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "聊天室信息"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "搜索消息"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "成员"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "邀请用户"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "邀请用户到聊天室"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 位成员"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "无成员计数"
|
||||
@@ -4085,42 +4077,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "聊天室"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "显示菜单"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "查找好友"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "查找好友"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "创建聊天室"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "扫描二维码"
|
||||
@@ -4152,13 +4144,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "创建空间"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4240,38 +4232,6 @@ msgstr "聊天室设置"
|
||||
|
||||
#: src/rooms/RoomContextMenu.qml:154
|
||||
#, 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"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
@@ -4335,13 +4295,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "折叠 %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6932,19 +6892,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7011,31 +6971,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "跳转到第一条未读消息"
|
||||
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "跳转到最新消息"
|
||||
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "拖动项目到此处来分享"
|
||||
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -153,6 +153,7 @@ target_include_directories(neochat-app PRIVATE ${CMAKE_BINARY_DIR})
|
||||
|
||||
target_link_libraries(neochat-app PRIVATE
|
||||
neochat
|
||||
KF6::IconThemes
|
||||
)
|
||||
|
||||
ecm_add_app_icon(NEOCHAT_ICON ICONS ${CMAKE_SOURCE_DIR}/128-logo.png)
|
||||
|
||||
@@ -246,10 +246,7 @@ void Controller::initActiveConnection(NeoChatConnection *oldConnection, NeoChatC
|
||||
if (newConnection) {
|
||||
connect(newConnection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
|
||||
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();
|
||||
updateBadgeNotificationCount(newConnection->badgeNotificationCount());
|
||||
}
|
||||
Q_EMIT activeConnectionChanged(newConnection);
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <KWindowSystem>
|
||||
#endif
|
||||
|
||||
#include <KIconTheme>
|
||||
#include <KLocalizedQmlContext>
|
||||
#include <KLocalizedString>
|
||||
#include <KirigamiApp>
|
||||
@@ -102,6 +103,10 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
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
|
||||
QtWebView::initialize();
|
||||
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
|
||||
@@ -161,6 +166,12 @@ int main(int argc, char *argv[])
|
||||
Connection::setEncryptionDefault(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;
|
||||
|
||||
QCommandLineParser parser;
|
||||
|
||||
@@ -211,6 +211,10 @@
|
||||
<label>Enable threads</label>
|
||||
<default>false</default>
|
||||
</entry>
|
||||
<entry name="SecretBackup" type="bool">
|
||||
<label>Enable secret backup</label>
|
||||
<default>false</default>
|
||||
</entry>
|
||||
<entry name="Phone3PId" type="bool">
|
||||
<label>Enable add phone numbers as 3PIDs</label>
|
||||
<default>false</default>
|
||||
|
||||
@@ -216,12 +216,12 @@ void NotificationsManager::postNotification(NeoChatRoom *room,
|
||||
}
|
||||
});
|
||||
|
||||
notification->setTitle(room->displayName());
|
||||
|
||||
QString entry;
|
||||
if (sender == room->displayName()) {
|
||||
notification->setTitle(sender);
|
||||
if (room->isDirectChat()) {
|
||||
entry = text.toHtmlEscaped();
|
||||
} else {
|
||||
notification->setTitle(room->displayName());
|
||||
entry = i18n("%1: %2", sender, text.toHtmlEscaped());
|
||||
}
|
||||
|
||||
@@ -253,7 +253,9 @@ void NotificationsManager::postNotification(NeoChatRoom *room,
|
||||
notification->setReplyAction(std::move(replyAction));
|
||||
}
|
||||
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
}
|
||||
notification->sendEvent();
|
||||
}
|
||||
|
||||
@@ -347,7 +349,9 @@ void NotificationsManager::doPostInviteNotification(QPointer<NeoChatRoom> room)
|
||||
m_invitations.remove(room->id());
|
||||
});
|
||||
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
}
|
||||
|
||||
notification->sendEvent();
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@ KirigamiComponents.ConvergentContextMenu {
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:inmenu", "Open Secret Backup")
|
||||
icon.name: "unlock"
|
||||
visible: NeoChatConfig.secretBackup
|
||||
onTriggered: root.window.pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UnlockSSSSDialog'), {}, {
|
||||
title: i18nc("@title:window", "Open Key Backup")
|
||||
})
|
||||
|
||||
@@ -54,12 +54,6 @@ ColumnLayout {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
|
||||
Kirigami.Heading {
|
||||
text: root.currentRoom.displayName
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
|
||||
Kirigami.SelectableLabel {
|
||||
Layout.fillWidth: true
|
||||
font: Kirigami.Theme.smallFont
|
||||
@@ -67,7 +61,12 @@ ColumnLayout {
|
||||
visible: root.currentRoom && root.currentRoom.canonicalAlias
|
||||
text: root.currentRoom && root.currentRoom.canonicalAlias ? root.currentRoom.canonicalAlias : ""
|
||||
color: Kirigami.Theme.disabledTextColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
|
||||
Kirigami.Heading {
|
||||
text: root.currentRoom.displayName
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,45 +23,13 @@ Components.AlbumMaximizeComponent {
|
||||
*/
|
||||
required property NeoChatRoom currentRoom
|
||||
|
||||
readonly property string currentEventId: {
|
||||
const idx = (content as ListView).currentIndex;
|
||||
readonly property string currentEventId: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.EventIdRole)
|
||||
|
||||
if (idx === -1) {
|
||||
return ""
|
||||
}
|
||||
readonly property var currentAuthor: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.AuthorRole)
|
||||
|
||||
return model.data(model.index(idx, 0), TimelineMessageModel.EventIdRole)
|
||||
}
|
||||
readonly property var currentTime: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.TimeRole)
|
||||
|
||||
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)
|
||||
}
|
||||
readonly property var currentProgressInfo: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.ProgressInfoRole)
|
||||
|
||||
actions: [
|
||||
ShareAction {
|
||||
|
||||
@@ -22,7 +22,7 @@ Kirigami.SearchDialog {
|
||||
}
|
||||
|
||||
onAccepted: if (currentItem) {
|
||||
(currentItem as QQC2.ItemDelegate).clicked();
|
||||
(root.currentItem as RoomDelegate).clicked();
|
||||
}
|
||||
|
||||
onTextChanged: RoomManager.sortFilterRoomListModel.filterText = text
|
||||
|
||||
@@ -31,7 +31,7 @@ Kirigami.Page {
|
||||
Keys.onReturnPressed: event => {
|
||||
if (event.modifiers & Qt.ControlModifier) {
|
||||
root.accepted(reason.text);
|
||||
root.closeDialog();
|
||||
root.Kirigami.PageStack.closeDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,14 +52,14 @@ Kirigami.Page {
|
||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole
|
||||
onClicked: {
|
||||
root.accepted(reason.text);
|
||||
root.closeDialog();
|
||||
root.Kirigami.PageStack.closeDialog();
|
||||
}
|
||||
}
|
||||
QQC2.Button {
|
||||
icon.name: "dialog-cancel-symbolic"
|
||||
text: i18nc("@action", "Cancel")
|
||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole
|
||||
onClicked: root.closeDialog()
|
||||
onClicked: root.Kirigami.PageStack.closeDialog()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +75,14 @@ Kirigami.Page {
|
||||
focus: true
|
||||
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: [
|
||||
Kirigami.Action {
|
||||
id: jitsiMeetingAction
|
||||
@@ -113,7 +121,7 @@ Kirigami.Page {
|
||||
}
|
||||
},
|
||||
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"
|
||||
onTriggered: (root.QQC2.ApplicationWindow.window as Main).openRoomDrawer()
|
||||
}
|
||||
@@ -255,6 +263,7 @@ Kirigami.Page {
|
||||
id: timelineView
|
||||
messageFilterModel: root.messageFilterModel
|
||||
compactLayout: NeoChatConfig.compactLayout
|
||||
fileDropEnabled: !Controller.isFlatpak
|
||||
markReadCondition: NeoChatConfig.markReadCondition
|
||||
}
|
||||
}
|
||||
@@ -289,7 +298,7 @@ Kirigami.Page {
|
||||
|
||||
footer: Loader {
|
||||
id: chatBarLoader
|
||||
height: active ? (item as ChatBar).implicitHeight : 0
|
||||
height: active ? (item as ChatBar)?.implicitHeight : 0
|
||||
active: timelineViewLoader.active && !root.currentRoom.readOnly
|
||||
sourceComponent: ChatBar {
|
||||
id: chatBar
|
||||
@@ -349,7 +358,7 @@ Kirigami.Page {
|
||||
});
|
||||
}
|
||||
|
||||
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, isThread: bool, selectedText: string, hoveredLink: string) {
|
||||
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, selectedText: string, hoveredLink: string) {
|
||||
(delegateContextMenu.createObject(root, {
|
||||
author: author,
|
||||
eventId: eventId,
|
||||
@@ -357,6 +366,8 @@ Kirigami.Page {
|
||||
mimeType: mimeType,
|
||||
progressInfo: progressInfo,
|
||||
messageComponentType: messageComponentType,
|
||||
selectedText,
|
||||
hoveredLink,
|
||||
}) as DelegateContextMenu).popup();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@ import org.kde.neochat
|
||||
FormCard.FormCardPage {
|
||||
id: root
|
||||
|
||||
property bool processing: false
|
||||
|
||||
title: i18nc("@title:window", "Load your encrypted messages")
|
||||
|
||||
topPadding: Kirigami.Units.gridUnit
|
||||
@@ -27,42 +25,75 @@ FormCard.FormCardPage {
|
||||
position: Kirigami.InlineMessage.Position.Header
|
||||
}
|
||||
|
||||
Connections {
|
||||
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 SSSSHandler ssssHandler: SSSSHandler {
|
||||
id: ssssHandler
|
||||
|
||||
function onKeyBackupUnlocked(): void {
|
||||
root.processing = false
|
||||
property bool processing: false
|
||||
|
||||
connection: Controller.activeConnection
|
||||
onKeyBackupUnlocked: {
|
||||
ssssHandler.processing = false
|
||||
banner.text = i18nc("@info:status", "Encryption keys restored.")
|
||||
banner.type = Kirigami.MessageType.Positive
|
||||
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 {
|
||||
title: i18nc("@title", "Unlock using Security Key or Backup Passphrase")
|
||||
title: i18nc("@title", "Unlock using Passphrase")
|
||||
}
|
||||
FormCard.FormCard {
|
||||
FormCard.FormTextDelegate {
|
||||
description: i18nc("@info", "If you have a security key or backup passphrase for this account, enter it below or upload it as a file.")
|
||||
description: i18nc("@info", "If you have a backup passphrase for this account, enter it below.")
|
||||
}
|
||||
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 {
|
||||
id: securityKeyField
|
||||
label: i18nc("@label:textbox", "Security Key or Backup Passphrase:")
|
||||
label: i18nc("@label:textbox", "Security Key:")
|
||||
echoMode: TextInput.Password
|
||||
}
|
||||
FormCard.FormButtonDelegate {
|
||||
id: uploadSecurityKeyButton
|
||||
text: i18nc("@action:button", "Upload from File")
|
||||
icon.name: "cloud-upload"
|
||||
enabled: !root.processing
|
||||
enabled: !ssssHandler.processing
|
||||
onClicked: {
|
||||
root.processing = true
|
||||
ssssHandler.processing = true
|
||||
openFileDialog.open()
|
||||
}
|
||||
}
|
||||
@@ -70,10 +101,10 @@ FormCard.FormCardPage {
|
||||
id: unlockSecurityKeyButton
|
||||
text: i18nc("@action:button", "Unlock")
|
||||
icon.name: "unlock"
|
||||
enabled: securityKeyField.text.length > 0 && !root.processing
|
||||
enabled: securityKeyField.text.length > 0 && !ssssHandler.processing
|
||||
onClicked: {
|
||||
root.processing = true
|
||||
Controller.activeConnection.unlockSSSS(securityKeyField.text)
|
||||
ssssHandler.processing = true
|
||||
ssssHandler.unlockSSSSFromSecurityKey(securityKeyField.text)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,10 +120,10 @@ FormCard.FormCardPage {
|
||||
id: unlockCrossSigningButton
|
||||
icon.name: "emblem-shared-symbolic"
|
||||
text: i18nc("@action:button", "Request from other Devices")
|
||||
enabled: !root.processing
|
||||
enabled: !ssssHandler.processing
|
||||
onClicked: {
|
||||
root.processing = true
|
||||
Controller.activeConnection.unlockSSSS("")
|
||||
ssssHandler.processing = true
|
||||
ssssHandler.unlockSSSSFromCrossSigning()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,25 +293,5 @@ Kirigami.Dialog {
|
||||
icon.name: "username-copy"
|
||||
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,6 +29,28 @@
|
||||
#include <KIO/OpenUrlJob>
|
||||
#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)
|
||||
: QObject(parent)
|
||||
, m_config(KSharedConfig::openStateConfig())
|
||||
@@ -324,17 +346,6 @@ void RoomManager::loadInitialRoom()
|
||||
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) {
|
||||
// we opened a room with the arg parsing already
|
||||
return;
|
||||
@@ -347,16 +358,14 @@ void RoomManager::loadInitialRoom()
|
||||
|
||||
void RoomManager::openRoomForActiveConnection()
|
||||
{
|
||||
if (!m_connection) {
|
||||
setCurrentRoom({});
|
||||
setCurrentSpace({}, false);
|
||||
return;
|
||||
}
|
||||
Q_ASSERT(m_connection);
|
||||
|
||||
auto lastSpace = m_lastRoomConfig.readEntry(u"lastSpace"_s, QString());
|
||||
if (lastSpace == u"Home"_s) {
|
||||
lastSpace.clear();
|
||||
}
|
||||
setCurrentSpace(lastSpace, true);
|
||||
// We don't want to open a room on startup on mobile
|
||||
setCurrentSpace(lastSpace, !m_isMobile);
|
||||
}
|
||||
|
||||
UriResolveResult RoomManager::visitUser(User *user, const QString &action)
|
||||
@@ -513,7 +522,7 @@ void RoomManager::setConnection(NeoChatConnection *connection)
|
||||
Q_EMIT connectionChanged();
|
||||
}
|
||||
|
||||
void RoomManager::setCurrentSpace(const QString &spaceId, bool setRoom)
|
||||
void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
||||
{
|
||||
m_currentSpaceId = spaceId;
|
||||
|
||||
@@ -533,25 +542,65 @@ void RoomManager::setCurrentSpace(const QString &spaceId, bool setRoom)
|
||||
m_lastRoomConfig.writeEntry(u"lastSpace"_s, spaceId.isEmpty() ? u"Home"_s : spaceId);
|
||||
}
|
||||
|
||||
if (!setRoom) {
|
||||
return;
|
||||
}
|
||||
// If we requested to change to the last opened room, do so:
|
||||
if (goToLastUsedRoom) {
|
||||
// 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 intentionally don't want to open the last room on mobile
|
||||
if (m_isMobile) {
|
||||
return;
|
||||
}
|
||||
// We can't have empty keys in KConfig, so it's stored as "Home":
|
||||
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString()); !lastRoom.isEmpty()) {
|
||||
resolveResource(lastRoom, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
|
||||
// We can't have empty keys in KConfig, so it's stored as "Home"
|
||||
if (const auto &lastRoom = m_lastRoomConfig.readEntry(spaceId.isEmpty() ? u"Home"_s : spaceId, QString()); !lastRoom.isEmpty()) {
|
||||
resolveResource(lastRoom, "no_join"_L1);
|
||||
return;
|
||||
// If no last room was opened, go to the space home:
|
||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
||||
resolveResource(spaceId, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
|
||||
// Fallback to no room opened:
|
||||
setCurrentRoom({});
|
||||
}
|
||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
||||
resolveResource(spaceId, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
|
||||
QString RoomManager::findSpaceIdForCurrentRoom() const
|
||||
{
|
||||
if (!m_currentRoom) {
|
||||
return m_currentSpaceId;
|
||||
}
|
||||
setCurrentRoom({});
|
||||
if (m_currentRoom->isDirectChat()) {
|
||||
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)
|
||||
@@ -571,57 +620,25 @@ void RoomManager::setCurrentRoom(const QString &roomId)
|
||||
}
|
||||
|
||||
Q_EMIT currentRoomChanged();
|
||||
if (m_connection) {
|
||||
|
||||
if (!m_dontUpdateLastRoom) {
|
||||
if (roomId.isEmpty()) {
|
||||
m_lastRoomConfig.deleteEntry(m_currentSpaceId);
|
||||
} else {
|
||||
// We can't have empty keys in KConfig, so name it "Home"
|
||||
if (m_currentSpaceId.isEmpty()) {
|
||||
m_lastRoomConfig.writeEntry(u"Home"_s, roomId);
|
||||
} else {
|
||||
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;
|
||||
}
|
||||
|
||||
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 {
|
||||
m_lastRoomConfig.writeEntry(spaceIdForRoom, roomId);
|
||||
}
|
||||
|
||||
if (m_currentSpaceId != spaceIdForRoom) {
|
||||
setCurrentSpace(spaceIdForRoom, false);
|
||||
}
|
||||
}
|
||||
setCurrentSpace({}, false);
|
||||
}
|
||||
|
||||
void RoomManager::clearCurrentRoom()
|
||||
|
||||
@@ -337,6 +337,11 @@ Q_SIGNALS:
|
||||
|
||||
void currentSpaceChanged();
|
||||
|
||||
protected:
|
||||
bool m_dontUpdateLastRoom = false; // Don't set directly, use LastRoomBlocker.
|
||||
|
||||
friend class LastRoomBlocker;
|
||||
|
||||
private:
|
||||
bool m_isMobile = false;
|
||||
|
||||
@@ -373,8 +378,22 @@ private:
|
||||
|
||||
void setCurrentRoom(const QString &roomId);
|
||||
|
||||
// Space ID, "DM", or empty string
|
||||
void setCurrentSpace(const QString &spaceId, bool setRoom = true);
|
||||
/**
|
||||
* @brief Find the most appropriate space for the currently selected room
|
||||
*
|
||||
* 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.
|
||||
|
||||
@@ -286,8 +286,6 @@ QQC2.Control {
|
||||
quickFormatBar.selectionStart = selectionStart;
|
||||
quickFormatBar.selectionEnd = selectionEnd;
|
||||
quickFormatBar.open();
|
||||
} else if (quickFormatBar.visible) {
|
||||
quickFormatBar.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ QQC2.Popup {
|
||||
padding: 2
|
||||
|
||||
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 {
|
||||
id: emojiPicker
|
||||
height: 400
|
||||
|
||||
@@ -148,7 +148,7 @@ ColumnLayout {
|
||||
id: quickReactions
|
||||
Layout.fillWidth: true
|
||||
|
||||
model: ["👍", "👎", "😄", "🎉", "😕", "❤", "🚀", "👀"]
|
||||
model: ["👍", "👎", "😄", "🎉", "😕", "❤️", "🚀", "👀"]
|
||||
|
||||
delegate: EmojiDelegate {
|
||||
required property string modelData
|
||||
|
||||
@@ -21,6 +21,12 @@ FormCard.FormCard {
|
||||
|
||||
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 {
|
||||
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
|
||||
|
||||
@@ -33,8 +33,6 @@ target_sources(LibNeoChat PRIVATE
|
||||
events/imagepackevent.cpp
|
||||
events/pollevent.cpp
|
||||
jobs/neochatgetcommonroomsjob.cpp
|
||||
jobs/neochatreportroomjob.cpp
|
||||
jobs/neochatreportuserjob.cpp
|
||||
models/actionsmodel.cpp
|
||||
models/completionmodel.cpp
|
||||
models/completionproxymodel.cpp
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
|
||||
#include "chatbarcache.h"
|
||||
|
||||
#include <QMimeData>
|
||||
|
||||
#include <KUrlMimeData>
|
||||
|
||||
#include <Quotient/roommember.h>
|
||||
|
||||
#include "eventhandler.h"
|
||||
@@ -299,17 +295,4 @@ void ChatBarCache::clearCache()
|
||||
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"
|
||||
|
||||
@@ -198,8 +198,6 @@ public:
|
||||
*/
|
||||
Q_INVOKABLE void postMessage();
|
||||
|
||||
Q_INVOKABLE void drop(QList<QUrl> urls, const QString &transferPortal);
|
||||
|
||||
Q_SIGNALS:
|
||||
void textChanged();
|
||||
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");
|
||||
}
|
||||
if (const auto &reason = e.contentJson()["reason"_L1].toString().toHtmlEscaped(); !reason.isEmpty()) {
|
||||
return i18n("has removed %1 from the room: %2", subjectName, reason);
|
||||
return i18n("has put %1 out of the room: %2", subjectName, reason);
|
||||
}
|
||||
return i18n("has removed %1 from the room", subjectName);
|
||||
return i18n("has put %1 out of the room", subjectName);
|
||||
case Membership::Ban:
|
||||
if (e.senderId() != e.userId()) {
|
||||
if (e.reason().isEmpty()) {
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// 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});
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
// 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);
|
||||
};
|
||||
@@ -1,14 +0,0 @@
|
||||
// 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});
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
// 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{
|
||||
u"shrug"_s,
|
||||
[](const QString &message, NeoChatRoom *, ChatBarCache *) {
|
||||
return u"¯\\\\_(ツ)_/¯ %1"_s.arg(message);
|
||||
return u"¯\\\\\\_(ツ)\\_/¯ %1"_s.arg(message);
|
||||
},
|
||||
Quotient::RoomMessageEvent::MsgType::Text,
|
||||
kli18n("<message>"),
|
||||
|
||||
@@ -118,8 +118,10 @@ void RoomListModel::connectRoomSignals(NeoChatRoom *room)
|
||||
connect(room, &Room::displaynameChanged, this, [this, room] {
|
||||
refresh(room, {DisplayNameRole});
|
||||
});
|
||||
connect(room, &Room::unreadStatsChanged, this, [this, room] {
|
||||
refresh(room, {ContextNotificationCountRole, HasHighlightNotificationsRole, NotificationCountRole});
|
||||
connect(room, &Room::changed, this, [this, room](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
refresh(room, {ContextNotificationCountRole, HasHighlightNotificationsRole, NotificationCountRole});
|
||||
}
|
||||
});
|
||||
connect(room, &Room::notificationCountChanged, this, [this, room] {
|
||||
refresh(room);
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <QImageReader>
|
||||
#include <QJsonDocument>
|
||||
|
||||
#include "jobs/neochatreportuserjob.h"
|
||||
#include "neochatroom.h"
|
||||
#include "spacehierarchycache.h"
|
||||
|
||||
@@ -20,7 +19,6 @@
|
||||
#include <Quotient/csapi/profile.h>
|
||||
#include <Quotient/csapi/registration.h>
|
||||
#include <Quotient/csapi/versions.h>
|
||||
#include <Quotient/e2ee/sssshandler.h>
|
||||
#include <Quotient/jobs/downloadfilejob.h>
|
||||
#include <Quotient/qt_connection_util.h>
|
||||
#include <Quotient/room.h>
|
||||
@@ -77,31 +75,37 @@ void NeoChatConnection::connectSignals()
|
||||
Q_EMIT directChatInvitesChanged();
|
||||
for (const auto &chatId : additions) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
connect(chat, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
connect(chat, &Room::changed, this, [this](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
for (const auto &chatId : removals) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
|
||||
disconnect(chat, &Room::changed, this, nullptr);
|
||||
}
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
||||
if (room->isDirectChat()) {
|
||||
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
connect(room, &Room::changed, this, [this](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
Q_EMIT roomInvitesChanged();
|
||||
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
connect(room, &Room::changed, this, [this](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
}
|
||||
});
|
||||
});
|
||||
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
||||
@@ -162,10 +166,6 @@ void NeoChatConnection::refreshBadgeNotificationCount()
|
||||
for (const auto &r : allRooms()) {
|
||||
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
count += room->contextAwareNotificationCount();
|
||||
|
||||
if (room->joinState() == JoinState::Invite) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -576,36 +576,4 @@ bool NeoChatConnection::isVerifiedSession() const
|
||||
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"
|
||||
|
||||
@@ -222,13 +222,6 @@ public:
|
||||
*/
|
||||
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:
|
||||
void globalUrlPreviewEnabledChanged();
|
||||
void labelChanged();
|
||||
@@ -266,9 +259,6 @@ Q_SIGNALS:
|
||||
*/
|
||||
void ownSessionVerified();
|
||||
|
||||
void keyBackupUnlocked();
|
||||
void keyBackupError();
|
||||
|
||||
private:
|
||||
static bool m_globalUrlPreviewDefault;
|
||||
static PushRuleAction::Action m_defaultAction;
|
||||
|
||||
@@ -50,12 +50,12 @@
|
||||
#include "roomlastmessageprovider.h"
|
||||
#include "spacehierarchycache.h"
|
||||
#include "urlhelper.h"
|
||||
#include "jobs/neochatreportroomjob.h"
|
||||
|
||||
#ifndef Q_OS_ANDROID
|
||||
#include <KIO/Job>
|
||||
#include <KIO/JobTracker>
|
||||
#endif
|
||||
|
||||
#include <KJobTrackerInterface>
|
||||
#include <KLocalizedString>
|
||||
|
||||
@@ -346,10 +346,6 @@ void NeoChatRoom::forget()
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1185,7 +1181,10 @@ void NeoChatRoom::loadPinnedMessage()
|
||||
connection()->callApi<GetOneRoomEventJob>(id(), mostRecentEventId).then([this](const auto &job) {
|
||||
auto event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
||||
if (auto encEv = eventCast<EncryptedEvent>(event.get())) {
|
||||
event = decryptMessage(*encEv);
|
||||
auto decryptedMessage = decryptMessage(*encEv);
|
||||
if (decryptedMessage) {
|
||||
event = std::move(decryptedMessage);
|
||||
}
|
||||
}
|
||||
m_pinnedMessage = EventHandler::richBody(this, event.get());
|
||||
Q_EMIT pinnedMessageChanged();
|
||||
@@ -1653,6 +1652,12 @@ void NeoChatRoom::downloadEventFromServer(const QString &eventId)
|
||||
}
|
||||
|
||||
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));
|
||||
Q_EMIT extraEventLoaded(eventId);
|
||||
},
|
||||
@@ -1838,9 +1843,4 @@ QString NeoChatRoom::pinnedMessage() const
|
||||
return m_pinnedMessage;
|
||||
}
|
||||
|
||||
void NeoChatRoom::report(const QString &reason)
|
||||
{
|
||||
connection()->callApi<NeochatReportRoomJob>(id(), reason);
|
||||
}
|
||||
|
||||
#include "moc_neochatroom.cpp"
|
||||
|
||||
@@ -622,11 +622,6 @@ public:
|
||||
*/
|
||||
QString pinnedMessage() const;
|
||||
|
||||
/**
|
||||
* @brief Send a report about this room.
|
||||
*/
|
||||
Q_INVOKABLE void report(const QString &reason);
|
||||
|
||||
private:
|
||||
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.
|
||||
*/
|
||||
readonly property var roomAlias: room.aliases[0]
|
||||
readonly property string roomAlias: room?.aliases[0] ?? ""
|
||||
|
||||
Layout.fillWidth: true
|
||||
spacing: 0
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
@@ -43,8 +43,8 @@ void SpaceHierarchyCache::cacheSpaceHierarchy()
|
||||
Qt::SingleShotConnection);
|
||||
}
|
||||
|
||||
connect(neoChatRoom, &NeoChatRoom::unreadStatsChanged, this, [this, neoChatRoom]() {
|
||||
if (neoChatRoom != nullptr) {
|
||||
connect(neoChatRoom, &NeoChatRoom::changed, this, [this, neoChatRoom](NeoChatRoom::Changes changes) {
|
||||
if (neoChatRoom != nullptr && (changes & (NeoChatRoom::Change::UnreadStats | NeoChatRoom::Change::Highlights))) {
|
||||
const auto parents = parentSpaces(neoChatRoom->id());
|
||||
if (parents.count() > 0) {
|
||||
Q_EMIT spaceNotifcationCountChanged(parents);
|
||||
|
||||
@@ -121,13 +121,6 @@ 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 {
|
||||
acceptedDevices: PointerDevice.TouchScreen
|
||||
onLongPressed: RoomManager.viewEventMenu(root.eventId, root.Message.room, root.Message.selectedText, root.Message.hoveredLink);
|
||||
|
||||
@@ -43,8 +43,6 @@ Item {
|
||||
*/
|
||||
property var contentMaxHeight: undefined
|
||||
|
||||
readonly property alias _private: _private
|
||||
|
||||
implicitWidth: mediaSizeHelper.currentSize.width
|
||||
implicitHeight: mediaSizeHelper.currentSize.height
|
||||
|
||||
|
||||
@@ -23,9 +23,7 @@ Flow {
|
||||
*/
|
||||
required property ReactionModel reactionModel
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.maximumWidth: Message.maxContentWidth
|
||||
// HACK: We do not set Layout properties here, see BUG 504344 for the crash it caused.
|
||||
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ RowLayout {
|
||||
Layout.fillHeight: true
|
||||
|
||||
implicitWidth: Kirigami.Units.smallSpacing
|
||||
color: root.replyContentModel.author.color
|
||||
color: root.replyContentModel.author?.color ?? Kirigami.Theme.highlightColor
|
||||
radius: Kirigami.Units.cornerRadius
|
||||
}
|
||||
ColumnLayout {
|
||||
|
||||
@@ -150,10 +150,6 @@ QSize MediaSizeHelper::currentSize() const
|
||||
if (height > heightLimit()) {
|
||||
return QSize(qRound(heightLimit() * aspectRatio()), qRound(heightLimit()));
|
||||
}
|
||||
// TODO: NO
|
||||
if (qIsNaN(width) || qIsNaN(height)) {
|
||||
return {};
|
||||
}
|
||||
return QSize(qRound(width), qRound(height));
|
||||
} else {
|
||||
qreal height = std::min(heightLimit(), resolvedMediaHeight());
|
||||
|
||||
@@ -269,6 +269,8 @@ void EventMessageContentModel::resetModel()
|
||||
updateItineraryModel();
|
||||
|
||||
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)
|
||||
|
||||
@@ -87,7 +87,6 @@ QDateTime MessageContentModel::time() const
|
||||
QString MessageContentModel::timeString() const
|
||||
{
|
||||
return time().toLocalTime().toString(u"hh:mm"_s);
|
||||
;
|
||||
}
|
||||
|
||||
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