Compare commits
69 Commits
v25.12.2
...
work/redst
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f060dcfe6 | ||
|
|
45c5806c5a | ||
|
|
abf37c90cb | ||
|
|
5d9508b165 | ||
|
|
f5a652f7a1 | ||
|
|
f165cb1f10 | ||
|
|
11132c3e89 | ||
|
|
089ab2009a | ||
|
|
6ebedc5dfc | ||
|
|
e5b2fb7316 | ||
|
|
5da3aff607 | ||
|
|
3fa46d52fe | ||
|
|
ece9811d82 | ||
|
|
b543b1c2f9 | ||
|
|
5065bccb64 | ||
|
|
10c3125668 | ||
|
|
73019cfea2 | ||
|
|
4bc6a88acf | ||
|
|
56a49cfc50 | ||
|
|
c50380b448 | ||
|
|
673a8c8bc8 | ||
|
|
c298c348a4 | ||
|
|
2fcd535aeb | ||
|
|
8f5e68de5d | ||
|
|
5fe36a9057 | ||
|
|
8d8c6444e0 | ||
|
|
03d5955c8d | ||
|
|
197d7ce8e8 | ||
|
|
efbf6d96d4 | ||
|
|
b8cd3c69c2 | ||
|
|
1da24191f0 | ||
|
|
2ecc567792 | ||
|
|
66e1fe067d | ||
|
|
d08f014def | ||
|
|
63941d6685 | ||
|
|
38523c97c5 | ||
|
|
65c6f4c1d3 | ||
|
|
0cb3fd32f4 | ||
|
|
b02cb0157e | ||
|
|
ca163fc169 | ||
|
|
5687eb33e1 | ||
|
|
fc795e50b3 | ||
|
|
c4adfe7939 | ||
|
|
ce96232bbd | ||
|
|
95653cf3f7 | ||
|
|
0c11cd331f | ||
|
|
3c8ca0d421 | ||
|
|
52f71d5c55 | ||
|
|
00f7dd5175 | ||
|
|
52da8415e9 | ||
|
|
953e4cd792 | ||
|
|
ee4b1578b1 | ||
|
|
ae24424a32 | ||
|
|
51be282824 | ||
|
|
c539dfc352 | ||
|
|
fe734206df | ||
|
|
79a49165f1 | ||
|
|
ada5eef088 | ||
|
|
9cc5778126 | ||
|
|
b129805f94 | ||
|
|
887865c0aa | ||
|
|
1336194cf4 | ||
|
|
5a7ae3563e | ||
|
|
7c56e24fdc | ||
|
|
e6b9abeca3 | ||
|
|
1b45784a88 | ||
|
|
a12b0d5282 | ||
|
|
a6d75f2ff5 | ||
|
|
b8f7f33b9a |
@@ -2,7 +2,7 @@
|
||||
"id": "org.kde.neochat",
|
||||
"branch": "master",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "6.9",
|
||||
"runtime-version": "6.10",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "neochat",
|
||||
"tags": [
|
||||
@@ -31,19 +31,6 @@
|
||||
"/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": [
|
||||
@@ -78,6 +65,7 @@
|
||||
"name": "olm",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": [
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
|
||||
"-DOLM_TESTS=OFF"
|
||||
],
|
||||
"sources": [
|
||||
@@ -184,8 +172,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://download.kde.org/stable/release-service/25.08.0/src/kunifiedpush-25.08.0.tar.xz",
|
||||
"sha256": "846db6ffc7d93f6afea7ce0d5a9f10b52792157ceb593856542279f4197f3518",
|
||||
"url": "https://download.kde.org/stable/release-service/25.08.3/src/kunifiedpush-25.08.3.tar.xz",
|
||||
"sha256": "e8c924438d5359f0fa0930ab35111012076e3a0ff4e959d6929595571383320a",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 8763,
|
||||
|
||||
@@ -10,7 +10,6 @@ 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'
|
||||
@@ -29,11 +28,15 @@ Dependencies:
|
||||
'frameworks/kio': '@latest-kf6'
|
||||
'frameworks/kwindowsystem': '@latest-kf6'
|
||||
'frameworks/kstatusnotifieritem': '@latest-kf6'
|
||||
|
||||
- 'on': ['Linux', 'FreeBSD', 'Android']
|
||||
'require':
|
||||
'libraries/kunifiedpush': '@latest-kf6'
|
||||
|
||||
- 'on': ['Linux', 'FreeBSD']
|
||||
'require':
|
||||
'frameworks/kdbusaddons': '@latest-kf6'
|
||||
'frameworks/purpose': '@latest-kf6'
|
||||
'libraries/kunifiedpush': '@latest-kf6'
|
||||
|
||||
- 'on': ['Linux']
|
||||
'require':
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# KDE Applications version, managed by release script.
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "25")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "12")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "2")
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "26")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "03")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
||||
@@ -46,10 +46,6 @@ 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)
|
||||
@@ -69,7 +65,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 IconThemes)
|
||||
find_package(KF6 ${KF_MIN_VERSION} COMPONENTS Kirigami I18n Notifications Config CoreAddons Sonnet ItemModels ColorScheme)
|
||||
set_package_properties(KF6 PROPERTIES
|
||||
TYPE REQUIRED
|
||||
PURPOSE "Basic application components"
|
||||
@@ -152,7 +148,7 @@ set_package_properties(KF6DocTools PROPERTIES DESCRIPTION
|
||||
|
||||
option(WITH_UNIFIEDPUSH "Build with KUnifiedPush support" ON)
|
||||
|
||||
if (ANDROID OR APPLE OR WIN32 OR HAIKU)
|
||||
if (APPLE OR WIN32 OR HAIKU)
|
||||
set(WITH_UNIFIEDPUSH OFF)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -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,14 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Include FontConfig config which uses the Emoji One font from the
|
||||
# KDE Flatpak SDK.
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Flatpak/99-noto-mono-color-emoji.conf
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_SYSCONFDIR}/fonts/local.conf
|
||||
)
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Noto Color Emoji</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Noto Color Emoji</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Noto Color Emoji</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
</fontconfig>
|
||||
|
||||
@@ -193,7 +193,6 @@
|
||||
<li xml:lang="ar">التصويت - MSC3381</li>
|
||||
<li xml:lang="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>
|
||||
@@ -228,7 +227,6 @@
|
||||
<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>
|
||||
@@ -322,7 +320,6 @@
|
||||
<value key="KDE::windows_store::StoreLogoSquare">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/storelogo-1080x1080.png</value>
|
||||
<value key="KDE::windows_store::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>
|
||||
@@ -490,8 +487,6 @@
|
||||
<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"/>
|
||||
|
||||
402
po/ar/neochat.po
402
po/ar/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
||||
"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:316
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:133
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:135
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:141
|
||||
#: src/app/main.cpp:136
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:142
|
||||
#: src/app/main.cpp:137
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:143
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:139
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:155
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:157
|
||||
#: src/app/main.cpp:152
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:178
|
||||
#: src/app/main.cpp:167
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:179
|
||||
#: src/app/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:180
|
||||
#: src/app/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:182
|
||||
#: src/app/main.cpp:171
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:185
|
||||
#: src/app/main.cpp:174
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:195
|
||||
#: src/app/main.cpp:184
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
@@ -170,40 +170,40 @@ msgstr ""
|
||||
msgid "Reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#, 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:200
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#, 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:84
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#, 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:97
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#, 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:112
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#, 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:125
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1027,63 +1027,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1167,13 +1167,19 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1181,67 +1187,43 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Backup Password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1249,7 +1231,7 @@ msgid ""
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1397,6 +1379,38 @@ 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"
|
||||
@@ -1599,22 +1613,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:235
|
||||
#: src/app/roommanager.cpp:213
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:439
|
||||
#: src/app/roommanager.cpp:430
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:463
|
||||
#: src/app/roommanager.cpp:454
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:467
|
||||
#: src/app/roommanager.cpp:458
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr ""
|
||||
@@ -1695,7 +1709,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1897,19 +1911,13 @@ 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:40
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2283,12 +2291,12 @@ msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room"
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3128,7 +3136,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3151,12 +3159,12 @@ msgstr ""
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3629,12 +3637,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3841,13 +3849,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#, 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:88
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3882,7 +3890,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3893,18 +3901,18 @@ msgstr ""
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr ""
|
||||
@@ -3921,95 +3929,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4017,7 +4025,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
@@ -4073,42 +4081,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr ""
|
||||
@@ -4140,13 +4148,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4228,6 +4236,38 @@ 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 ""
|
||||
@@ -4291,13 +4331,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6888,19 +6928,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -6968,31 +7008,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
399
po/az/neochat.po
399
po/az/neochat.po
File diff suppressed because it is too large
Load Diff
556
po/ca/neochat.po
556
po/ca/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2025-11-10 11:43+0100\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2025-12-01 11:35+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:316
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Rebre les notificacions automàtiques"
|
||||
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:133
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "Xat a Matrix"
|
||||
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:135
|
||||
#, 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:141
|
||||
#: src/app/main.cpp:136
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: src/app/main.cpp:142
|
||||
#: src/app/main.cpp:137
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:143
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "Nate Graham"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:139
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "Mantenidor de la libQuotient"
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Josep M. Ferrer"
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "txemaq@gmail.com"
|
||||
|
||||
#: src/app/main.cpp:155
|
||||
#: src/app/main.cpp:150
|
||||
#, 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:157
|
||||
#: src/app/main.cpp:152
|
||||
#, 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:178
|
||||
#: src/app/main.cpp:167
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client per al protocol de comunicacions Matrix"
|
||||
|
||||
#: src/app/main.cpp:179
|
||||
#: src/app/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Implementa l'esquema d'URL «matrix:»"
|
||||
|
||||
#: src/app/main.cpp:180
|
||||
#: src/app/main.cpp:169
|
||||
#, 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:182
|
||||
#: src/app/main.cpp:171
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr "Substituïx una instància existent"
|
||||
|
||||
#: src/app/main.cpp:185
|
||||
#: src/app/main.cpp:174
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "Només s'utilitza en les proves automàtiques"
|
||||
|
||||
#: src/app/main.cpp:195
|
||||
#: src/app/main.cpp:184
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "Compartix un URL a Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Missatge encriptat"
|
||||
@@ -173,40 +173,40 @@ msgstr "Respon"
|
||||
msgid "Reply…"
|
||||
msgstr "Respon…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 vos ha convidat a la sala"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "Obri esta invitació en NeoChat"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "Rebutja"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, 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:383
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#, 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:200
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#, 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:84
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr "Obri una còpia de seguretat de la clau"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "Verifica este dispositiu"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "Enviament de sol·licitud de verificació"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
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:107
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#, 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:97
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#, 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:112
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "Accepta la invitació"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "Rebutja la invitació"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "Bloqueja %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#, 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:125
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#, 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:95
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr "Unix-te a una reunió de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr "Inicia una reunió de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, 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:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#, 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:161
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#, 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:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Missatges fixats"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr "Us donem la benvinguda a NeoChat"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#, 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:356
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1182,13 +1182,21 @@ 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:14
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "Càrrega dels missatges encriptats"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
"La clau de seguretat o la frase de pas de còpia de seguretat no són "
|
||||
"correctes."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1196,71 +1204,47 @@ msgstr "S'han restaurat les claus d'encriptació."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr "La frase de seguretat no és correcta."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
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 backup passphrase for this account, enter it below."
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
"Si teniu una còpia de seguretat de la frase de pas per a este compte, "
|
||||
"introduïu-la a continuació."
|
||||
"Desbloqueja utilitzant la clau de seguretat o la frase de pas de còpia de "
|
||||
"seguretat"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Backup Password:"
|
||||
msgstr "Còpia de seguretat de la contrasenya:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloqueja"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr "Desbloqueja utilitzant la clau de seguretat"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
"Si teniu una clau de seguretat per a este compte, introduïu-la a continuació "
|
||||
"o carregueu-la com a fitxer."
|
||||
"Si teniu una clau de seguretat o una frase de pas de còpia de seguretat per "
|
||||
"a este compte, introduïu-la a continuació o carregueu-la com a fitxer."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr "Clau de seguretat:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clau de seguretat o frase de pas de còpia de seguretat:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Carrega des del fitxer"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloqueja"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "Desbloqueja a partir d'una signatura creuada"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1271,7 +1255,7 @@ msgstr ""
|
||||
"clau de còpia de seguretat des d'altres dispositius clicant damunt del botó "
|
||||
"de davall."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1419,6 +1403,38 @@ 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"
|
||||
@@ -1654,24 +1670,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr "Fet"
|
||||
|
||||
#: src/app/roommanager.cpp:235
|
||||
#: src/app/roommanager.cpp:213
|
||||
#, 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:439
|
||||
#: src/app/roommanager.cpp:430
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr "No s'ha pogut unir-se a %1:<br />%2"
|
||||
|
||||
#: src/app/roommanager.cpp:463
|
||||
#: src/app/roommanager.cpp:454
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "Heu sol·licitat unir-vos a «%1»"
|
||||
|
||||
#: src/app/roommanager.cpp:467
|
||||
#: src/app/roommanager.cpp:458
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "Ha fallat mentre se sol·licitava unir-vos a la sala<br />%1"
|
||||
@@ -1753,7 +1769,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "Envia un missatge…"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1961,19 +1977,13 @@ 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:40
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2351,13 +2361,13 @@ msgstr "ha/n deixat la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "ha posat %1 fora de la sala: %2"
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr "s'ha eliminat %1 de la sala: %2"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room"
|
||||
msgstr "ha posat %1 fora de la sala"
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr "s'ha eliminat %1 de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
#, kde-format
|
||||
@@ -3201,7 +3211,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3226,12 +3236,12 @@ msgstr "No s'ha pogut crear la sala: %1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "No s'ha pogut crear l'espai: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "L'informe s'ha enviat correctament."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3710,12 +3720,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia a dins del porta-retalls"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3926,13 +3936,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalitzat)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#, 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:88
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3968,7 +3978,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3979,18 +3989,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:50
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "Configureu la sala"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "Informació"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "Multimèdia"
|
||||
@@ -4007,95 +4017,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "Informació de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr "Accions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "Busca missatges"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr "Verifica l'usuari"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Elimina de les preferides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Afig a les preferides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensions"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr "Ubicacions compartides"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Missatges fixats"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr "Inspecciona les dades de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr "Ix de l'espai…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Ix de la sala…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "Convida un usuari"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Convida un usuari a la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4103,7 +4113,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membre"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "No hi ha comptador de membres"
|
||||
@@ -4159,42 +4169,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr "Elimina el giny"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "Sales"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr "Busca sales"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "Mostra el menú"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "Busqueu els vostres amics"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "Busca d'amics"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "Crea una sala"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "Escaneja un codi QR"
|
||||
@@ -4226,13 +4236,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crea un espai"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Vos ha convidat al xat"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4314,6 +4324,38 @@ 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…"
|
||||
@@ -4379,13 +4421,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr "Busca en el directori d'amics"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "Reduïx %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -5904,7 +5946,7 @@ msgstr "Configureu el servidor intermediari"
|
||||
#: src/settings/NetworkProxyPage.qml:78
|
||||
#, kde-format
|
||||
msgid "Host"
|
||||
msgstr "Amfitrió"
|
||||
msgstr "Màquina"
|
||||
|
||||
#: src/settings/NetworkProxyPage.qml:91
|
||||
#, kde-format
|
||||
@@ -7041,19 +7083,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:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr "Deixa de fixar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr "Fixa"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7123,31 +7165,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:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ves fins al primer missatge sense llegir"
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr "Ves fins al missatge carregat més antic"
|
||||
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ves fins a l'últim missatge"
|
||||
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrossegueu ací els elements per a compartir"
|
||||
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
508
po/cs/neochat.po
508
po/cs/neochat.po
File diff suppressed because it is too large
Load Diff
381
po/da/neochat.po
381
po/da/neochat.po
File diff suppressed because it is too large
Load Diff
1081
po/de/neochat.po
1081
po/de/neochat.po
File diff suppressed because it is too large
Load Diff
422
po/el/neochat.po
422
po/el/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
434
po/eo/neochat.po
434
po/eo/neochat.po
File diff suppressed because it is too large
Load Diff
370
po/es/neochat.po
370
po/es/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"PO-Revision-Date: 2025-11-11 01:01+0100\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2025-12-02 01:39+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:316
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "Recepción de notificaciones push"
|
||||
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:133
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "Chat en Matrix"
|
||||
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:135
|
||||
#, 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:141
|
||||
#: src/app/main.cpp:136
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsable"
|
||||
|
||||
#: src/app/main.cpp:142
|
||||
#: src/app/main.cpp:137
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:143
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:139
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "Responsable de libQuotient"
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Eloy Cuadra"
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "ecuadra@eloihr.net"
|
||||
|
||||
#: src/app/main.cpp:155
|
||||
#: src/app/main.cpp:150
|
||||
#, 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:157
|
||||
#: src/app/main.cpp:152
|
||||
#, 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:178
|
||||
#: src/app/main.cpp:167
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente para el protocolo de comunicaciones Matrix"
|
||||
|
||||
#: src/app/main.cpp:179
|
||||
#: src/app/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Permite el esquema de URL «matrix:»"
|
||||
|
||||
#: src/app/main.cpp:180
|
||||
#: src/app/main.cpp:169
|
||||
#, 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:182
|
||||
#: src/app/main.cpp:171
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr "Sustituir una instancia existente"
|
||||
|
||||
#: src/app/main.cpp:185
|
||||
#: src/app/main.cpp:174
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "Se usa solo para pruebas automáticas"
|
||||
|
||||
#: src/app/main.cpp:195
|
||||
#: src/app/main.cpp:184
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "Compartir una URL con Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Mensaje cifrado"
|
||||
@@ -174,40 +174,40 @@ msgstr "Responder"
|
||||
msgid "Reply…"
|
||||
msgstr "Responder…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 le ha invitado a una sala"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "Abrir esta invitación en NeoChat"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "Rechazar"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, 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:383
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#, 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:200
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#, 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:84
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr "Abrir copia de seguridad de la clave"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "Verificar este dispositivo"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "Solicitud de verificación enviada"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
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:107
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#, 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:97
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#, 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:112
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "Aceptar invitación"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "Rechazar invitación"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "Bloquear a %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#, 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:125
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#, 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:95
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr "Unirme a una reunión de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr "Iniciar reunión de Jitsi…"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, 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:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#, 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:161
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#, 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:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Mensajes fijados"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr "Bienvenido a NeoChat"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#, 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:356
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1179,13 +1179,19 @@ 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:14
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "Cargar mensajes cifrados…"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr "La clave de seguridad o la contraseña de respaldo no eran correctas."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1193,71 +1199,45 @@ msgstr "Claves de cifrado restauradas."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr "La frase de seguridad no es correcta."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgstr "Desbloquear usando contraseña larga"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr "Desbloquear mediante clave de seguridad o contraseña de respaldo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
"Si dispone de una contraseña de respaldo para esta cuenta, introdúzcala a "
|
||||
"continuación."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Backup Password:"
|
||||
msgstr "Contraseña de respaldo:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr "Desbloquear usando clave de seguridad"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
"Si dispone de una clave de seguridad para esta cuenta, introdúzcala a "
|
||||
"continuación o envíela como archivo."
|
||||
"Si dispone de una clave de seguridad o de una contraseña de respaldo para "
|
||||
"esta cuenta, introdúzcala a continuación o envíela como archivo."
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgstr "Clave de seguridad:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr "Clave de seguridad o contraseña de respaldo:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "Enviar un archivo"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "Desbloquear con firmado cruzado"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1267,7 +1247,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:122
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1415,6 +1395,38 @@ 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"
|
||||
@@ -1652,24 +1664,24 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr "Terminado"
|
||||
|
||||
#: src/app/roommanager.cpp:235
|
||||
#: src/app/roommanager.cpp:213
|
||||
#, 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:439
|
||||
#: src/app/roommanager.cpp:430
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr "No se ha podido unir a %1:<br />%2"
|
||||
|
||||
#: src/app/roommanager.cpp:463
|
||||
#: src/app/roommanager.cpp:454
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "Ha solicitado unirse a «%1»"
|
||||
|
||||
#: src/app/roommanager.cpp:467
|
||||
#: src/app/roommanager.cpp:458
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "No se ha podido solicitar unirse a la sala<br />%1"
|
||||
@@ -1752,7 +1764,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "Enviar un mensaje…"
|
||||
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1960,19 +1972,13 @@ 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:40
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2352,12 +2358,12 @@ msgstr "ha salido de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr "ha echado a %1 de la sala: %2"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room"
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr "ha echado a %1 de la sala"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3198,7 +3204,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr "Creador"
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3223,12 +3229,12 @@ msgstr "La creación de la sala ha fallado: %1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "La creación del espacio ha fallado: %1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "La denuncia se ha enviado correctamente."
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3706,12 +3712,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar en el portapapeles"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3922,13 +3928,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalizada)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#, 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:88
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3963,7 +3969,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volumen"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3974,18 +3980,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:50
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "Preferencias de la sala"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "Información"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "Multimedia"
|
||||
@@ -4002,95 +4008,95 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "Información de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr "Acciones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "Buscar mensajes"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr "Verificar usuario"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Eliminar de favoritas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a favoritas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensiones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr "Extensiones"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr "Ubicaciones compartidas"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Mensajes fijados"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr "Inspeccionar datos de la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr "Salir del espacio…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr "Salir de la sala…"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Miembros"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "Invitar a un usuario"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invitar usuario a la sala"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
@@ -4098,7 +4104,7 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 miembro"
|
||||
msgstr[1] "%1 miembros"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Sin contador de miembros"
|
||||
@@ -4154,42 +4160,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr "Eliminar widget"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "Salas"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr "Buscar salas"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "Mostrar el menú"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "Encontrar amigos"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "Encontrar amigos"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "Crear una sala"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "Escanear un código QR"
|
||||
@@ -4221,13 +4227,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "Crear un espacio"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr "Le ha invitado a chatear"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4309,6 +4315,38 @@ 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…"
|
||||
@@ -4372,13 +4410,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr "Buscar en el directorio de amigos"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "Contraer %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -7033,19 +7071,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:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr "No fijar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr "Fijar"
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -7115,31 +7153,31 @@ msgstr ""
|
||||
"Este es el inicio del chat. No hay mensajes en el historial antes de este "
|
||||
"punto."
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Saltar al primer mensaje sin leer"
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr "Saltar al mensaje cargado más antiguo"
|
||||
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Saltar al último mensaje"
|
||||
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrastre elementos aquí para compartirlos"
|
||||
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
397
po/eu/neochat.po
397
po/eu/neochat.po
File diff suppressed because it is too large
Load Diff
662
po/fi/neochat.po
662
po/fi/neochat.po
File diff suppressed because it is too large
Load Diff
462
po/fr/neochat.po
462
po/fr/neochat.po
File diff suppressed because it is too large
Load Diff
7002
po/ga/neochat.po
7002
po/ga/neochat.po
File diff suppressed because it is too large
Load Diff
436
po/gl/neochat.po
436
po/gl/neochat.po
File diff suppressed because it is too large
Load Diff
406
po/he/neochat.po
406
po/he/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/hi/neochat.po
434
po/hi/neochat.po
File diff suppressed because it is too large
Load Diff
481
po/hu/neochat.po
481
po/hu/neochat.po
File diff suppressed because it is too large
Load Diff
944
po/ia/neochat.po
944
po/ia/neochat.po
File diff suppressed because it is too large
Load Diff
416
po/id/neochat.po
416
po/id/neochat.po
File diff suppressed because it is too large
Load Diff
409
po/ie/neochat.po
409
po/ie/neochat.po
File diff suppressed because it is too large
Load Diff
420
po/it/neochat.po
420
po/it/neochat.po
File diff suppressed because it is too large
Load Diff
358
po/ja/neochat.po
358
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
||||
"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:316
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:133
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:135
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:141
|
||||
#: src/app/main.cpp:136
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:142
|
||||
#: src/app/main.cpp:137
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:143
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:139
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:155
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:157
|
||||
#: src/app/main.cpp:152
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:178
|
||||
#: src/app/main.cpp:167
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:179
|
||||
#: src/app/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:180
|
||||
#: src/app/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:182
|
||||
#: src/app/main.cpp:171
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:185
|
||||
#: src/app/main.cpp:174
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:195
|
||||
#: src/app/main.cpp:184
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
@@ -167,40 +167,40 @@ msgstr ""
|
||||
msgid "Reply…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#, 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:200
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#, 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:84
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#, 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:97
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#, 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:112
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#, 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:125
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1024,63 +1024,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1164,13 +1164,19 @@ msgctxt "@info"
|
||||
msgid "Shared url for image is <a href='%1'>%1</a>"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:14
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1178,67 +1184,43 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Passphrase"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "If you have a backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Backup Password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"If you have a security key for this account, enter it below or upload it as "
|
||||
"a file."
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:87
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key:"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1246,7 +1228,7 @@ msgid ""
|
||||
"key from other devices by clicking the button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1393,6 +1375,38 @@ 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"
|
||||
@@ -1595,22 +1609,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:235
|
||||
#: src/app/roommanager.cpp:213
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:439
|
||||
#: src/app/roommanager.cpp:430
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:463
|
||||
#: src/app/roommanager.cpp:454
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:467
|
||||
#: src/app/roommanager.cpp:458
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr ""
|
||||
@@ -1691,7 +1705,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr ""
|
||||
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1893,19 +1907,13 @@ 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:40
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2278,12 +2286,12 @@ msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room"
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3123,7 +3131,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3146,12 +3154,12 @@ msgstr ""
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3624,12 +3632,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3832,13 +3840,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#, 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:88
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3873,7 +3881,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3884,18 +3892,18 @@ msgstr ""
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr ""
|
||||
@@ -3912,102 +3920,102 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
@@ -4063,42 +4071,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr ""
|
||||
@@ -4130,13 +4138,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4218,6 +4226,38 @@ 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 ""
|
||||
@@ -4281,13 +4321,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6874,19 +6914,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -6953,31 +6993,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
|
||||
398
po/ka/neochat.po
398
po/ka/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/ko/neochat.po
434
po/ko/neochat.po
File diff suppressed because it is too large
Load Diff
399
po/lt/neochat.po
399
po/lt/neochat.po
File diff suppressed because it is too large
Load Diff
691
po/lv/neochat.po
691
po/lv/neochat.po
File diff suppressed because it is too large
Load Diff
405
po/nl/neochat.po
405
po/nl/neochat.po
File diff suppressed because it is too large
Load Diff
408
po/nn/neochat.po
408
po/nn/neochat.po
File diff suppressed because it is too large
Load Diff
396
po/pa/neochat.po
396
po/pa/neochat.po
File diff suppressed because it is too large
Load Diff
413
po/pl/neochat.po
413
po/pl/neochat.po
File diff suppressed because it is too large
Load Diff
414
po/pt/neochat.po
414
po/pt/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
406
po/ro/neochat.po
406
po/ro/neochat.po
File diff suppressed because it is too large
Load Diff
432
po/ru/neochat.po
432
po/ru/neochat.po
File diff suppressed because it is too large
Load Diff
434
po/sa/neochat.po
434
po/sa/neochat.po
File diff suppressed because it is too large
Load Diff
397
po/sk/neochat.po
397
po/sk/neochat.po
File diff suppressed because it is too large
Load Diff
411
po/sl/neochat.po
411
po/sl/neochat.po
File diff suppressed because it is too large
Load Diff
611
po/sv/neochat.po
611
po/sv/neochat.po
File diff suppressed because it is too large
Load Diff
619
po/ta/neochat.po
619
po/ta/neochat.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
399
po/tr/neochat.po
399
po/tr/neochat.po
File diff suppressed because it is too large
Load Diff
402
po/uk/neochat.po
402
po/uk/neochat.po
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-01-28 02:42+0000\n"
|
||||
"POT-Creation-Date: 2025-12-18 00:43+0000\n"
|
||||
"PO-Revision-Date: 2024-04-23 19:24\n"
|
||||
"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-stable/messages/neochat/neochat.pot\n"
|
||||
"X-Crowdin-File-ID: 49732\n"
|
||||
"X-Crowdin-File: /kf6-trunk/messages/neochat/neochat.pot\n"
|
||||
"X-Crowdin-File-ID: 44721\n"
|
||||
|
||||
#: src/app/controller.cpp:172
|
||||
#, kde-format
|
||||
@@ -25,73 +25,73 @@ msgctxt ""
|
||||
msgid "Receiving notifications for new messages"
|
||||
msgstr "接收新消息通知"
|
||||
|
||||
#: src/app/controller.cpp:316
|
||||
#: src/app/controller.cpp:319
|
||||
#, kde-format
|
||||
msgid "Receiving push notifications"
|
||||
msgstr "正在接收推送通知"
|
||||
|
||||
#: src/app/main.cpp:136 src/login/WelcomePage.qml:77
|
||||
#: src/app/main.cpp:131 src/login/WelcomePage.qml:77
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/app/main.cpp:138
|
||||
#: src/app/main.cpp:133
|
||||
#, kde-format
|
||||
msgid "Chat on Matrix"
|
||||
msgstr "在 Matrix 上聊天"
|
||||
|
||||
#: src/app/main.cpp:140
|
||||
#: src/app/main.cpp:135
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2025 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:141
|
||||
#: src/app/main.cpp:136
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/app/main.cpp:141 src/app/main.cpp:142 src/app/main.cpp:143
|
||||
#: src/app/main.cpp:145
|
||||
#: src/app/main.cpp:136 src/app/main.cpp:137 src/app/main.cpp:138
|
||||
#: src/app/main.cpp:140
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "维护人员"
|
||||
|
||||
#: src/app/main.cpp:142
|
||||
#: src/app/main.cpp:137
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/app/main.cpp:143
|
||||
#: src/app/main.cpp:138
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/app/main.cpp:144
|
||||
#: src/app/main.cpp:139
|
||||
#, kde-format
|
||||
msgid "Joshua Goins"
|
||||
msgstr "Joshua Goins"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/app/main.cpp:149
|
||||
#: src/app/main.cpp:144
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral 的原作者"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/app/main.cpp:150
|
||||
#: src/app/main.cpp:145
|
||||
#, kde-format
|
||||
msgid "Maintainer of libQuotient"
|
||||
msgstr "libQuotient 的维护者"
|
||||
|
||||
#: src/app/main.cpp:151
|
||||
#: src/app/main.cpp:146
|
||||
#, 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:151
|
||||
#: src/app/main.cpp:146
|
||||
#, 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:155
|
||||
#: src/app/main.cpp:150
|
||||
#, kde-format
|
||||
msgid "A Qt library to write cross-platform clients for Matrix"
|
||||
msgstr "一个用于编写跨平台 Matrix 客户端的 Qt 库"
|
||||
|
||||
#: src/app/main.cpp:157
|
||||
#: src/app/main.cpp:152
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (使用 %2 构建)"
|
||||
|
||||
#: src/app/main.cpp:178
|
||||
#: src/app/main.cpp:167
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix 通信协议客户端"
|
||||
|
||||
#: src/app/main.cpp:179
|
||||
#: src/app/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "支持 matrix:URL 协议"
|
||||
|
||||
#: src/app/main.cpp:180
|
||||
#: src/app/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Ignore all SSL Errors, e.g., unsigned certificates."
|
||||
msgstr "忽略所有 SSL 错误,例如未签名证书。"
|
||||
|
||||
#: src/app/main.cpp:182
|
||||
#: src/app/main.cpp:171
|
||||
#, kde-format
|
||||
msgctxt "command line description"
|
||||
msgid "Replace an existing instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main.cpp:185
|
||||
#: src/app/main.cpp:174
|
||||
#, kde-format
|
||||
msgid "Only used for autotests"
|
||||
msgstr "仅用于自动测试"
|
||||
|
||||
#: src/app/main.cpp:195
|
||||
#: src/app/main.cpp:184
|
||||
#, kde-format
|
||||
msgid "Share a URL to Matrix"
|
||||
msgstr "分享 URL 到 Matrix"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:390
|
||||
#: src/app/notificationsmanager.cpp:141 src/app/notificationsmanager.cpp:386
|
||||
#, kde-format
|
||||
msgid "Encrypted Message"
|
||||
msgstr "加密的消息"
|
||||
@@ -174,40 +174,40 @@ msgstr "回复"
|
||||
msgid "Reply…"
|
||||
msgstr "回复…"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:306
|
||||
#: src/app/notificationsmanager.cpp:304
|
||||
#, kde-format
|
||||
msgid "%1 invited you to a room"
|
||||
msgstr "%1 邀请您加入聊天室"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:309
|
||||
#: src/app/notificationsmanager.cpp:307
|
||||
#, kde-format
|
||||
msgid "Open this invitation in NeoChat"
|
||||
msgstr "在 NeoChat 中打开此邀请"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:319
|
||||
#: src/app/notificationsmanager.cpp:317
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being accepted is an invitation to chat"
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#: src/app/notificationsmanager.cpp:318
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject"
|
||||
msgstr "拒绝"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:322
|
||||
#: src/app/notificationsmanager.cpp:320
|
||||
#, kde-format
|
||||
msgctxt "@action:button The thing being rejected is an invitation to chat"
|
||||
msgid "Reject and Ignore User"
|
||||
msgstr "拒绝并忽略用户"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:383
|
||||
#: src/app/notificationsmanager.cpp:379
|
||||
#, kde-format
|
||||
msgid "%1 (%2)"
|
||||
msgstr "%1 (%2)"
|
||||
|
||||
#: src/app/notificationsmanager.cpp:394
|
||||
#: src/app/notificationsmanager.cpp:390
|
||||
#, 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:200
|
||||
#: src/app/qml/AccountMenu.qml:73 src/roominfo/RoomInformation.qml:182
|
||||
#, 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:84
|
||||
#: src/app/qml/AccountMenu.qml:83
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Open Key Backup"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:89
|
||||
#: src/app/qml/AccountMenu.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Verify This Device"
|
||||
msgstr "验证此设备"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:46
|
||||
#: src/app/qml/AccountMenu.qml:94 src/settings/DevicesPage.qml:46
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr "验证请求已发送"
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:96 src/settings/DevicesPage.qml:47
|
||||
#: src/app/qml/AccountMenu.qml:95 src/settings/DevicesPage.qml:47
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/AccountMenu.qml:107
|
||||
#: src/app/qml/AccountMenu.qml:106
|
||||
#, 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:97
|
||||
#: src/app/qml/InvitationView.qml:98
|
||||
#, 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:112
|
||||
#: src/app/qml/InvitationView.qml:113
|
||||
#, kde-format
|
||||
msgctxt "@action:button Accept this invite"
|
||||
msgid "Accept Invite"
|
||||
msgstr "接受邀请"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:127
|
||||
#: src/app/qml/InvitationView.qml:128
|
||||
#, kde-format
|
||||
msgctxt "@action:button Reject this invite"
|
||||
msgid "Reject Invite"
|
||||
msgstr "拒绝邀请"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:141
|
||||
#: src/app/qml/InvitationView.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@action:button Block the user"
|
||||
msgid "Block %1"
|
||||
msgstr "屏蔽 %1"
|
||||
|
||||
#: src/app/qml/InvitationView.qml:180
|
||||
#: src/app/qml/InvitationView.qml:181
|
||||
#, 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:125
|
||||
#: src/app/qml/QrScannerPage.qml:16 src/rooms/ExploreComponent.qml:109
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Scan a QR Code"
|
||||
@@ -1031,63 +1031,63 @@ msgctxt "@action:button"
|
||||
msgid "Ignore"
|
||||
msgstr "忽略"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:95
|
||||
#: src/app/qml/RoomPage.qml:87
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Join Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Start Jitsi meeting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:98
|
||||
#: src/app/qml/RoomPage.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "You do not have permissions to start Jitsi meetings"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:137 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:109
|
||||
#: src/app/qml/RoomPage.qml:129 src/app/qml/UserDetailDialog.qml:285
|
||||
#: src/roominfo/RoomInformation.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:title"
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:150
|
||||
#: src/app/qml/RoomPage.qml:142
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "This room contains official messages from your homeserver."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:161
|
||||
#: src/app/qml/RoomPage.qml:153
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr "NeoChat 处于离线状态。请检查您的网络连接。"
|
||||
|
||||
#: src/app/qml/RoomPage.qml:221 src/roominfo/RoomInformation.qml:182
|
||||
#: src/app/qml/RoomPage.qml:213 src/roominfo/RoomInformation.qml:164
|
||||
#: src/roominfo/RoomPinnedMessagesPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:294
|
||||
#: src/app/qml/RoomPage.qml:285
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Welcome to NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:295
|
||||
#: src/app/qml/RoomPage.qml:286
|
||||
#, kde-format
|
||||
msgctxt "@info:usagetip"
|
||||
msgid "Select or join a room to get started"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/RoomPage.qml:356
|
||||
#: src/app/qml/RoomPage.qml:347
|
||||
#, kde-format
|
||||
msgctxt "@title:dialog"
|
||||
msgid "Message Source"
|
||||
@@ -1171,13 +1171,19 @@ 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:14
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:16
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Load your encrypted messages"
|
||||
msgstr "加载您的加密消息"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:36
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:35
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security key or backup passphrase was not correct."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:41
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
@@ -1185,67 +1191,43 @@ msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "The security phrase was not correct."
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key or Backup Passphrase"
|
||||
msgstr ""
|
||||
|
||||
#: 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 backup passphrase for this account, enter it below."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:62
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Backup Password:"
|
||||
msgstr "备份密码:"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:67 src/app/qml/UnlockSSSSDialog.qml:102
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:79
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock using Security Key"
|
||||
msgstr "使用安全密钥解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:83
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:52
|
||||
#, 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:"
|
||||
"If you have a security key or backup passphrase for this account, enter it "
|
||||
"below or upload it as a file."
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:92
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:56
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Security Key or Backup Passphrase:"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Upload from File"
|
||||
msgstr "从文件上传"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:113
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:71
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Unlock"
|
||||
msgstr "解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Unlock from Cross-Signing"
|
||||
msgstr "使用交叉签名解锁"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:117
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:86
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
@@ -1255,7 +1237,7 @@ msgstr ""
|
||||
"如果您以前曾验证过此设备,您可以通过点击下面的按钮来尝试从其他设备加载备份密"
|
||||
"钥。"
|
||||
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:122
|
||||
#: src/app/qml/UnlockSSSSDialog.qml:91
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Request from other Devices"
|
||||
@@ -1402,6 +1384,38 @@ 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"
|
||||
@@ -1607,22 +1621,22 @@ msgctxt "@action:button Done, we are finished with verification"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:235
|
||||
#: src/app/roommanager.cpp:213
|
||||
#, kde-format
|
||||
msgid "Malformed or empty Matrix id<br />%1 is not a correct Matrix identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:439
|
||||
#: src/app/roommanager.cpp:430
|
||||
#, kde-format
|
||||
msgid "Failed to join %1:<br />%2"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/roommanager.cpp:463
|
||||
#: src/app/roommanager.cpp:454
|
||||
#, kde-format
|
||||
msgid "You requested to join '%1'"
|
||||
msgstr "您请求加入 '%1'"
|
||||
|
||||
#: src/app/roommanager.cpp:467
|
||||
#: src/app/roommanager.cpp:458
|
||||
#, kde-format
|
||||
msgid "Failed to request joining room<br />%1"
|
||||
msgstr "加入聊天室 %1 失败"
|
||||
@@ -1703,7 +1717,7 @@ msgctxt "@placeholder"
|
||||
msgid "Send a message…"
|
||||
msgstr "发送一条消息..."
|
||||
|
||||
#: src/chatbar/ChatBar.qml:430 src/messagecontent/ChatBarComponent.qml:234
|
||||
#: src/chatbar/ChatBar.qml:432 src/messagecontent/ChatBarComponent.qml:234
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
@@ -1906,19 +1920,13 @@ 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:40
|
||||
#: src/devtools/FeatureFlagPage.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@option:check Enable the matrix feature for audio and video calling"
|
||||
msgid "Calls"
|
||||
@@ -2291,12 +2299,12 @@ msgstr "离开聊天室"
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:392
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "将 %1 移出了聊天室:%2"
|
||||
msgid "has removed %1 from the room: %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:394
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room"
|
||||
msgid "has removed %1 from the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/eventhandler.cpp:398
|
||||
@@ -3136,7 +3144,7 @@ msgctxt "@info the person that created this room"
|
||||
msgid "Creator"
|
||||
msgstr ""
|
||||
|
||||
#: src/libneochat/neochatconnection.cpp:71
|
||||
#: src/libneochat/neochatconnection.cpp:73
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -3159,12 +3167,12 @@ msgstr "聊天室创建失败:%1"
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "空间创建失败:%1"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1253
|
||||
#: src/libneochat/neochatroom.cpp:1254
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr "举报成功。"
|
||||
|
||||
#: src/libneochat/neochatroom.cpp:1618 src/libneochat/neochatroom.cpp:1626
|
||||
#: src/libneochat/neochatroom.cpp:1619 src/libneochat/neochatroom.cpp:1627
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -3638,12 +3646,12 @@ msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:154
|
||||
#: src/messagecontent/CodeComponent.qml:161
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "复制到剪贴板"
|
||||
|
||||
#: src/messagecontent/CodeComponent.qml:166
|
||||
#: src/messagecontent/CodeComponent.qml:173
|
||||
#: src/messagecontent/VideoComponent.qml:374
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
@@ -3846,13 +3854,13 @@ msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(已结束)"
|
||||
|
||||
#: src/messagecontent/pollhandler.cpp:306
|
||||
#: src/messagecontent/pollhandler.cpp:308
|
||||
#, 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:88
|
||||
#: src/messagecontent/ReactionComponent.qml:90
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -3887,7 +3895,7 @@ msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:163
|
||||
#: src/roominfo/LocationsPage.qml:17 src/roominfo/RoomInformation.qml:145
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
@@ -3898,18 +3906,18 @@ msgstr "位置"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "此聊天室中没有共享位置。"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:50
|
||||
#: src/roominfo/RoomDrawer.qml:120 src/roominfo/RoomDrawerPage.qml:49
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Room settings"
|
||||
msgstr "聊天室设置"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:92
|
||||
#: src/roominfo/RoomDrawer.qml:171 src/roominfo/RoomDrawerPage.qml:91
|
||||
#, kde-format
|
||||
msgid "Information"
|
||||
msgstr "信息"
|
||||
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:97
|
||||
#: src/roominfo/RoomDrawer.qml:176 src/roominfo/RoomDrawerPage.qml:96
|
||||
#, kde-format
|
||||
msgid "Media"
|
||||
msgstr "媒体"
|
||||
@@ -3926,102 +3934,102 @@ msgctxt "@action:title"
|
||||
msgid "Room Information"
|
||||
msgstr "聊天室信息"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:90
|
||||
#: src/roominfo/RoomInformation.qml:72
|
||||
#, kde-format
|
||||
msgctxt "Room actions"
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:100
|
||||
#: src/roominfo/RoomInformation.qml:82
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Search Messages"
|
||||
msgstr "搜索消息"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:117
|
||||
#: src/roominfo/RoomInformation.qml:99
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Verify user"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:128
|
||||
#: src/roominfo/RoomInformation.qml:110
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:141
|
||||
#: src/roominfo/RoomInformation.qml:123
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:147
|
||||
#: src/roominfo/RoomInformation.qml:129
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Extensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:157
|
||||
#: src/roominfo/RoomInformation.qml:139
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Shared Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:173
|
||||
#: src/roominfo/RoomInformation.qml:155
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:188
|
||||
#: src/roominfo/RoomInformation.qml:170
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Inspect Room Data"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Space…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:209
|
||||
#: src/roominfo/RoomInformation.qml:191
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Leave Room…"
|
||||
msgstr ""
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:222
|
||||
#: src/roominfo/RoomInformation.qml:204
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "成员"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:237 src/spaces/SpaceHomePage.qml:85
|
||||
#: src/roominfo/RoomInformation.qml:219 src/spaces/SpaceHomePage.qml:85
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Invite a User"
|
||||
msgstr "邀请用户"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:241
|
||||
#: src/roominfo/RoomInformation.qml:223
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "邀请用户到聊天室"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 位成员"
|
||||
|
||||
#: src/roominfo/RoomInformation.qml:248
|
||||
#: src/roominfo/RoomInformation.qml:230
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "无成员计数"
|
||||
@@ -4077,42 +4085,42 @@ msgctxt "@action:button"
|
||||
msgid "Remove widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:38
|
||||
#: src/rooms/ExploreComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Rooms"
|
||||
msgstr "聊天室"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:50
|
||||
#: src/rooms/ExploreComponent.qml:48
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Search Rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:75
|
||||
#: src/rooms/ExploreComponent.qml:61
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Menu"
|
||||
msgstr "显示菜单"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:94 src/rooms/ExploreComponentMobile.qml:65
|
||||
#: src/rooms/ExploreComponent.qml:78 src/rooms/ExploreComponentMobile.qml:65
|
||||
#, kde-format
|
||||
msgid "Find your friends"
|
||||
msgstr "查找好友"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:99 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/ExploreComponent.qml:83 src/rooms/ExploreComponentMobile.qml:72
|
||||
#: src/rooms/RoomListPage.qml:190 src/rooms/RoomListPage.qml:246
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Find your friends"
|
||||
msgstr "查找好友"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:104
|
||||
#: src/rooms/ExploreComponent.qml:88
|
||||
#, kde-format
|
||||
msgid "Create a Room"
|
||||
msgstr "创建聊天室"
|
||||
|
||||
#: src/rooms/ExploreComponent.qml:119
|
||||
#: src/rooms/ExploreComponent.qml:103
|
||||
#, kde-format
|
||||
msgid "Scan a QR Code"
|
||||
msgstr "扫描二维码"
|
||||
@@ -4144,13 +4152,13 @@ msgctxt "@action:button"
|
||||
msgid "Create a Space"
|
||||
msgstr "创建空间"
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#: src/rooms/models/roomtreemodel.cpp:364
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "Invited you to chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/models/roomtreemodel.cpp:368
|
||||
#: src/rooms/models/roomtreemodel.cpp:366
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
@@ -4232,6 +4240,38 @@ 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 ""
|
||||
@@ -4295,13 +4335,13 @@ msgctxt "@action:button"
|
||||
msgid "Search in friend directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Collapse <section name>"
|
||||
msgid "Collapse %1"
|
||||
msgstr "折叠 %1"
|
||||
|
||||
#: src/rooms/RoomTreeSection.qml:61
|
||||
#: src/rooms/RoomTreeSection.qml:59
|
||||
#, kde-format
|
||||
msgctxt "Expand <section name"
|
||||
msgid "Expand %1"
|
||||
@@ -6892,19 +6932,19 @@ msgctxt "@info text-to-speech %1 is author %2 is message text"
|
||||
msgid "%1 said %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Unpin' as in 'Unpin this message'"
|
||||
msgid "Unpin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:403
|
||||
#: src/timeline/DelegateContextMenu.qml:402
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Pin' as in 'Pin the message in the room'"
|
||||
msgid "Pin"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/DelegateContextMenu.qml:416
|
||||
#: src/timeline/DelegateContextMenu.qml:415
|
||||
#, kde-format
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "View Source"
|
||||
@@ -6971,31 +7011,31 @@ msgid ""
|
||||
"this point."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "跳转到第一条未读消息"
|
||||
|
||||
#: src/timeline/TimelineView.qml:241
|
||||
#: src/timeline/TimelineView.qml:214
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to oldest loaded message"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/TimelineView.qml:272
|
||||
#: src/timeline/TimelineView.qml:245
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Jump to latest message"
|
||||
msgstr "跳转到最新消息"
|
||||
|
||||
#: src/timeline/TimelineView.qml:307
|
||||
#: src/timeline/TimelineView.qml:279
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "拖动项目到此处来分享"
|
||||
|
||||
#: src/timeline/TimelineView.qml:332
|
||||
#: src/timeline/TimelineView.qml:304
|
||||
#, 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,7 +153,6 @@ 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,7 +246,10 @@ 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,7 +33,6 @@
|
||||
#include <KWindowSystem>
|
||||
#endif
|
||||
|
||||
#include <KIconTheme>
|
||||
#include <KLocalizedQmlContext>
|
||||
#include <KLocalizedString>
|
||||
#include <KirigamiApp>
|
||||
@@ -103,10 +102,6 @@ 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);
|
||||
@@ -166,12 +161,6 @@ 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,10 +211,6 @@
|
||||
<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 (room->isDirectChat()) {
|
||||
if (sender == room->displayName()) {
|
||||
notification->setTitle(sender);
|
||||
entry = text.toHtmlEscaped();
|
||||
} else {
|
||||
notification->setTitle(room->displayName());
|
||||
entry = i18n("%1: %2", sender, text.toHtmlEscaped());
|
||||
}
|
||||
|
||||
@@ -253,9 +253,7 @@ void NotificationsManager::postNotification(NeoChatRoom *room,
|
||||
notification->setReplyAction(std::move(replyAction));
|
||||
}
|
||||
|
||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
}
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
notification->sendEvent();
|
||||
}
|
||||
|
||||
@@ -349,9 +347,7 @@ void NotificationsManager::doPostInviteNotification(QPointer<NeoChatRoom> room)
|
||||
m_invitations.remove(room->id());
|
||||
});
|
||||
|
||||
if (Controller::instance().accounts()->rowCount() > 1) {
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
}
|
||||
notification->setHint(u"x-kde-origin-name"_s, room->localMember().id());
|
||||
|
||||
notification->sendEvent();
|
||||
}
|
||||
|
||||
@@ -79,7 +79,6 @@ 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,6 +54,12 @@ ColumnLayout {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
|
||||
Kirigami.Heading {
|
||||
text: root.currentRoom.displayName
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
|
||||
Kirigami.SelectableLabel {
|
||||
Layout.fillWidth: true
|
||||
font: Kirigami.Theme.smallFont
|
||||
@@ -61,12 +67,7 @@ ColumnLayout {
|
||||
visible: root.currentRoom && root.currentRoom.canonicalAlias
|
||||
text: root.currentRoom && root.currentRoom.canonicalAlias ? root.currentRoom.canonicalAlias : ""
|
||||
color: Kirigami.Theme.disabledTextColor
|
||||
}
|
||||
|
||||
Kirigami.Heading {
|
||||
text: root.currentRoom.displayName
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,13 +23,45 @@ Components.AlbumMaximizeComponent {
|
||||
*/
|
||||
required property NeoChatRoom currentRoom
|
||||
|
||||
readonly property string currentEventId: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.EventIdRole)
|
||||
readonly property string currentEventId: {
|
||||
const idx = (content as ListView).currentIndex;
|
||||
|
||||
readonly property var currentAuthor: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.AuthorRole)
|
||||
if (idx === -1) {
|
||||
return ""
|
||||
}
|
||||
|
||||
readonly property var currentTime: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.TimeRole)
|
||||
return model.data(model.index(idx, 0), TimelineMessageModel.EventIdRole)
|
||||
}
|
||||
|
||||
readonly property var currentProgressInfo: model.data(model.index((content as ListView).currentIndex, 0), TimelineMessageModel.ProgressInfoRole)
|
||||
readonly property var currentAuthor: {
|
||||
const idx = (content as ListView).currentIndex;
|
||||
|
||||
if (idx === -1) {
|
||||
return {}
|
||||
}
|
||||
|
||||
return model.data(model.index(idx, 0), TimelineMessageModel.AuthorRole)
|
||||
}
|
||||
|
||||
readonly property var currentTime: {
|
||||
|
||||
const idx = (content as ListView).currentIndex;
|
||||
|
||||
if (idx === -1) {
|
||||
return {}
|
||||
}
|
||||
|
||||
model.data(model.index(idx, 0), TimelineMessageModel.TimeRole)
|
||||
}
|
||||
|
||||
readonly property var currentProgressInfo: {
|
||||
const idx = (content as ListView).currentIndex;
|
||||
|
||||
if (idx === -1) {
|
||||
return {}
|
||||
}
|
||||
model.data(model.index(idx, 0), TimelineMessageModel.ProgressInfoRole)
|
||||
}
|
||||
|
||||
actions: [
|
||||
ShareAction {
|
||||
|
||||
@@ -22,7 +22,7 @@ Kirigami.SearchDialog {
|
||||
}
|
||||
|
||||
onAccepted: if (currentItem) {
|
||||
(root.currentItem as RoomDelegate).clicked();
|
||||
(currentItem as QQC2.ItemDelegate).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.Kirigami.PageStack.closeDialog();
|
||||
root.closeDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,14 +52,14 @@ Kirigami.Page {
|
||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole
|
||||
onClicked: {
|
||||
root.accepted(reason.text);
|
||||
root.Kirigami.PageStack.closeDialog();
|
||||
root.closeDialog();
|
||||
}
|
||||
}
|
||||
QQC2.Button {
|
||||
icon.name: "dialog-cancel-symbolic"
|
||||
text: i18nc("@action", "Cancel")
|
||||
QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole
|
||||
onClicked: root.Kirigami.PageStack.closeDialog()
|
||||
onClicked: root.closeDialog()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,14 +75,6 @@ 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
|
||||
@@ -121,7 +113,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()
|
||||
}
|
||||
@@ -263,7 +255,6 @@ Kirigami.Page {
|
||||
id: timelineView
|
||||
messageFilterModel: root.messageFilterModel
|
||||
compactLayout: NeoChatConfig.compactLayout
|
||||
fileDropEnabled: !Controller.isFlatpak
|
||||
markReadCondition: NeoChatConfig.markReadCondition
|
||||
}
|
||||
}
|
||||
@@ -298,7 +289,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
|
||||
@@ -358,7 +349,7 @@ Kirigami.Page {
|
||||
});
|
||||
}
|
||||
|
||||
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, selectedText: string, hoveredLink: string) {
|
||||
function onShowDelegateMenu(eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, isThread: bool, selectedText: string, hoveredLink: string) {
|
||||
(delegateContextMenu.createObject(root, {
|
||||
author: author,
|
||||
eventId: eventId,
|
||||
@@ -366,8 +357,6 @@ Kirigami.Page {
|
||||
mimeType: mimeType,
|
||||
progressInfo: progressInfo,
|
||||
messageComponentType: messageComponentType,
|
||||
selectedText,
|
||||
hoveredLink,
|
||||
}) as DelegateContextMenu).popup();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@ import org.kde.neochat
|
||||
FormCard.FormCardPage {
|
||||
id: root
|
||||
|
||||
property bool processing: false
|
||||
|
||||
title: i18nc("@title:window", "Load your encrypted messages")
|
||||
|
||||
topPadding: Kirigami.Units.gridUnit
|
||||
@@ -25,75 +27,42 @@ FormCard.FormCardPage {
|
||||
position: Kirigami.InlineMessage.Position.Header
|
||||
}
|
||||
|
||||
property SSSSHandler ssssHandler: SSSSHandler {
|
||||
id: ssssHandler
|
||||
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 bool processing: false
|
||||
|
||||
connection: Controller.activeConnection
|
||||
onKeyBackupUnlocked: {
|
||||
ssssHandler.processing = false
|
||||
function onKeyBackupUnlocked(): void {
|
||||
root.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 Passphrase")
|
||||
title: i18nc("@title", "Unlock using Security Key or Backup Passphrase")
|
||||
}
|
||||
FormCard.FormCard {
|
||||
FormCard.FormTextDelegate {
|
||||
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.")
|
||||
description: i18nc("@info", "If you have a security key or backup passphrase for this account, enter it below or upload it as a file.")
|
||||
}
|
||||
FormCard.FormTextFieldDelegate {
|
||||
id: securityKeyField
|
||||
label: i18nc("@label:textbox", "Security Key:")
|
||||
label: i18nc("@label:textbox", "Security Key or Backup Passphrase:")
|
||||
echoMode: TextInput.Password
|
||||
}
|
||||
FormCard.FormButtonDelegate {
|
||||
id: uploadSecurityKeyButton
|
||||
text: i18nc("@action:button", "Upload from File")
|
||||
icon.name: "cloud-upload"
|
||||
enabled: !ssssHandler.processing
|
||||
enabled: !root.processing
|
||||
onClicked: {
|
||||
ssssHandler.processing = true
|
||||
root.processing = true
|
||||
openFileDialog.open()
|
||||
}
|
||||
}
|
||||
@@ -101,10 +70,10 @@ FormCard.FormCardPage {
|
||||
id: unlockSecurityKeyButton
|
||||
text: i18nc("@action:button", "Unlock")
|
||||
icon.name: "unlock"
|
||||
enabled: securityKeyField.text.length > 0 && !ssssHandler.processing
|
||||
enabled: securityKeyField.text.length > 0 && !root.processing
|
||||
onClicked: {
|
||||
ssssHandler.processing = true
|
||||
ssssHandler.unlockSSSSFromSecurityKey(securityKeyField.text)
|
||||
root.processing = true
|
||||
Controller.activeConnection.unlockSSSS(securityKeyField.text)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,10 +89,10 @@ FormCard.FormCardPage {
|
||||
id: unlockCrossSigningButton
|
||||
icon.name: "emblem-shared-symbolic"
|
||||
text: i18nc("@action:button", "Request from other Devices")
|
||||
enabled: !ssssHandler.processing
|
||||
enabled: !root.processing
|
||||
onClicked: {
|
||||
ssssHandler.processing = true
|
||||
ssssHandler.unlockSSSSFromCrossSigning()
|
||||
root.processing = true
|
||||
Controller.activeConnection.unlockSSSS("")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,5 +293,25 @@ 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,28 +29,6 @@
|
||||
#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())
|
||||
@@ -346,6 +324,17 @@ 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;
|
||||
@@ -358,14 +347,16 @@ void RoomManager::loadInitialRoom()
|
||||
|
||||
void RoomManager::openRoomForActiveConnection()
|
||||
{
|
||||
Q_ASSERT(m_connection);
|
||||
|
||||
if (!m_connection) {
|
||||
setCurrentRoom({});
|
||||
setCurrentSpace({}, false);
|
||||
return;
|
||||
}
|
||||
auto lastSpace = m_lastRoomConfig.readEntry(u"lastSpace"_s, QString());
|
||||
if (lastSpace == u"Home"_s) {
|
||||
lastSpace.clear();
|
||||
}
|
||||
// We don't want to open a room on startup on mobile
|
||||
setCurrentSpace(lastSpace, !m_isMobile);
|
||||
setCurrentSpace(lastSpace, true);
|
||||
}
|
||||
|
||||
UriResolveResult RoomManager::visitUser(User *user, const QString &action)
|
||||
@@ -522,7 +513,7 @@ void RoomManager::setConnection(NeoChatConnection *connection)
|
||||
Q_EMIT connectionChanged();
|
||||
}
|
||||
|
||||
void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
||||
void RoomManager::setCurrentSpace(const QString &spaceId, bool setRoom)
|
||||
{
|
||||
m_currentSpaceId = spaceId;
|
||||
|
||||
@@ -542,65 +533,25 @@ void RoomManager::setCurrentSpace(const QString &spaceId, bool goToLastUsedRoom)
|
||||
m_lastRoomConfig.writeEntry(u"lastSpace"_s, spaceId.isEmpty() ? u"Home"_s : spaceId);
|
||||
}
|
||||
|
||||
// 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);
|
||||
if (!setRoom) {
|
||||
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 intentionally don't want to open the last room on mobile
|
||||
if (m_isMobile) {
|
||||
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({});
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
QString RoomManager::findSpaceIdForCurrentRoom() const
|
||||
{
|
||||
if (!m_currentRoom) {
|
||||
return m_currentSpaceId;
|
||||
if (!spaceId.isEmpty() && spaceId != u"DM"_s) {
|
||||
resolveResource(spaceId, "no_join"_L1);
|
||||
return;
|
||||
}
|
||||
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 {};
|
||||
setCurrentRoom({});
|
||||
}
|
||||
|
||||
void RoomManager::setCurrentRoom(const QString &roomId)
|
||||
@@ -620,25 +571,57 @@ void RoomManager::setCurrentRoom(const QString &roomId)
|
||||
}
|
||||
|
||||
Q_EMIT currentRoomChanged();
|
||||
|
||||
if (!m_dontUpdateLastRoom) {
|
||||
if (m_connection) {
|
||||
if (roomId.isEmpty()) {
|
||||
m_lastRoomConfig.deleteEntry(m_currentSpaceId);
|
||||
return;
|
||||
}
|
||||
|
||||
const auto spaceIdForRoom = findSpaceIdForCurrentRoom();
|
||||
// We can't have empty keys in KConfig, so name it "Home"
|
||||
if (spaceIdForRoom.isEmpty()) {
|
||||
m_lastRoomConfig.writeEntry(u"Home"_s, roomId);
|
||||
} else {
|
||||
m_lastRoomConfig.writeEntry(spaceIdForRoom, roomId);
|
||||
}
|
||||
|
||||
if (m_currentSpaceId != spaceIdForRoom) {
|
||||
setCurrentSpace(spaceIdForRoom, false);
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
setCurrentSpace({}, false);
|
||||
}
|
||||
|
||||
void RoomManager::clearCurrentRoom()
|
||||
|
||||
@@ -337,11 +337,6 @@ Q_SIGNALS:
|
||||
|
||||
void currentSpaceChanged();
|
||||
|
||||
protected:
|
||||
bool m_dontUpdateLastRoom = false; // Don't set directly, use LastRoomBlocker.
|
||||
|
||||
friend class LastRoomBlocker;
|
||||
|
||||
private:
|
||||
bool m_isMobile = false;
|
||||
|
||||
@@ -378,22 +373,8 @@ private:
|
||||
|
||||
void setCurrentRoom(const QString &roomId);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
// Space ID, "DM", or empty string
|
||||
void setCurrentSpace(const QString &spaceId, bool setRoom = true);
|
||||
|
||||
/**
|
||||
* @brief Resolve a user URI.
|
||||
|
||||
@@ -286,6 +286,8 @@ 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,12 +21,6 @@ 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,6 +33,8 @@ 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,6 +3,10 @@
|
||||
|
||||
#include "chatbarcache.h"
|
||||
|
||||
#include <QMimeData>
|
||||
|
||||
#include <KUrlMimeData>
|
||||
|
||||
#include <Quotient/roommember.h>
|
||||
|
||||
#include "eventhandler.h"
|
||||
@@ -295,4 +299,17 @@ 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,6 +198,8 @@ 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 put %1 out of the room: %2", subjectName, reason);
|
||||
return i18n("has removed %1 from the room: %2", subjectName, reason);
|
||||
}
|
||||
return i18n("has put %1 out of the room", subjectName);
|
||||
return i18n("has removed %1 from the room", subjectName);
|
||||
case Membership::Ban:
|
||||
if (e.senderId() != e.userId()) {
|
||||
if (e.reason().isEmpty()) {
|
||||
|
||||
14
src/libneochat/jobs/neochatreportroomjob.cpp
Normal file
14
src/libneochat/jobs/neochatreportroomjob.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "neochatreportroomjob.h"
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
NeochatReportRoomJob::NeochatReportRoomJob(const QString &userId, const QString &reason)
|
||||
: BaseJob(HttpVerb::Post, u"ReportRoomJob"_s, makePath(" /_matrix/client/v3/", userId, "/report"))
|
||||
{
|
||||
QJsonObject _dataJson;
|
||||
addParam<IfNotEmpty>(_dataJson, "reason"_L1, reason);
|
||||
setRequestData({_dataJson});
|
||||
}
|
||||
13
src/libneochat/jobs/neochatreportroomjob.h
Normal file
13
src/libneochat/jobs/neochatreportroomjob.h
Normal file
@@ -0,0 +1,13 @@
|
||||
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Quotient/jobs/basejob.h>
|
||||
|
||||
// TODO: Remove once libQuotient updates to Matrix API v1.14
|
||||
class NeochatReportRoomJob : public Quotient::BaseJob
|
||||
{
|
||||
public:
|
||||
explicit NeochatReportRoomJob(const QString &roomId, const QString &reason);
|
||||
};
|
||||
14
src/libneochat/jobs/neochatreportuserjob.cpp
Normal file
14
src/libneochat/jobs/neochatreportuserjob.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "neochatreportuserjob.h"
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
NeochatReportUserJob::NeochatReportUserJob(const QString &userId, const QString &reason)
|
||||
: BaseJob(HttpVerb::Post, u"ReportUserJob"_s, makePath("/_matrix/client/v3/users/", userId, "/report"))
|
||||
{
|
||||
QJsonObject _dataJson;
|
||||
addParam<IfNotEmpty>(_dataJson, "reason"_L1, reason);
|
||||
setRequestData({_dataJson});
|
||||
}
|
||||
13
src/libneochat/jobs/neochatreportuserjob.h
Normal file
13
src/libneochat/jobs/neochatreportuserjob.h
Normal file
@@ -0,0 +1,13 @@
|
||||
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Quotient/jobs/basejob.h>
|
||||
|
||||
// TODO: Remove once libQuotient updates to Matrix API v1.14
|
||||
class NeochatReportUserJob : public Quotient::BaseJob
|
||||
{
|
||||
public:
|
||||
explicit NeochatReportUserJob(const QString &userId, const QString &reason);
|
||||
};
|
||||
@@ -59,7 +59,7 @@ QList<ActionsModel::Action> actions{
|
||||
Action{
|
||||
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,10 +118,8 @@ void RoomListModel::connectRoomSignals(NeoChatRoom *room)
|
||||
connect(room, &Room::displaynameChanged, this, [this, room] {
|
||||
refresh(room, {DisplayNameRole});
|
||||
});
|
||||
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::unreadStatsChanged, this, [this, room] {
|
||||
refresh(room, {ContextNotificationCountRole, HasHighlightNotificationsRole, NotificationCountRole});
|
||||
});
|
||||
connect(room, &Room::notificationCountChanged, this, [this, room] {
|
||||
refresh(room);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <QImageReader>
|
||||
#include <QJsonDocument>
|
||||
|
||||
#include "jobs/neochatreportuserjob.h"
|
||||
#include "neochatroom.h"
|
||||
#include "spacehierarchycache.h"
|
||||
|
||||
@@ -19,6 +20,7 @@
|
||||
#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>
|
||||
@@ -75,37 +77,31 @@ void NeoChatConnection::connectSignals()
|
||||
Q_EMIT directChatInvitesChanged();
|
||||
for (const auto &chatId : additions) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
connect(chat, &Room::changed, this, [this](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
}
|
||||
connect(chat, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
});
|
||||
}
|
||||
}
|
||||
for (const auto &chatId : removals) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
disconnect(chat, &Room::changed, this, nullptr);
|
||||
disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
|
||||
}
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
||||
if (room->isDirectChat()) {
|
||||
connect(room, &Room::changed, this, [this](Room::Changes changes) {
|
||||
if (changes & (Room::Change::UnreadStats | Room::Change::Highlights)) {
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
}
|
||||
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
});
|
||||
}
|
||||
Q_EMIT roomInvitesChanged();
|
||||
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(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
});
|
||||
});
|
||||
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
||||
@@ -166,6 +162,10 @@ 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,4 +576,36 @@ 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,6 +222,13 @@ 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();
|
||||
@@ -259,6 +266,9 @@ 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,6 +346,10 @@ 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);
|
||||
}
|
||||
|
||||
@@ -1181,10 +1185,7 @@ 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())) {
|
||||
auto decryptedMessage = decryptMessage(*encEv);
|
||||
if (decryptedMessage) {
|
||||
event = std::move(decryptedMessage);
|
||||
}
|
||||
event = decryptMessage(*encEv);
|
||||
}
|
||||
m_pinnedMessage = EventHandler::richBody(this, event.get());
|
||||
Q_EMIT pinnedMessageChanged();
|
||||
@@ -1652,12 +1653,6 @@ void NeoChatRoom::downloadEventFromServer(const QString &eventId)
|
||||
}
|
||||
|
||||
event_ptr_tt<RoomEvent> event = fromJson<event_ptr_tt<RoomEvent>>(job->jsonData());
|
||||
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);
|
||||
},
|
||||
@@ -1843,4 +1838,9 @@ QString NeoChatRoom::pinnedMessage() const
|
||||
return m_pinnedMessage;
|
||||
}
|
||||
|
||||
void NeoChatRoom::report(const QString &reason)
|
||||
{
|
||||
connection()->callApi<NeochatReportRoomJob>(id(), reason);
|
||||
}
|
||||
|
||||
#include "moc_neochatroom.cpp"
|
||||
|
||||
@@ -622,6 +622,11 @@ 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 string roomAlias: room?.aliases[0] ?? ""
|
||||
readonly property var roomAlias: room.aliases[0]
|
||||
|
||||
spacing: 0
|
||||
Layout.fillWidth: true
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
@@ -43,8 +43,8 @@ void SpaceHierarchyCache::cacheSpaceHierarchy()
|
||||
Qt::SingleShotConnection);
|
||||
}
|
||||
|
||||
connect(neoChatRoom, &NeoChatRoom::changed, this, [this, neoChatRoom](NeoChatRoom::Changes changes) {
|
||||
if (neoChatRoom != nullptr && (changes & (NeoChatRoom::Change::UnreadStats | NeoChatRoom::Change::Highlights))) {
|
||||
connect(neoChatRoom, &NeoChatRoom::unreadStatsChanged, this, [this, neoChatRoom]() {
|
||||
if (neoChatRoom != nullptr) {
|
||||
const auto parents = parentSpaces(neoChatRoom->id());
|
||||
if (parents.count() > 0) {
|
||||
Q_EMIT spaceNotifcationCountChanged(parents);
|
||||
|
||||
@@ -121,6 +121,13 @@ QQC2.Control {
|
||||
}
|
||||
}
|
||||
|
||||
TapHandler {
|
||||
enabled: root.time.toString() !== "Invalid Date"
|
||||
acceptedButtons: Qt.LeftButton
|
||||
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad | PointerDevice.Stylus
|
||||
onTapped: RoomManager.maximizeCode(root.author, root.time, root.display, root.componentAttributes.class)
|
||||
}
|
||||
|
||||
TapHandler {
|
||||
acceptedDevices: PointerDevice.TouchScreen
|
||||
onLongPressed: RoomManager.viewEventMenu(root.eventId, root.Message.room, root.Message.selectedText, root.Message.hoveredLink);
|
||||
|
||||
@@ -23,7 +23,9 @@ Flow {
|
||||
*/
|
||||
required property ReactionModel reactionModel
|
||||
|
||||
// HACK: We do not set Layout properties here, see BUG 504344 for the crash it caused.
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.maximumWidth: Message.maxContentWidth
|
||||
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ RowLayout {
|
||||
Layout.fillHeight: true
|
||||
|
||||
implicitWidth: Kirigami.Units.smallSpacing
|
||||
color: root.replyContentModel.author?.color ?? Kirigami.Theme.highlightColor
|
||||
color: root.replyContentModel.author.color
|
||||
radius: Kirigami.Units.cornerRadius
|
||||
}
|
||||
ColumnLayout {
|
||||
|
||||
@@ -269,8 +269,6 @@ 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,6 +87,7 @@ QDateTime MessageContentModel::time() const
|
||||
QString MessageContentModel::timeString() const
|
||||
{
|
||||
return time().toLocalTime().toString(u"hh:mm"_s);
|
||||
;
|
||||
}
|
||||
|
||||
QString MessageContentModel::authorId() const
|
||||
|
||||
@@ -121,7 +121,9 @@ void PollHandler::handleResponse(const Quotient::PollResponseEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
m_selections[event->senderId()] = event->selections().size() > 0 ? event->selections().first(pollStartEvent->maxSelections()) : event->selections();
|
||||
m_selections[event->senderId()] = event->selections().size() > 0
|
||||
? event->selections().first(std::min(pollStartEvent->maxSelections(), (int)event->selections().size()))
|
||||
: event->selections();
|
||||
if (m_selections.contains(event->senderId()) && m_selections[event->senderId()].isEmpty()) {
|
||||
m_selections.remove(event->senderId());
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ ColumnLayout {
|
||||
|
||||
signal resolveResource(string idOrUri, string action)
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
spacing: 0
|
||||
|
||||
Item {
|
||||
|
||||
@@ -8,7 +8,6 @@ import org.kde.kirigami as Kirigami
|
||||
|
||||
import org.kde.neochat.libneochat
|
||||
import org.kde.neochat.timeline as Timeline
|
||||
import org.kde.neochat.settings as Settings
|
||||
|
||||
/**
|
||||
* @brief Page for holding a room drawer component.
|
||||
@@ -50,7 +49,7 @@ Kirigami.Page {
|
||||
text: i18nc("@action:button", "Room settings")
|
||||
icon.name: 'settings-configure-symbolic'
|
||||
onTriggered: {
|
||||
Settings.RoomSettingsView.openRoomSettings(root.room, Settings.RoomSettingsView.Room);
|
||||
RoomSettingsView.openRoomSettings(root.room, RoomSettingsView.Room);
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -48,10 +48,6 @@ QQC2.ScrollView {
|
||||
|
||||
ListView {
|
||||
id: userList
|
||||
|
||||
// Used to determine if the view has settled and should stop perfoming the hack
|
||||
property bool viewHasSettled: false
|
||||
|
||||
header: ColumnLayout {
|
||||
id: columnLayout
|
||||
|
||||
@@ -60,29 +56,15 @@ QQC2.ScrollView {
|
||||
spacing: 0
|
||||
width: ListView.view ? ListView.view.width - ListView.view.leftMargin - ListView.view.rightMargin : 0
|
||||
|
||||
// HACK: Resettle this ListView while our labels wrap themselves. ListView doesn't do this automatically.
|
||||
// We use the Timer to determine when its done internally reshuffling, so we don't accidentally send you to the top if you actually scrolled down.
|
||||
onHeightChanged: {
|
||||
if (!userList.viewHasSettled) {
|
||||
userList.positionViewAtBeginning();
|
||||
hackTimer.restart();
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: hackTimer
|
||||
|
||||
// The internal wrapping and height changes happen quickly, so we don't need a long interval here
|
||||
interval: 1
|
||||
onTriggered: userList.viewHasSettled = true
|
||||
}
|
||||
|
||||
Loader {
|
||||
active: true
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: Kirigami.Units.smallSpacing
|
||||
visible: !root.room.isSpace
|
||||
sourceComponent: root.room.isDirectChat() ? directChatDrawerHeader : groupChatDrawerHeader
|
||||
onItemChanged: if (item) {
|
||||
userList.positionViewAtBeginning();
|
||||
}
|
||||
}
|
||||
|
||||
Kirigami.ListSectionHeader {
|
||||
@@ -352,6 +334,5 @@ QQC2.ScrollView {
|
||||
userList.headerItem.userListSearchField.text = "";
|
||||
}
|
||||
userList.currentIndex = -1;
|
||||
userList.viewHasSettled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +32,6 @@ RowLayout {
|
||||
|
||||
Kirigami.Heading {
|
||||
Layout.fillWidth: true
|
||||
// Roughly equivalent to what Kirigami does for its built-in headings
|
||||
Layout.leftMargin: Kirigami.Units.gridUnit - Kirigami.Units.mediumSpacing
|
||||
visible: !root.collapsed
|
||||
text: i18nc("@title", "Rooms")
|
||||
}
|
||||
@@ -56,31 +54,19 @@ RowLayout {
|
||||
|
||||
QQC2.ToolButton {
|
||||
id: menuButton
|
||||
|
||||
property QQC2.Menu menuItem: null
|
||||
|
||||
function openMenu(): void {
|
||||
if (!menuItem || !menuItem.visible) {
|
||||
menuItem = menu.createObject(menuButton) as QQC2.Menu;
|
||||
menuItem.closed.connect(menuButton.toggle);
|
||||
menuItem.open();
|
||||
} else {
|
||||
menuItem.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
Accessible.role: Accessible.ButtonMenu
|
||||
Accessible.onPressAction: menuButton.action.trigger()
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
down: pressed || menuItem?.visible
|
||||
checkable: true
|
||||
text: i18nc("@action:button", "Show Menu")
|
||||
icon.name: "application-menu-symbolic"
|
||||
onClicked: {
|
||||
const item = menu.createObject(menuButton) as QQC2.Menu;
|
||||
item.closed.connect(menuButton.toggle);
|
||||
item.open();
|
||||
}
|
||||
|
||||
onPressed: openMenu()
|
||||
Keys.onReturnPressed: openMenu()
|
||||
Keys.onEnterPressed: openMenu()
|
||||
Accessible.onPressAction: openMenu()
|
||||
|
||||
QQC2.ToolTip.visible: hovered && !menuItem?.visible
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.text: text
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
}
|
||||
@@ -88,8 +74,6 @@ RowLayout {
|
||||
Component {
|
||||
id: menu
|
||||
QQC2.Menu {
|
||||
y: menuButton.height
|
||||
|
||||
QQC2.MenuItem {
|
||||
text: i18n("Find your friends")
|
||||
icon.name: "list-add-user"
|
||||
|
||||
@@ -46,7 +46,7 @@ KirigamiComponents.ConvergentContextMenu {
|
||||
QQC2.Action {
|
||||
text: i18nc("@action:inmenu", "Mark as Read")
|
||||
icon.name: "checkmark"
|
||||
enabled: root.room.notificationCount > 0
|
||||
enabled: root.room.notificationCount > 0 || root.room.highlightCount > 0
|
||||
onTriggered: root.room.markAllMessagesAsRead()
|
||||
}
|
||||
|
||||
@@ -150,6 +150,26 @@ KirigamiComponents.ConvergentContextMenu {
|
||||
separator: true
|
||||
}
|
||||
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:button 'Report' as in 'Report this room to the administrators'", "Report…")
|
||||
icon.name: "dialog-warning-symbolic"
|
||||
visible: root.connection.supportsMatrixSpecVersion("v1.13")
|
||||
onTriggered: {
|
||||
let dialog = (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), {
|
||||
title: i18nc("@title:dialog", "Report Room"),
|
||||
placeholder: i18nc("@info:placeholder", "Reason for reporting this room"),
|
||||
icon: "dialog-warning-symbolic",
|
||||
actionText: i18nc("@action:button 'Report' as in 'Report this room to the administrators'", "Report")
|
||||
}, {
|
||||
title: i18nc("@title", "Report Room"),
|
||||
width: Kirigami.Units.gridUnit * 25
|
||||
}) as ReasonDialog;
|
||||
dialog.accepted.connect(reason => {
|
||||
currentRoom.report(reason);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
QQC2.Action {
|
||||
text: i18nc("@action:inmenu", "Leave Room…")
|
||||
icon.name: "go-previous"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user