Compare commits

...

13 Commits

Author SHA1 Message Date
Tobias Fella
565fe1975b Remove duplicated corrosion 2025-03-22 17:55:30 +01:00
Tobias Fella
635b77d03e Add licenses 2025-03-22 17:45:08 +01:00
Tobias Fella
4d7b788160 Fix rust flatpak 2025-03-22 17:38:41 +01:00
Tobias Fella
9e24c855b6 Add corrosion 2025-03-22 17:28:34 +01:00
Tobias Fella
18bea02fa0 WIP 2025-03-22 17:17:39 +01:00
Tobias Fella
073e756364 Port to Integral 2025-03-22 17:10:33 +01:00
l10n daemon script
f153e57fdb GIT_SILENT Sync po/docbooks with svn 2025-03-12 01:39:11 +00:00
l10n daemon script
bac93e778e GIT_SILENT Sync po/docbooks with svn 2025-03-11 01:37:29 +00:00
James Graham
2aeed10429 Message attached property
Create Message attached property to propagate parameters like room, timeline, index and maxContentWidth down to the message content avoiding lots of boilerplate
2025-03-10 18:28:42 +00:00
l10n daemon script
ea6ad902a7 GIT_SILENT Sync po/docbooks with svn 2025-03-10 01:41:40 +00:00
James Graham
f9c53ee3b0 ThreePIDModel Updates
There is no need for NeochatConnection to depend on ThreePIdModel and also this means it's not in memory when not needed.

Also a little cleanup to make sure only a single job can run at a time.
2025-03-09 12:31:14 +00:00
l10n daemon script
3f0843647c GIT_SILENT Sync po/docbooks with svn 2025-03-09 01:36:22 +00:00
Albert Astals Cid
a50df870e7 GIT_SILENT Upgrade release service version to 25.07.70. 2025-03-08 19:26:23 +01:00
134 changed files with 11480 additions and 6607 deletions

View File

@@ -22,7 +22,20 @@
"--talk-name=org.freedesktop.secrets", "--talk-name=org.freedesktop.secrets",
"--own-name=org.kde.StatusNotifierItem-2-2" "--own-name=org.kde.StatusNotifierItem-2-2"
], ],
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.rust-stable"
],
"build-options": {
"append-path": "/usr/lib/sdk/rust-stable/bin",
"env": {
"RUST_BACKTRACE": "1",
"CARGO_NET_OFFLINE": "true",
"RUSTFLAGS": "--remap-path-prefix =../"
}
},
"modules": [ "modules": [
"flatpak/corrosion.json",
{ {
"name": "kirigamiaddons", "name": "kirigamiaddons",
"config-opts": [ "config-opts": [
@@ -50,25 +63,6 @@
} }
] ]
}, },
{
"name": "olm",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DOLM_TESTS=OFF"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.matrix.org/matrix-org/olm.git",
"tag": "3.2.16",
"x-checker-data": {
"type": "git",
"tag-pattern": "^([\\d.]+)$"
},
"commit": "7e0c8277032e40308987257b711b38af8d77cc69"
}
]
},
{ {
"name": "libsecret", "name": "libsecret",
"buildsystem": "meson", "buildsystem": "meson",
@@ -117,20 +111,15 @@
] ]
}, },
{ {
"name": "libQuotient", "name": "integral",
"buildsystem": "cmake-ninja", "buildsystem": "cmake-ninja",
"sources": [ "sources": [
"flatpak/generated-sources.json",
{ {
"type": "git", "type": "git",
"url": "https://github.com/quotient-im/libQuotient.git", "url": "https://invent.kde.org/tfella/integral.git",
"branch": "dev", "branch": "master"
"disable-submodules": true
} }
],
"config-opts": [
"-DBUILD_WITH_QT6=ON",
"-DQuotient_ENABLE_E2EE=ON",
"-DBUILD_TESTING=OFF"
] ]
}, },
{ {

View File

@@ -8,14 +8,14 @@ include:
- /gitlab-templates/json-validation.yml - /gitlab-templates/json-validation.yml
- /gitlab-templates/xml-lint.yml - /gitlab-templates/xml-lint.yml
- /gitlab-templates/yaml-lint.yml - /gitlab-templates/yaml-lint.yml
- /gitlab-templates/android-qt6.yml # - /gitlab-templates/android-qt6.yml
- /gitlab-templates/linux-qt6.yml # - /gitlab-templates/linux-qt6.yml
- /gitlab-templates/linux-qt6-next.yml # - /gitlab-templates/linux-qt6-next.yml
- /gitlab-templates/windows-qt6.yml # - /gitlab-templates/windows-qt6.yml
# - /gitlab-templates/freebsd-qt6.yml # - /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/flatpak.yml - /gitlab-templates/flatpak.yml
- /gitlab-templates/snap-snapcraft-lxd.yml # - /gitlab-templates/snap-snapcraft-lxd.yml
- /gitlab-templates/craft-android-qt6-apks.yml # - /gitlab-templates/craft-android-qt6-apks.yml
- /gitlab-templates/craft-appimage-qt6.yml # - /gitlab-templates/craft-appimage-qt6.yml
- /gitlab-templates/craft-windows-x86-64-qt6.yml # - /gitlab-templates/craft-windows-x86-64-qt6.yml
- /gitlab-templates/craft-windows-appx-qt6.yml # - /gitlab-templates/craft-windows-appx-qt6.yml

View File

@@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.16)
# KDE Applications version, managed by release script. # KDE Applications version, managed by release script.
set(RELEASE_SERVICE_VERSION_MAJOR "25") set(RELEASE_SERVICE_VERSION_MAJOR "25")
set(RELEASE_SERVICE_VERSION_MINOR "03") set(RELEASE_SERVICE_VERSION_MINOR "07")
set(RELEASE_SERVICE_VERSION_MICRO "70") set(RELEASE_SERVICE_VERSION_MICRO "70")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
@@ -49,8 +49,6 @@ if(NEOCHAT_FLATPAK)
include(cmake/Flatpak.cmake) include(cmake/Flatpak.cmake)
endif() endif()
set(QUOTIENT_FORCE_NAMESPACED_INCLUDES TRUE)
ecm_setup_version(${PROJECT_VERSION} ecm_setup_version(${PROJECT_VERSION}
VARIABLE_PREFIX NEOCHAT VARIABLE_PREFIX NEOCHAT
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h
@@ -107,13 +105,7 @@ if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU)
find_package(KF6DBusAddons ${KF_MIN_VERSION} REQUIRED) find_package(KF6DBusAddons ${KF_MIN_VERSION} REQUIRED)
endif() endif()
find_package(QuotientQt6 0.9) find_package(Integral 0.1 REQUIRED)
set_package_properties(QuotientQt6 PROPERTIES
TYPE REQUIRED
DESCRIPTION "Qt wrapper around Matrix API"
URL "https://github.com/quotient-im/libQuotient/"
PURPOSE "Talk with matrix server"
)
find_package(cmark) find_package(cmark)
set_package_properties(cmark PROPERTIES set_package_properties(cmark PROPERTIES

View File

@@ -12,6 +12,7 @@
#include "models/messagecontentmodel.h" #include "models/messagecontentmodel.h"
#include "neochatconnection.h"
#include "testutils.h" #include "testutils.h"
using namespace Quotient; using namespace Quotient;
@@ -32,7 +33,7 @@ private Q_SLOTS:
void MessageContentModelTest::initTestCase() void MessageContentModelTest::initTestCase()
{ {
connection = Connection::makeMockConnection(u"@bob:kde.org"_s); connection = new NeoChatConnection;
} }
void MessageContentModelTest::missingEvent() void MessageContentModelTest::missingEvent()

30
flatpak/corrosion.json Normal file
View File

@@ -0,0 +1,30 @@
{
"build-options": {
"env": {
"CARGO_HOME": "/run/build/corrosion/cargo"
}
},
"buildsystem": "cmake-ninja",
"cleanup": [
"/app"
],
"config-opts": [
"-DCORROSION_INSTALL_EXECUTABLE=OFF",
"-DCORROSION_BUILD_TESTS=OFF",
"-DCORROSION_DEV_MODE=OFF"
],
"name": "corrosion",
"sources": [
{
"sha256": "843334a9f0f5efbc225dccfa88031fe0f2ec6fd787ca1e7d55ed27b2c25d9c97",
"type": "archive",
"url": "https://github.com/corrosion-rs/corrosion/archive/refs/tags/v0.5.1.tar.gz",
"x-checker-data": {
"type": "anitya",
"project-id": 242799,
"stable-only": true,
"url-template": "https://github.com/corrosion-rs/corrosion/archive/refs/tags/v0.5.1.tar.gz"
}
}
]
}

View File

@@ -0,0 +1,2 @@
SPDX-FileCopyrightText: Jonah Brüchert <jbb@kaidan.im>
SPDX-License-Identifier: CC0-1.0

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
SPDX-FileCopyrightText: None
SPDX-License-Identifier: CC0-1.0

16
flatpak/regenerate-sources.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# SPDX-FileCopyrightText: Jonah Brüchert <jbb@kaidan.im>
# SPDX-License-Identifier: CC0-1.0
set -e
export GIT_CLONE_ARGS="--depth 1 --single-branch"
export FLATPAK_DIR="$(readlink -f $(dirname $0))"
cd ${FLATPAK_DIR}
if [ ! -d flatpak-builder-tools ]; then
git clone ${GIT_CLONE_ARGS} https://github.com/flatpak/flatpak-builder-tools
else
git -C flatpak-builder-tools pull
fi
./flatpak-builder-tools/cargo/flatpak-cargo-generator.py -o generated-sources.json ../../integral/src/sdk/Cargo.lock

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-02 10:41+0400\n" "PO-Revision-Date: 2025-03-08 21:40+0400\n"
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n" "Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"Language-Team: ar\n" "Language-Team: ar\n"
"Language: ar\n" "Language: ar\n"
@@ -1040,7 +1040,7 @@ msgstr "التسجيل معطل على هذا الخادم."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "يحمّل" msgstr "يحمّل"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "يحمّل..." msgstr "يحمّل..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1700,7 +1700,7 @@ msgstr "صورك التعبيرية"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "يحمّل الرد" msgstr "يحمّل الرد"
@@ -1966,7 +1966,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 دعاك" msgstr "%1 دعاك"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1974,18 +1974,18 @@ msgid ""
msgstr "" msgstr ""
"الملف كبير للغاية بحيث لا يمكن تحميله.<br />راسل مدير خادوم ماتركس للدعم." "الملف كبير للغاية بحيث لا يمكن تحميله.<br />راسل مدير خادوم ماتركس للدعم."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "لم يُضبط خادوم هوية بعد" msgstr "لم يُضبط خادوم هوية بعد"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "فشل إنشاء غرفة: %1" msgstr "فشل إنشاء غرفة: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "فشل إنشاء فضاء: %1" msgstr "فشل إنشاء فضاء: %1"
@@ -2125,13 +2125,13 @@ msgstr "تَثَبّت من هذا الجهاز"
#, kde-format #, kde-format
msgctxt "@title" msgctxt "@title"
msgid "Verification Request Sent" msgid "Verification Request Sent"
msgstr "" msgstr "أُرسل طلب التحقق"
#: src/qml/AccountMenu.qml:94 #: src/qml/AccountMenu.qml:94
#, kde-format #, kde-format
msgctxt "@info:label" msgctxt "@info:label"
msgid "To proceed, accept the verification request on another device." msgid "To proceed, accept the verification request on another device."
msgstr "" msgstr "للمتابعة، اقبل طلب التحقق على جهاز آخر."
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88 #: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
#, kde-format #, kde-format
@@ -5849,86 +5849,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "حدد المعامل لإضافته" msgstr "حدد المعامل لإضافته"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "أخفِ" msgstr "أخفِ"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "شارك" msgstr "شارك"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "أزِل" msgstr "أزِل"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "أكمل" msgstr "أكمل"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "ألغِ" msgstr "ألغِ"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "رمز البلد لرقم الهاتف الجديد" msgstr "رمز البلد لرقم الهاتف الجديد"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "عنوان بريد إلكتروني جديد:" msgstr "عنوان بريد إلكتروني جديد:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "رقم الهاتف الجديد:" msgstr "رقم الهاتف الجديد:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "لقد أرسلنا لك رسالة بالبريد الإلكتروني" msgstr "لقد أرسلنا لك رسالة بالبريد الإلكتروني"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "لقد أرسلنا لك رسالة نصية" msgstr "لقد أرسلنا لك رسالة نصية"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أدناه" msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أدناه"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "البريد الإلكتروني الذي أدخلته غير صالح" msgstr "البريد الإلكتروني الذي أدخلته غير صالح"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "رقم الهاتف الذي أدخلته غير صالح" msgstr "رقم الهاتف الذي أدخلته غير صالح"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "أدخلت كلمة سر خاطئة" msgstr "أدخلت كلمة سر خاطئة"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5937,7 +5937,7 @@ msgstr ""
"لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع " "لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع "
"التعليمات هناك ثم انقر فوق الزر أدناه" "التعليمات هناك ثم انقر فوق الزر أدناه"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5946,25 +5946,25 @@ msgstr ""
"لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات " "لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات "
"هناك ثم انقر فوق الزر أدناه" "هناك ثم انقر فوق الزر أدناه"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "أضف" msgstr "أضف"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "عُد" msgstr "عُد"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أعلاه" msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أعلاه"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5973,7 +5973,7 @@ msgstr ""
"لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع " "لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع "
"التعليمات هناك ثم انقر فوق الزر أعلاه" "التعليمات هناك ثم انقر فوق الزر أعلاه"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5982,55 +5982,55 @@ msgstr ""
"لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات " "لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات "
"هناك ثم انقر فوق الزر أعلاه" "هناك ثم انقر فوق الزر أعلاه"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "بدأ %1 عملية تَثَبّت لمستخدم" msgstr "بدأ %1 عملية تَثَبّت لمستخدم"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "أكد التحرير" msgstr "أكد التحرير"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "أرسل رسالة في الموضوع" msgstr "أرسل رسالة في الموضوع"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "انسخ إلى الحافظة" msgstr "انسخ إلى الحافظة"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "كبّر" msgstr "كبّر"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "هذه الرسالة مشفرة ولم يشارك المرسل المفتاح مع هذا الجهاز." msgstr "هذه الرسالة مشفرة ولم يشارك المرسل المفتاح مع هذا الجهاز."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "اجلب أحداث أكثر" msgstr "اجلب أحداث أكثر"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "نزّل" msgstr "نزّل"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6038,13 +6038,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "افتح الملف" msgstr "افتح الملف"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6073,47 +6073,47 @@ msgstr "وقت تسجيل الوصول: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "وقت تسجيل الخروج: %1" msgstr "وقت تسجيل الخروج: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "أظهر الصورة" msgstr "أظهر الصورة"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "أرسل إلى كِيدِي Itinerary" msgstr "أرسل إلى كِيدِي Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "أزل المعاينة" msgstr "أزل المعاينة"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "صغر المعاينة" msgstr "صغر المعاينة"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "وسع المعاينة" msgstr "وسع المعاينة"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "يحمل معاينة الرابط" msgstr "يحمل معاينة الرابط"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "افتحه خارجيا" msgstr "افتحه خارجيا"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6124,13 +6124,13 @@ msgstr[3] "بالاعتماد على أصوات %1 مستخدمين"
msgstr[4] "بالاعتماد على أصوات %1 مستخدماً" msgstr[4] "بالاعتماد على أصوات %1 مستخدماً"
msgstr[5] "بالاعتماد على أصوات %1 مستخدم" msgstr[5] "بالاعتماد على أصوات %1 مستخدم"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(انتهى)" msgstr "(انتهى)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6142,7 +6142,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "آخر قراءة: %1" msgstr "آخر قراءة: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6161,24 +6161,24 @@ msgstr "هذه هي بداية الدردشة. ولا توجد رسائل قدي
msgid "Pl. %1" msgid "Pl. %1"
msgstr "المنصة %1" msgstr "المنصة %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "فيديو" msgstr "فيديو"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "أظهر الفيديو" msgstr "أظهر الفيديو"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "الصوت" msgstr "الصوت"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "كبّر" msgstr "كبّر"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2023-12-12 01:02+0100\n" "PO-Revision-Date: 2023-12-12 01:02+0100\n"
"Last-Translator: Enol P. <enolp@softastur.org>\n" "Last-Translator: Enol P. <enolp@softastur.org>\n"
"Language-Team: Asturian <alministradores@softastur.org>\n" "Language-Team: Asturian <alministradores@softastur.org>\n"
@@ -1027,7 +1027,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "" msgstr ""
@@ -1057,7 +1057,7 @@ msgid "Loading…"
msgstr "" msgstr ""
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1687,7 +1687,7 @@ msgstr ""
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "" msgstr ""
@@ -1939,25 +1939,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "" msgstr ""
@@ -5780,180 +5780,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5961,13 +5961,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -5996,60 +5996,60 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "" msgstr ""
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "" msgstr ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6061,7 +6061,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "" msgstr ""
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6080,24 +6080,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2022-07-22 12:13+0400\n" "PO-Revision-Date: 2022-07-22 12:13+0400\n"
"Last-Translator: Kheyyam <xxmn77@gmail.com>\n" "Last-Translator: Kheyyam <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n" "Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"
@@ -1140,7 +1140,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1173,7 +1173,7 @@ msgid "Loading…"
msgstr "Yüklənir..." msgstr "Yüklənir..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1897,7 +1897,7 @@ msgstr "Xüsusi Emoji"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2211,26 +2211,26 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1,sizi otağa dəvət etdi" msgstr "%1,sizi otağa dəvət etdi"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Otaq yaradıla bilmədi: \"%1\"" msgstr "Otaq yaradıla bilmədi: \"%1\""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6441,47 +6441,47 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Paylaşmaq" msgstr "Paylaşmaq"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Silmək" msgstr "Silmək"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Yığcam" msgstr "Yığcam"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "İmtina" msgstr "İmtina"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "their refers to a singular user" #| msgctxt "their refers to a singular user"
#| msgid "cleared their display name" #| msgid "cleared their display name"
@@ -6489,68 +6489,68 @@ msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "onların görünən adı silindi" msgstr "onların görünən adı silindi"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Üzvlər" msgstr "Üzvlər"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send a message…" #| msgid "Send a message…"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "İsmarıcı göndərin..." msgstr "İsmarıcı göndərin..."
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Səhv şifrə daxil edildi" msgstr "Səhv şifrə daxil edildi"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Əlavə etmək" msgstr "Əlavə etmək"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6558,80 +6558,80 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Geriyə" msgstr "Geriyə"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew %1's invitation" #| msgid "withdrew %1's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 dəvəti geri çəkildi" msgstr "%1 dəvəti geri çəkildi"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm" #| msgid "Confirm"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Təsdiq etmək" msgstr "Təsdiq etmək"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No rooms found" #| msgid "No rooms found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Otaqlar tapılmadı" msgstr "Otaqlar tapılmadı"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:inmenu" #| msgctxt "@action:inmenu"
#| msgid "Copy address to clipboard" #| msgid "Copy address to clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Ünvanı mübadilə yaddaşına kopyalayın" msgstr "Ünvanı mübadilə yaddaşına kopyalayın"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "Bu ismarıc şifrələnib və göndərən açarı bu cihaz ilə paylaşmadı." msgstr "Bu ismarıc şifrələnib və göndərən açarı bu cihaz ilə paylaşmadı."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Endirmək" msgstr "Endirmək"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6639,13 +6639,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Faylıın" msgstr "Faylıın"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6674,63 +6674,63 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "cleared the room name" #| msgid "cleared the room name"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "otağın adını silmək" msgstr "otağın adını silmək"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Cihazı silmək" msgstr "Cihazı silmək"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Xaricdə açmaq" msgstr "Xaricdə açmaq"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6743,7 +6743,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Sonuncu oxuma: %1" msgstr "Sonuncu oxuma: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6763,25 +6763,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 09:03+0100\n" "PO-Revision-Date: 2025-03-06 09:03+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n" "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n" "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@@ -1043,7 +1043,7 @@ msgstr "El registre està desactivat en aquest servidor."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "S'està carregant" msgstr "S'està carregant"
@@ -1075,7 +1075,7 @@ msgid "Loading…"
msgstr "S'està carregant…" msgstr "S'està carregant…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1707,7 +1707,7 @@ msgstr "Emojis propis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "S'està carregant la resposta" msgstr "S'està carregant la resposta"
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 us ha convidat" msgstr "%1 us ha convidat"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1976,18 +1976,18 @@ msgstr ""
"El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del " "El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del "
"servidor Matrix per a ajuda." "servidor Matrix per a ajuda."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "No s'ha configurat cap servidor d'identitats" msgstr "No s'ha configurat cap servidor d'identitats"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Ha fallat la creació de la sala: %1" msgstr "Ha fallat la creació de la sala: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Ha fallat la creació de l'espai: %1" msgstr "Ha fallat la creació de l'espai: %1"
@@ -5909,86 +5909,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Selecció del paràmetre a afegir" msgstr "Selecció del paràmetre a afegir"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Oculta" msgstr "Oculta"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Comparteix" msgstr "Comparteix"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Elimina" msgstr "Elimina"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completa" msgstr "Completa"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancel·la" msgstr "Cancel·la"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Codi de país del número nou de telèfon" msgstr "Codi de país del número nou de telèfon"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Adreça de correu electrònic nova:" msgstr "Adreça de correu electrònic nova:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Número de telèfon nou:" msgstr "Número de telèfon nou:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Us hem enviat un correu electrònic" msgstr "Us hem enviat un correu electrònic"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Us hem enviat un missatge de text" msgstr "Us hem enviat un missatge de text"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de sota" msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de sota"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "El correu electrònic que heu introduït no és vàlid" msgstr "El correu electrònic que heu introduït no és vàlid"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "El número de telèfon que heu introduït no és vàlid" msgstr "El número de telèfon que heu introduït no és vàlid"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "S'ha introduït una contrasenya incorrecta" msgstr "S'ha introduït una contrasenya incorrecta"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5997,7 +5997,7 @@ msgstr ""
"El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu " "El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu "
"les seves instruccions i després feu clic al botó de sota" "les seves instruccions i després feu clic al botó de sota"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6006,25 +6006,25 @@ msgstr ""
"El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu " "El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu "
"les seves instruccions i després feu clic al botó de sota" "les seves instruccions i després feu clic al botó de sota"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Afegeix" msgstr "Afegeix"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Enrere" msgstr "Enrere"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de dalt" msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de dalt"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6033,7 +6033,7 @@ msgstr ""
"El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu " "El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu "
"les seves instruccions i després feu clic al botó de dalt" "les seves instruccions i després feu clic al botó de dalt"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6042,35 +6042,35 @@ msgstr ""
"El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu " "El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu "
"les seves instruccions i després feu clic al botó de dalt" "les seves instruccions i després feu clic al botó de dalt"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ha començat una verificació d'usuari" msgstr "%1 ha començat una verificació d'usuari"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirma l'edició" msgstr "Confirma l'edició"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publica un missatge en el fil" msgstr "Publica un missatge en el fil"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copia al porta-retalls" msgstr "Copia al porta-retalls"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6079,20 +6079,20 @@ msgstr ""
"Aquest missatge està encriptat i el remitent no ha compartit la clau amb " "Aquest missatge està encriptat i el remitent no ha compartit la clau amb "
"aquest dispositiu." "aquest dispositiu."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Recupera més esdeveniments" msgstr "Recupera més esdeveniments"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Baixa" msgstr "Baixa"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6100,13 +6100,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Obre el fitxer" msgstr "Obre el fitxer"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6135,60 +6135,60 @@ msgstr "Hora d'entrada: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Hora de sortida: %1" msgstr "Hora de sortida: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Mostra la imatge" msgstr "Mostra la imatge"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Envia al KDE Itinerary" msgstr "Envia al KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Elimina la vista prèvia" msgstr "Elimina la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Encongeix la vista prèvia" msgstr "Encongeix la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandeix la vista prèvia" msgstr "Expandeix la vista prèvia"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "S'està carregant la vista prèvia de l'URL" msgstr "S'està carregant la vista prèvia de l'URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Obre externament" msgstr "Obre externament"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basat en els vots d'%1 usuari" msgstr[0] "Basat en els vots d'%1 usuari"
msgstr[1] "Basat en els vots de %1 usuaris" msgstr[1] "Basat en els vots de %1 usuaris"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Finalitzat)" msgstr "(Finalitzat)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6200,7 +6200,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última lectura: %1" msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6222,24 +6222,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "An. %1" msgstr "An. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Mostra el vídeo" msgstr "Mostra el vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volum" msgstr "Volum"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 09:03+0100\n" "PO-Revision-Date: 2025-03-06 09:03+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n" "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n" "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@@ -1045,7 +1045,7 @@ msgstr "El registre està desactivat en este servidor."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "S'està carregant" msgstr "S'està carregant"
@@ -1077,7 +1077,7 @@ msgid "Loading…"
msgstr "S'està carregant…" msgstr "S'està carregant…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1709,7 +1709,7 @@ msgstr "Emoji propis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "S'està carregant la resposta" msgstr "S'està carregant la resposta"
@@ -1969,7 +1969,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 vos ha convidat" msgstr "%1 vos ha convidat"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1978,18 +1978,18 @@ msgstr ""
"El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del " "El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del "
"servidor Matrix per a ajuda." "servidor Matrix per a ajuda."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "No s'ha configurat cap servidor d'identitats" msgstr "No s'ha configurat cap servidor d'identitats"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "No s'ha pogut crear la sala: %1" msgstr "No s'ha pogut crear la sala: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "No s'ha pogut crear l'espai: %1" msgstr "No s'ha pogut crear l'espai: %1"
@@ -5909,87 +5909,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Seleccioneu el paràmetre a afegir" msgstr "Seleccioneu el paràmetre a afegir"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Oculta" msgstr "Oculta"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Compartix" msgstr "Compartix"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Elimina" msgstr "Elimina"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completa" msgstr "Completa"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancel·la" msgstr "Cancel·la"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Codi de país del número nou de telèfon" msgstr "Codi de país del número nou de telèfon"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Adreça de correu electrònic nova:" msgstr "Adreça de correu electrònic nova:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Número de telèfon nou:" msgstr "Número de telèfon nou:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Vos hem enviat un correu electrònic" msgstr "Vos hem enviat un correu electrònic"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Vos hem enviat un missatge de text" msgstr "Vos hem enviat un missatge de text"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
"%1. Seguiu les seues instruccions i després feu clic en el botó de davall" "%1. Seguiu les seues instruccions i després feu clic en el botó de davall"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "El correu electrònic que heu introduït no és vàlid" msgstr "El correu electrònic que heu introduït no és vàlid"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "El número de telèfon que heu introduït no és vàlid" msgstr "El número de telèfon que heu introduït no és vàlid"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "S'ha introduït una contrasenya incorrecta" msgstr "S'ha introduït una contrasenya incorrecta"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5998,7 +5998,7 @@ msgstr ""
"El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i " "El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i "
"seguiu les seues instruccions i després feu clic en el botó de davall" "seguiu les seues instruccions i després feu clic en el botó de davall"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6007,26 +6007,26 @@ msgstr ""
"El número de telèfon no s'ha verificat. Aneu fins al missatge de text i " "El número de telèfon no s'ha verificat. Aneu fins al missatge de text i "
"seguiu les seues instruccions i després feu clic en el botó de davall" "seguiu les seues instruccions i després feu clic en el botó de davall"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Afig" msgstr "Afig"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Arrere" msgstr "Arrere"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
"%1. Seguiu les seues instruccions i després feu clic en el botó de dalt" "%1. Seguiu les seues instruccions i després feu clic en el botó de dalt"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6035,7 +6035,7 @@ msgstr ""
"El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i " "El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i "
"seguiu les seues instruccions i després feu clic en el botó de dalt" "seguiu les seues instruccions i després feu clic en el botó de dalt"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6044,35 +6044,35 @@ msgstr ""
"El número de telèfon no s'ha verificat. Aneu fins al missatge de text i " "El número de telèfon no s'ha verificat. Aneu fins al missatge de text i "
"seguiu les seues instruccions i després feu clic en el botó de dalt" "seguiu les seues instruccions i després feu clic en el botó de dalt"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ha començat una verificació d'usuari" msgstr "%1 ha començat una verificació d'usuari"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirma l'edició" msgstr "Confirma l'edició"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publica un missatge en el fil" msgstr "Publica un missatge en el fil"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copia a dins del porta-retalls" msgstr "Copia a dins del porta-retalls"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6081,20 +6081,20 @@ msgstr ""
"Este missatge està encriptat i el remitent no ha compartit la clau amb este " "Este missatge està encriptat i el remitent no ha compartit la clau amb este "
"dispositiu." "dispositiu."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Recupera més esdeveniments" msgstr "Recupera més esdeveniments"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Baixa" msgstr "Baixa"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6102,13 +6102,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Obri el fitxer" msgstr "Obri el fitxer"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6137,60 +6137,60 @@ msgstr "Hora d'entrada: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Hora d'eixida: %1" msgstr "Hora d'eixida: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Mostra la imatge" msgstr "Mostra la imatge"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Envia a KDE Itinerary" msgstr "Envia a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Elimina la vista prèvia" msgstr "Elimina la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Encull la vista prèvia" msgstr "Encull la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandix la vista prèvia" msgstr "Expandix la vista prèvia"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "S'està carregant la vista prèvia de l'URL" msgstr "S'està carregant la vista prèvia de l'URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Obri externament" msgstr "Obri externament"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basat en els vots d'%1 usuari" msgstr[0] "Basat en els vots d'%1 usuari"
msgstr[1] "Basat en els vots de %1 usuaris" msgstr[1] "Basat en els vots de %1 usuaris"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Finalitzat)" msgstr "(Finalitzat)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6202,7 +6202,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última lectura: %1" msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6224,24 +6224,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "An. %1" msgstr "An. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Mostra el vídeo" msgstr "Mostra el vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volum" msgstr "Volum"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-09-17 15:24+0200\n" "PO-Revision-Date: 2024-09-17 15:24+0200\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n" "Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n" "Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@ -1028,7 +1028,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Načítání" msgstr "Načítání"
@@ -1058,7 +1058,7 @@ msgid "Loading…"
msgstr "Probíhá načítání…" msgstr "Probíhá načítání…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1688,7 +1688,7 @@ msgstr "Vlastní emotikony"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "" msgstr ""
@@ -1943,25 +1943,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Vytvoření místnosti selhalo: %1" msgstr "Vytvoření místnosti selhalo: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Vytvoření místnosti selhalo: %1" msgstr "Vytvoření místnosti selhalo: %1"
@@ -5800,180 +5800,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Skrýt" msgstr "Skrýt"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Sdílet" msgstr "Sdílet"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Odstranit" msgstr "Odstranit"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Dokončeno" msgstr "Dokončeno"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Zrušit" msgstr "Zrušit"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nová e-mailová adresa:" msgstr "Nová e-mailová adresa:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nové telefonní číslo:" msgstr "Nové telefonní číslo:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Přidat" msgstr "Přidat"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Zpět" msgstr "Zpět"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Potvrdit úpravy" msgstr "Potvrdit úpravy"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Napsat zprávu do vlákna" msgstr "Napsat zprávu do vlákna"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Zkopírovat do schránky" msgstr "Zkopírovat do schránky"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizovat" msgstr "Maximalizovat"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Stáhnout" msgstr "Stáhnout"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5981,13 +5981,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Otevřít soubor" msgstr "Otevřít soubor"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6016,47 +6016,47 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Zobrazit obrázek" msgstr "Zobrazit obrázek"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Poslat do itineráře KDE" msgstr "Poslat do itineráře KDE"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Odstranit náhled" msgstr "Odstranit náhled"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Zmenšit náhled" msgstr "Zmenšit náhled"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Roztáhnout náhled" msgstr "Roztáhnout náhled"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Načítá se náhled URL" msgstr "Načítá se náhled URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Otevřít externě" msgstr "Otevřít externě"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6064,13 +6064,13 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] "" msgstr[2] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Ukončeno)" msgstr "(Ukončeno)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6082,7 +6082,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Poslední přístup ke čtení: %1" msgstr "Poslední přístup ke čtení: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6101,24 +6101,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Zobrazit video" msgstr "Zobrazit video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Hlasitost" msgstr "Hlasitost"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizovat" msgstr "Maximalizovat"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2020-12-13 17:28+0100\n" "PO-Revision-Date: 2020-12-13 17:28+0100\n"
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n" "Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
"Language-Team: Danish <kde-i18n-doc@kde.org>\n" "Language-Team: Danish <kde-i18n-doc@kde.org>\n"
@@ -1077,7 +1077,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading" #| msgid "Loading"
msgid "Loading" msgid "Loading"
@@ -1109,7 +1109,7 @@ msgid "Loading…"
msgstr "Indlæser" msgstr "Indlæser"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1755,7 +1755,7 @@ msgstr ""
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading" #| msgid "Loading"
msgid "Loading reply" msgid "Loading reply"
@@ -2032,26 +2032,26 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Login Failed" #| msgid "Login Failed"
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Login mislykkedes" msgstr "Login mislykkedes"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Login Failed" #| msgid "Login Failed"
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6100,187 +6100,187 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Fjern" msgstr "Fjern"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Annullér" msgstr "Annullér"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Medlemmer" msgstr "Medlemmer"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Send besked" msgstr "Send besked"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Tilføj" msgstr "Tilføj"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Annullér" msgstr "Annullér"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Send besked" msgstr "Send besked"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6288,13 +6288,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6323,63 +6323,63 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Username" #| msgid "Username"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Brugernavn" msgstr "Brugernavn"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Fjern" msgstr "Fjern"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Åbn eksternt" msgstr "Åbn eksternt"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6391,7 +6391,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "" msgstr ""
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6411,25 +6411,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Username" #| msgid "Username"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Brugernavn" msgstr "Brugernavn"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-01-08 15:55+0100\n" "PO-Revision-Date: 2025-01-08 15:55+0100\n"
"Last-Translator: Johannes Obermayr <johannesobermayr@gmx.de>\n" "Last-Translator: Johannes Obermayr <johannesobermayr@gmx.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n" "Language-Team: German <kde-i18n-de@kde.org>\n"
@@ -1050,7 +1050,7 @@ msgstr "Die Registrierung ist auf diesem Server deaktiviert."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Wird geladen" msgstr "Wird geladen"
@@ -1081,7 +1081,7 @@ msgid "Loading…"
msgstr "Wird geladen …" msgstr "Wird geladen …"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1718,7 +1718,7 @@ msgstr "Eigene Emojis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Antwort wird geladen" msgstr "Antwort wird geladen"
@@ -1990,7 +1990,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 hat Sie in einen Raum eingeladen" msgstr "%1 hat Sie in einen Raum eingeladen"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1999,18 +1999,18 @@ msgstr ""
"Die Datei ist zu groß für das Herunterladen.<br />Kontaktieren Sie den " "Die Datei ist zu groß für das Herunterladen.<br />Kontaktieren Sie den "
"Administrator Ihres Matrix-Servers für die Unterstützung." "Administrator Ihres Matrix-Servers für die Unterstützung."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Erstellen des Raums ist fehlgeschlagen: %1" msgstr "Erstellen des Raums ist fehlgeschlagen: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Erstellen der Umgebung ist fehlgeschlagen: %1" msgstr "Erstellen der Umgebung ist fehlgeschlagen: %1"
@@ -5968,162 +5968,162 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Ausblenden" msgstr "Ausblenden"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Teilen" msgstr "Teilen"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Kompakt" msgstr "Kompakt"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Länderkennung für die neue Telefonnummer" msgstr "Länderkennung für die neue Telefonnummer"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Neue E-Mail-Adresse:" msgstr "Neue E-Mail-Adresse:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Neue Telefonnummer:" msgstr "Neue Telefonnummer:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "sent a message" #| msgid "sent a message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "hat eine Nachricht gesendet" msgstr "hat eine Nachricht gesendet"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Die eingegebene E-Mail-Adresse ist nicht gültig" msgstr "Die eingegebene E-Mail-Adresse ist nicht gültig"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Die eingegebene Telefonnummer ist nicht gültig" msgstr "Die eingegebene Telefonnummer ist nicht gültig"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Falsches Passwort eingegeben" msgstr "Falsches Passwort eingegeben"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Zurück" msgstr "Zurück"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 startete eine Überprüfung des Benutzers" msgstr "%1 startete eine Überprüfung des Benutzers"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Änderungen bestätigen" msgstr "Änderungen bestätigen"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Nachricht im Diskussionsfaden senden" msgstr "Nachricht im Diskussionsfaden senden"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "In die Zwischenablage kopieren" msgstr "In die Zwischenablage kopieren"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximieren" msgstr "Maximieren"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6132,20 +6132,20 @@ msgstr ""
"Diese Nachricht ist verschlüsselt und der Absender hat den Schlüssel nicht " "Diese Nachricht ist verschlüsselt und der Absender hat den Schlüssel nicht "
"mit diesem Gerät geteilt." "mit diesem Gerät geteilt."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Herunterladen" msgstr "Herunterladen"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6153,13 +6153,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Datei öffnen" msgstr "Datei öffnen"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6188,60 +6188,60 @@ msgstr "Check-in-Zeit: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Check-out-Zeit: %1" msgstr "Check-out-Zeit: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Bild anzeigen" msgstr "Bild anzeigen"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Zu KDE-Itinerary senden" msgstr "Zu KDE-Itinerary senden"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Vorschau entfernen" msgstr "Vorschau entfernen"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Vorschau verkleinern" msgstr "Vorschau verkleinern"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Vorschau vergrößern" msgstr "Vorschau vergrößern"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Adressvorschau wird geladen" msgstr "Adressvorschau wird geladen"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Extern öffnen" msgstr "Extern öffnen"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basierend auf der Stimme von %1 Nutzer" msgstr[0] "Basierend auf der Stimme von %1 Nutzer"
msgstr[1] "Basierend auf Stimmen von %1 Nutzern" msgstr[1] "Basierend auf Stimmen von %1 Nutzern"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Beendet)" msgstr "(Beendet)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6254,7 +6254,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Zuletzt gelesen: %1" msgstr "Zuletzt gelesen: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6275,24 +6275,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Video anzeigen" msgstr "Video anzeigen"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Lautstärke" msgstr "Lautstärke"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximieren" msgstr "Maximieren"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-09-20 13:25+0300\n" "PO-Revision-Date: 2024-09-20 13:25+0300\n"
"Last-Translator: Antonis Geralis <capoiosct@gmail.com>\n" "Last-Translator: Antonis Geralis <capoiosct@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n" "Language-Team: Greek <kde-i18n-el@kde.org>\n"
@@ -1111,7 +1111,7 @@ msgstr "Η εγγραφή είναι απενεργοποιημένη σε αυ
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Φορτώνει" msgstr "Φορτώνει"
@@ -1142,7 +1142,7 @@ msgid "Loading…"
msgstr "Φορτώνει…" msgstr "Φορτώνει…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1796,7 +1796,7 @@ msgstr "Χωρίς εμότζι"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2066,7 +2066,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 σε προσκάλεσε σε μία αίθουσα" msgstr "%1 σε προσκάλεσε σε μία αίθουσα"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Contact your matrix server administrator for support." #| msgid "Contact your matrix server administrator for support."
msgid "" msgid ""
@@ -2074,18 +2074,18 @@ msgid ""
"for support." "for support."
msgstr "Επικοινωνήστε με τον διαχειριστή του διακομιστή matrix για υποστήριξη." msgstr "Επικοινωνήστε με τον διαχειριστή του διακομιστή matrix για υποστήριξη."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Δεν έχει ρυθμιστεί διακομιστής ταυτότητας" msgstr "Δεν έχει ρυθμιστεί διακομιστής ταυτότητας"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Αποτυχία δημιουργίας αίθουσας: %1" msgstr "Αποτυχία δημιουργίας αίθουσας: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6163,171 +6163,171 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Διαμοιρασμός" msgstr "Διαμοιρασμός"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Αφαίρεση" msgstr "Αφαίρεση"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Ολοκλήρωση" msgstr "Ολοκλήρωση"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Ακύρωση" msgstr "Ακύρωση"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm new display name" #| msgid "Confirm new display name"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Επιβεβαίωση νέου ονόματος" msgstr "Επιβεβαίωση νέου ονόματος"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Μέλη" msgstr "Μέλη"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send a message…" #| msgid "Send a message…"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Αποστολή μηνύματος…" msgstr "Αποστολή μηνύματος…"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url" msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url" msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Δόθηκε λάθος κωδικός πρόσβασης" msgstr "Δόθηκε λάθος κωδικός πρόσβασης"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Προσθήκη" msgstr "Προσθήκη"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Πίσω" msgstr "Πίσω"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew %1's invitation" #| msgid "withdrew %1's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "απόσυρε την πρόσκληση για %1" msgstr "απόσυρε την πρόσκληση για %1"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm" #| msgid "Confirm"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Επιβεβαίωση" msgstr "Επιβεβαίωση"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No results found" #| msgid "No results found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Δεν βρέθηκαν αποτελέσματα" msgstr "Δεν βρέθηκαν αποτελέσματα"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:inmenu" #| msgctxt "@action:inmenu"
#| msgid "Copy Address to Clipboard" #| msgid "Copy Address to Clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Αντιγραφή διεύθυνσης στο πρόχειρο" msgstr "Αντιγραφή διεύθυνσης στο πρόχειρο"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6336,20 +6336,20 @@ msgstr ""
"Το μήνυμα αυτό είναι κρυπτογραφημένο και ο αποστολέας δεν έχει μοιραστεί το " "Το μήνυμα αυτό είναι κρυπτογραφημένο και ο αποστολέας δεν έχει μοιραστεί το "
"κλειδί με τη συσκευή αυτή." "κλειδί με τη συσκευή αυτή."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Λήψη" msgstr "Λήψη"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6357,13 +6357,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Άνοιγμα αρχείου" msgstr "Άνοιγμα αρχείου"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6392,61 +6392,61 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Change the room name" #| msgid "Change the room name"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Άλλαξε το όνομα της αίθουσας" msgstr "Άλλαξε το όνομα της αίθουσας"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Αφαίρεση προεπισκόπησης" msgstr "Αφαίρεση προεπισκόπησης"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Άνοιγμα εξωτερικά" msgstr "Άνοιγμα εξωτερικά"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Με βάση τις ψήφους %1 χρήστη" msgstr[0] "Με βάση τις ψήφους %1 χρήστη"
msgstr[1] "Με βάση τις ψήφους %1 χρηστών" msgstr[1] "Με βάση τις ψήφους %1 χρηστών"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Τερματίστηκε)" msgstr "(Τερματίστηκε)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6459,7 +6459,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Τελευταία ανάγνωση: %1" msgstr "Τελευταία ανάγνωση: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6478,25 +6478,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Βίντεο" msgstr "Βίντεο"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Βίντεο" msgstr "Βίντεο"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-11-23 12:05+0000\n" "PO-Revision-Date: 2024-11-23 12:05+0000\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n" "Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English\n" "Language-Team: British English\n"
@@ -1058,7 +1058,7 @@ msgstr "Registration is disabled on this server."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Loading" msgstr "Loading"
@@ -1090,7 +1090,7 @@ msgid "Loading…"
msgstr "Loading…" msgstr "Loading…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1724,7 +1724,7 @@ msgstr "Own Emojis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Loading reply" msgstr "Loading reply"
@@ -1982,7 +1982,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 invited you to a room" msgstr "%1 invited you to a room"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1991,18 +1991,18 @@ msgstr ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "No identity server configured" msgstr "No identity server configured"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Room creation failed: %1" msgstr "Room creation failed: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Space creation failed: %1" msgstr "Space creation failed: %1"
@@ -5985,87 +5985,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Hide" msgstr "Hide"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Share" msgstr "Share"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Remove" msgstr "Remove"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Complete" msgstr "Complete"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Country Code for new phone number" msgstr "Country Code for new phone number"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "New Email Address:" msgstr "New Email Address:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "New Phone Number:" msgstr "New Phone Number:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "We have sent you an email" msgstr "We have sent you an email"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "We have sent you a text message" msgstr "We have sent you a text message"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "The entered email is not valid" msgstr "The entered email is not valid"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "The entered phone number is not valid" msgstr "The entered phone number is not valid"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Incorrect password entered" msgstr "Incorrect password entered"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6074,7 +6074,7 @@ msgstr ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6083,72 +6083,72 @@ msgstr ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Add" msgstr "Add"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Back" msgstr "Back"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
#: src/threepidbindhelper.cpp:183
#, kde-format
msgid ""
"The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above"
msgstr ""
"The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above"
msgstr ""
"The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above"
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 started a user verification" msgstr "%1 started a user verification"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirm edit" msgstr "Confirm edit"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Post message in thread" msgstr "Post message in thread"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copy to clipboard" msgstr "Copy to clipboard"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximise" msgstr "Maximise"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6157,20 +6157,20 @@ msgstr ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Download" msgstr "Download"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6178,13 +6178,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Open File" msgstr "Open File"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6213,60 +6213,60 @@ msgstr "Check-in time: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Check-out time: %1" msgstr "Check-out time: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Show Image" msgstr "Show Image"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Send to KDE Itinerary" msgstr "Send to KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Remove preview" msgstr "Remove preview"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Shrink preview" msgstr "Shrink preview"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expand preview" msgstr "Expand preview"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Loading URL preview" msgstr "Loading URL preview"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Open Externally" msgstr "Open Externally"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Based on votes by %1 user" msgstr[0] "Based on votes by %1 user"
msgstr[1] "Based on votes by %1 users" msgstr[1] "Based on votes by %1 users"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Ended)" msgstr "(Ended)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6279,7 +6279,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Last read: %1" msgstr "Last read: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6301,24 +6301,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Show Video" msgstr "Show Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximise" msgstr "Maximise"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-01 17:55+0100\n" "PO-Revision-Date: 2025-03-01 17:55+0100\n"
"Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\n" "Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\n"
"Language-Team: Esperanto <kde-i18n-eo@kde.org>\n" "Language-Team: Esperanto <kde-i18n-eo@kde.org>\n"
@@ -1038,7 +1038,7 @@ msgstr "Registrado estas malŝaltita ĉe ĉi tiu servilo."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Ŝargante" msgstr "Ŝargante"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Ŝargante…" msgstr "Ŝargante…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Propraj Emoĝioj"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Ŝargante respondon" msgstr "Ŝargante respondon"
@@ -1961,7 +1961,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 invitis vin al ĉambro" msgstr "%1 invitis vin al ĉambro"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1970,18 +1970,18 @@ msgstr ""
"Dosiero tro granda por elŝuti.<br />Kontaktu vian administranton de matrix-" "Dosiero tro granda por elŝuti.<br />Kontaktu vian administranton de matrix-"
"servilo por subteno." "servilo por subteno."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Agordiĝis neniu identeca servilo" msgstr "Agordiĝis neniu identeca servilo"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Kreado de ĉambro malsukcesis: %1" msgstr "Kreado de ĉambro malsukcesis: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Spackreado malsukcesis: %1" msgstr "Spackreado malsukcesis: %1"
@@ -5854,86 +5854,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Elekti Parametron Aldonendan" msgstr "Elekti Parametron Aldonendan"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Kaŝi" msgstr "Kaŝi"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Kunhavigi" msgstr "Kunhavigi"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Forigi" msgstr "Forigi"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Kompletigi" msgstr "Kompletigi"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Nuligi" msgstr "Nuligi"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Landkodo por nova telefonnumero" msgstr "Landkodo por nova telefonnumero"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nova Retpoŝta Adreso:" msgstr "Nova Retpoŝta Adreso:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nova Telefonnumero:" msgstr "Nova Telefonnumero:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Ni sendis al vi retpoŝton" msgstr "Ni sendis al vi retpoŝton"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Ni sendis al vi tekstmesaĝon" msgstr "Ni sendis al vi tekstmesaĝon"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon malsupre" msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon malsupre"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "La enigita retpoŝto ne estas valida" msgstr "La enigita retpoŝto ne estas valida"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "La enigita telefonnumero ne estas valida" msgstr "La enigita telefonnumero ne estas valida"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Malĝusta pasvorto enigita" msgstr "Malĝusta pasvorto enigita"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5942,7 +5942,7 @@ msgstr ""
"La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la " "La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la "
"instruojn tie kaj poste klaki la butonon malsupre" "instruojn tie kaj poste klaki la butonon malsupre"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5951,25 +5951,25 @@ msgstr ""
"La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi " "La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi "
"la instruojn tie kaj poste klaki la butonon malsupre" "la instruojn tie kaj poste klaki la butonon malsupre"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Aldoni" msgstr "Aldoni"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Reen" msgstr "Reen"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon supre" msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon supre"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5978,7 +5978,7 @@ msgstr ""
"La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la " "La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la "
"instruojn tie kaj poste klaki la butonon supre" "instruojn tie kaj poste klaki la butonon supre"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5987,35 +5987,35 @@ msgstr ""
"La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi " "La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi "
"la instruojn tie kaj poste klaki la butonon supre" "la instruojn tie kaj poste klaki la butonon supre"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 komencis uzant-konfirmon" msgstr "%1 komencis uzant-konfirmon"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Konfirmi redakton" msgstr "Konfirmi redakton"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Afiŝi mesaĝon en fadeno" msgstr "Afiŝi mesaĝon en fadeno"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopii al tondujo" msgstr "Kopii al tondujo"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maksimumigi" msgstr "Maksimumigi"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6024,20 +6024,20 @@ msgstr ""
"Ĉi tiu mesaĝo estas ĉifrita kaj la sendinto ne dividis la ŝlosilon kun ĉi " "Ĉi tiu mesaĝo estas ĉifrita kaj la sendinto ne dividis la ŝlosilon kun ĉi "
"tiu aparato." "tiu aparato."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Alpreni Pliajn Eventojn" msgstr "Alpreni Pliajn Eventojn"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Elŝutu" msgstr "Elŝutu"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6045,13 +6045,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Malfermu Dosieron" msgstr "Malfermu Dosieron"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6080,60 +6080,60 @@ msgstr "Enregistriĝotempo: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Tempo de eliro: %1" msgstr "Tempo de eliro: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Montri Bildon" msgstr "Montri Bildon"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Sendi al KDE-Itinero" msgstr "Sendi al KDE-Itinero"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Forigi antaŭrigardon" msgstr "Forigi antaŭrigardon"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Malgrandigi antaŭrigardon" msgstr "Malgrandigi antaŭrigardon"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Vastigi antaŭrigardon" msgstr "Vastigi antaŭrigardon"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Ŝargante antaŭrigardon de URL" msgstr "Ŝargante antaŭrigardon de URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Malfermi Ekstere" msgstr "Malfermi Ekstere"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Bazita sur voĉdonoj de %1 uzanto" msgstr[0] "Bazita sur voĉdonoj de %1 uzanto"
msgstr[1] "Bazita sur voĉdonoj de %1 uzantoj" msgstr[1] "Bazita sur voĉdonoj de %1 uzantoj"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Finis)" msgstr "(Finis)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6145,7 +6145,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Lasta legado: %1" msgstr "Lasta legado: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6166,24 +6166,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Montri Video" msgstr "Montri Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Laŭteco" msgstr "Laŭteco"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maksimumigi" msgstr "Maksimumigi"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 20:24+0100\n" "PO-Revision-Date: 2025-03-06 20:24+0100\n"
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n" "Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n" "Language-Team: Spanish <kde-l10n-es@kde.org>\n"
@@ -1042,7 +1042,7 @@ msgstr "El registro está desactivado en este servidor."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Cargando" msgstr "Cargando"
@@ -1074,7 +1074,7 @@ msgid "Loading…"
msgstr "Cargando…" msgstr "Cargando…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1707,7 +1707,7 @@ msgstr "Emojis propios"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Cargando respuesta" msgstr "Cargando respuesta"
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 le ha invitado" msgstr "%1 le ha invitado"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1976,18 +1976,18 @@ msgstr ""
"Archivo demasiado grande para descargarlo.<br />Póngase en contacto con el " "Archivo demasiado grande para descargarlo.<br />Póngase en contacto con el "
"administrador del servidor matrix para obtener asistencia." "administrador del servidor matrix para obtener asistencia."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "No se ha configurado ningún servidor de identidades" msgstr "No se ha configurado ningún servidor de identidades"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "La creación de la sala ha fallado: %1" msgstr "La creación de la sala ha fallado: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "La creación del espacio ha fallado: %1" msgstr "La creación del espacio ha fallado: %1"
@@ -5901,86 +5901,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Seleccionar el parámetro que se añadirá" msgstr "Seleccionar el parámetro que se añadirá"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Ocultar" msgstr "Ocultar"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Compartir" msgstr "Compartir"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Eliminar" msgstr "Eliminar"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completar" msgstr "Completar"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Código de país para el nuevo número de teléfono" msgstr "Código de país para el nuevo número de teléfono"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nueva dirección de correo electrónico:" msgstr "Nueva dirección de correo electrónico:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nuevo número de teléfono:" msgstr "Nuevo número de teléfono:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Le hemos enviado un mensaje de correo" msgstr "Le hemos enviado un mensaje de correo"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Le hemos enviado un mensaje de texto" msgstr "Le hemos enviado un mensaje de texto"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Siga las instrucciones del mismo y pulse el botón inferior." msgstr "%1. Siga las instrucciones del mismo y pulse el botón inferior."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "El correo electrónico introducido no es válido" msgstr "El correo electrónico introducido no es válido"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "El número de teléfono introducido no es válido" msgstr "El número de teléfono introducido no es válido"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Se ha introducido una contraseña incorrecta" msgstr "Se ha introducido una contraseña incorrecta"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5989,7 +5989,7 @@ msgstr ""
"El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga " "El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga "
"las instrucciones que contiene y pulse el botón inferior." "las instrucciones que contiene y pulse el botón inferior."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5998,25 +5998,25 @@ msgstr ""
"El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga " "El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga "
"las instrucciones que contiene y pulse el botón inferior." "las instrucciones que contiene y pulse el botón inferior."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Añadir" msgstr "Añadir"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Volver" msgstr "Volver"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Siga las instrucciones del mismo y pulse el botón superior." msgstr "%1. Siga las instrucciones del mismo y pulse el botón superior."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6025,7 +6025,7 @@ msgstr ""
"El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga " "El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga "
"las instrucciones que contiene y pulse el botón superior." "las instrucciones que contiene y pulse el botón superior."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6034,35 +6034,35 @@ msgstr ""
"El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga " "El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga "
"las instrucciones que contiene y pulse el botón superior." "las instrucciones que contiene y pulse el botón superior."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ha iniciado una verificación de usuario" msgstr "%1 ha iniciado una verificación de usuario"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmar edición" msgstr "Confirmar edición"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publicar mensaje en el hilo" msgstr "Publicar mensaje en el hilo"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar en el portapapeles" msgstr "Copiar en el portapapeles"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6071,20 +6071,20 @@ msgstr ""
"Este mensaje está cifrado y el remitente no ha compartido la clave con este " "Este mensaje está cifrado y el remitente no ha compartido la clave con este "
"dispositivo." "dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Obtener más eventos" msgstr "Obtener más eventos"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Descargar" msgstr "Descargar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6092,13 +6092,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Abrir archivo" msgstr "Abrir archivo"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6127,60 +6127,60 @@ msgstr "Hora de entrada: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Hora de salida: %1" msgstr "Hora de salida: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Mostrar imagen" msgstr "Mostrar imagen"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Enviar a KDE Itinerary" msgstr "Enviar a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Eliminar vista previa" msgstr "Eliminar vista previa"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Encoger vista previa" msgstr "Encoger vista previa"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandir vista previa" msgstr "Expandir vista previa"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Cargando vista previa de URL" msgstr "Cargando vista previa de URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Abrir externamente" msgstr "Abrir externamente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Según los votos de %1 usuario" msgstr[0] "Según los votos de %1 usuario"
msgstr[1] "Según los votos de %1 usuarios" msgstr[1] "Según los votos de %1 usuarios"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Finalizada)" msgstr "(Finalizada)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6192,7 +6192,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última lectura: %1" msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6213,24 +6213,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Andén %1" msgstr "Andén %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Mostrar vídeo" msgstr "Mostrar vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volumen" msgstr "Volumen"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-02-10 18:39+0100\n" "PO-Revision-Date: 2025-02-10 18:39+0100\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n" "Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n" "Language-Team: Basque <kde-i18n-eu@kde.org>\n"
@@ -1041,7 +1041,7 @@ msgstr "Erregistratzea ezgaituta dago zerbitzari horretan."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Zamatzen..." msgstr "Zamatzen..."
@@ -1073,7 +1073,7 @@ msgid "Loading…"
msgstr "Zamatzen..." msgstr "Zamatzen..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1706,7 +1706,7 @@ msgstr "Emoji propioak"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Erantzuna zamatzen" msgstr "Erantzuna zamatzen"
@@ -1963,7 +1963,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1(e)k gela batera gonbidatu zaitu" msgstr "%1(e)k gela batera gonbidatu zaitu"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1972,18 +1972,18 @@ msgstr ""
"Zama-jaisteko fitxategi handiegia.<br />Jar zaitez zure matrix " "Zama-jaisteko fitxategi handiegia.<br />Jar zaitez zure matrix "
"zerbitzariaren administratzailearekin harremanean, laguntza lortzeko." "zerbitzariaren administratzailearekin harremanean, laguntza lortzeko."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Ez da nortasun zerbitzaririk konfiguratu" msgstr "Ez da nortasun zerbitzaririk konfiguratu"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Gela sortzea huts egin du: %1" msgstr "Gela sortzea huts egin du: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Tokia sortzea huts egin du: %1" msgstr "Tokia sortzea huts egin du: %1"
@@ -5887,87 +5887,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Hautatu gehitu beharreko parametroa" msgstr "Hautatu gehitu beharreko parametroa"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Ezkutatu" msgstr "Ezkutatu"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Partekatu" msgstr "Partekatu"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Kendu" msgstr "Kendu"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Osatu" msgstr "Osatu"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Utzi" msgstr "Utzi"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Telefono-zenbaki berrirako herrialde-kodea" msgstr "Telefono-zenbaki berrirako herrialde-kodea"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "E-posta helbide berria:" msgstr "E-posta helbide berria:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Telefono-zenbaki berria:" msgstr "Telefono-zenbaki berria:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "E-posta bat bidali dizugu" msgstr "E-posta bat bidali dizugu"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Testu-mezu bat bidali dizugu" msgstr "Testu-mezu bat bidali dizugu"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
"%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian" "%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Sartutako e-postak ez du balio" msgstr "Sartutako e-postak ez du balio"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Sartutako telefono-zenbakiak ez du balio" msgstr "Sartutako telefono-zenbakiak ez du balio"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Pasahitz okerra sartu da" msgstr "Pasahitz okerra sartu da"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5976,7 +5976,7 @@ msgstr ""
"E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango " "E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango "
"jarraibideak eta egin klik beheko botoian" "jarraibideak eta egin klik beheko botoian"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5985,26 +5985,26 @@ msgstr ""
"Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango " "Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango "
"jarraibideak eta egin klik beheko botoian" "jarraibideak eta egin klik beheko botoian"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Gehitu" msgstr "Gehitu"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Atzera" msgstr "Atzera"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
"%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian" "%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6013,7 +6013,7 @@ msgstr ""
"E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango " "E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango "
"jarraibideak eta egin klik goiko botoian" "jarraibideak eta egin klik goiko botoian"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6022,35 +6022,35 @@ msgstr ""
"Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango " "Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango "
"jarraibideak eta egin klik goiko botoian" "jarraibideak eta egin klik goiko botoian"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1(e)k erabiltzaile egiaztapen bat abiatu du" msgstr "%1(e)k erabiltzaile egiaztapen bat abiatu du"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Berretsi editatutakoa" msgstr "Berretsi editatutakoa"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Bidali mezua harian" msgstr "Bidali mezua harian"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopiatu arbelera" msgstr "Kopiatu arbelera"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizatu" msgstr "Maximizatu"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6058,20 +6058,20 @@ msgid ""
msgstr "" msgstr ""
"Mezu hori zifratuta dago eta igorleak ez du gakoa gailu honekin partekatu." "Mezu hori zifratuta dago eta igorleak ez du gakoa gailu honekin partekatu."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Eskuratu gertaera gehiago" msgstr "Eskuratu gertaera gehiago"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Zama-jaitsi" msgstr "Zama-jaitsi"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6079,13 +6079,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Ireki fitxategia" msgstr "Ireki fitxategia"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6114,60 +6114,60 @@ msgstr "Izen-emate ordua: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Ordaindu eta irtete ordua: %1" msgstr "Ordaindu eta irtete ordua: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Erakutsi irudia" msgstr "Erakutsi irudia"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Bidali KDE «Itinerary»ra" msgstr "Bidali KDE «Itinerary»ra"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Kendu aurreikuspegia" msgstr "Kendu aurreikuspegia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Txikiagotu aurreikuspegia" msgstr "Txikiagotu aurreikuspegia"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Zabaldu aurreikuspegia" msgstr "Zabaldu aurreikuspegia"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URLaren aurreikuspegia zamatzen" msgstr "URLaren aurreikuspegia zamatzen"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Ireki kanpotik" msgstr "Ireki kanpotik"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Erabiltzaile %1(e)n bozkan oinarritua" msgstr[0] "Erabiltzaile %1(e)n bozkan oinarritua"
msgstr[1] "%1 erabiltzaileren bozkatan oinarritua" msgstr[1] "%1 erabiltzaileren bozkatan oinarritua"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Amaituta)" msgstr "(Amaituta)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6179,7 +6179,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Azken irakurketa: %1" msgstr "Azken irakurketa: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6200,24 +6200,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "%1 Na." msgstr "%1 Na."
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Bideoa" msgstr "Bideoa"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Erakutsi bideoa" msgstr "Erakutsi bideoa"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Bolumena" msgstr "Bolumena"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximizatu" msgstr "Maximizatu"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-01-28 18:09+0200\n" "PO-Revision-Date: 2025-02-14 19:43+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n" "Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n" "Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
"Language: fi\n" "Language: fi\n"
@@ -1036,7 +1036,7 @@ msgstr "Palvelin on poistanut rekisteröitymisen käytöstä."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Ladataan" msgstr "Ladataan"
@@ -1066,7 +1066,7 @@ msgid "Loading…"
msgstr "Ladataan…" msgstr "Ladataan…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1696,7 +1696,7 @@ msgstr "Omat emojit"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Ladataan vastausta" msgstr "Ladataan vastausta"
@@ -1955,7 +1955,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 kutsui sinut huoneeseen" msgstr "%1 kutsui sinut huoneeseen"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1964,18 +1964,18 @@ msgstr ""
"Tiedosto on liian suuri ladata.<br />Pyydä apua Matrix-palvelimesi " "Tiedosto on liian suuri ladata.<br />Pyydä apua Matrix-palvelimesi "
"ylläpidolta." "ylläpidolta."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Henkilöyspalvelinta ei ole määritetty" msgstr "Henkilöyspalvelinta ei ole määritetty"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Huoneen luominen epäonnistui: %1" msgstr "Huoneen luominen epäonnistui: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Tilan luominen epäonnistui: %1" msgstr "Tilan luominen epäonnistui: %1"
@@ -2013,10 +2013,9 @@ msgid "Reply"
msgstr "Vastaa" msgstr "Vastaa"
#: src/notificationsmanager.cpp:246 #: src/notificationsmanager.cpp:246
#, fuzzy, kde-format #, kde-format
#| msgid "Reply"
msgid "Reply…" msgid "Reply…"
msgstr "Vastaa" msgstr "Vastaa"
#: src/notificationsmanager.cpp:305 #: src/notificationsmanager.cpp:305
#, kde-format #, kde-format
@@ -2226,13 +2225,13 @@ msgstr "Salasana"
#, kde-format #, kde-format
msgctxt "@label:checkbox" msgctxt "@label:checkbox"
msgid "Erase Data" msgid "Erase Data"
msgstr "" msgstr "Pyyhi tiedot"
#: src/qml/ConfirmDeactivateAccountDialog.qml:34 #: src/qml/ConfirmDeactivateAccountDialog.qml:34
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "Request your server to delete as much user data as possible." msgid "Request your server to delete as much user data as possible."
msgstr "" msgstr "Pyydä palvelinta poistamaan käyttäjätietojasi mahdollisimman paljon."
#: src/qml/ConfirmDeactivateAccountDialog.qml:43 #: src/qml/ConfirmDeactivateAccountDialog.qml:43
#, kde-format #, kde-format
@@ -2759,8 +2758,7 @@ msgid "Configure NeoChat…"
msgstr "NeoChatin asetukset…" msgstr "NeoChatin asetukset…"
#: src/qml/GlobalMenu.qml:25 #: src/qml/GlobalMenu.qml:25
#, fuzzy, kde-format #, kde-format
#| msgid "Configure NeoChat…"
msgctxt "menu" msgctxt "menu"
msgid "Configure NeoChat…" msgid "Configure NeoChat…"
msgstr "NeoChatin asetukset…" msgstr "NeoChatin asetukset…"
@@ -3056,18 +3054,16 @@ msgid "Successfully verified device **%1**"
msgstr "Laitteen **%1** vahvistaminen onnistui" msgstr "Laitteen **%1** vahvistaminen onnistui"
#: src/qml/KeyVerificationDialog.qml:161 #: src/qml/KeyVerificationDialog.qml:161
#, fuzzy, kde-format #, kde-format
#| msgid "The session verification timed out."
msgctxt "@info" msgctxt "@info"
msgid "Choose a verification method to continue" msgid "Choose a verification method to continue"
msgstr "Istunnon vahvistaminen aikakatkaistiin." msgstr "Jatka valitsemalla todennustapa"
#: src/qml/KeyVerificationDialog.qml:165 #: src/qml/KeyVerificationDialog.qml:165
#, fuzzy, kde-format #, kde-format
#| msgid "Emoji Verification"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Emoji Verification" msgid "Emoji Verification"
msgstr "Emojin vahvistaminen" msgstr "Emoji-todennus"
#: src/qml/LocationChooser.qml:22 #: src/qml/LocationChooser.qml:22
#, kde-format #, kde-format
@@ -3210,10 +3206,9 @@ msgid "Search for '%1'"
msgstr "Etsi: ”%1”" msgstr "Etsi: ”%1”"
#: src/qml/MessageDelegateContextMenu.qml:128 #: src/qml/MessageDelegateContextMenu.qml:128
#, fuzzy, kde-format #, kde-format
#| msgid "Configure Web Shortcuts..."
msgid "Configure Web Shortcuts…" msgid "Configure Web Shortcuts…"
msgstr "WWW-pikavalintojen asetukset…" msgstr "Verkkopikavalintojen asetukset…"
#: src/qml/MessageSourceSheet.qml:46 #: src/qml/MessageSourceSheet.qml:46
#, kde-format #, kde-format
@@ -3493,18 +3488,16 @@ msgid "Show locations for this room"
msgstr "Näytä sijainnit tälle huoneelle" msgstr "Näytä sijainnit tälle huoneelle"
#: src/qml/RoomInformation.qml:137 #: src/qml/RoomInformation.qml:137
#, fuzzy, kde-format #, kde-format
#| msgid "Find messages…"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Pinned messages" msgid "Pinned messages"
msgstr "Etsi viestejä…" msgstr "Kiinnitetyt viestit"
#: src/qml/RoomInformation.qml:146 src/qml/RoomPinnedMessagesPage.qml:23 #: src/qml/RoomInformation.qml:146 src/qml/RoomPinnedMessagesPage.qml:23
#, fuzzy, kde-format #, kde-format
#| msgid "Direct Messages"
msgctxt "@title" msgctxt "@title"
msgid "Pinned Messages" msgid "Pinned Messages"
msgstr "Suoraviestit" msgstr "Kiinnitetyt viestit"
#: src/qml/RoomInformation.qml:154 src/qml/SpaceHomePage.qml:65 #: src/qml/RoomInformation.qml:154 src/qml/SpaceHomePage.qml:65
#, kde-format #, kde-format
@@ -3604,12 +3597,10 @@ msgid "Message Source"
msgstr "Viestin lähde" msgstr "Viestin lähde"
#: src/qml/RoomPinnedMessagesPage.qml:46 #: src/qml/RoomPinnedMessagesPage.qml:46
#, fuzzy, kde-format #, kde-format
#| msgctxt "@title"
#| msgid "Forward Message"
msgctxt "@info:placeholder" msgctxt "@info:placeholder"
msgid "No Pinned Messages" msgid "No Pinned Messages"
msgstr "Edennä viesti" msgstr "Ei kiinnitettyjä viestejä"
#: src/qml/RoomSearchPage.qml:26 #: src/qml/RoomSearchPage.qml:26
#, kde-format #, kde-format
@@ -3889,11 +3880,10 @@ msgid "Load your encrypted messages"
msgstr "Lataa salatut viestisi" msgstr "Lataa salatut viestisi"
#: src/qml/UnlockSSSSDialog.qml:38 #: src/qml/UnlockSSSSDialog.qml:38
#, fuzzy, kde-format #, kde-format
#| msgid "Encryption key"
msgctxt "@info:status" msgctxt "@info:status"
msgid "Encryption keys restored." msgid "Encryption keys restored."
msgstr "Salausavain" msgstr "Salausavaimet palautettu."
#: src/qml/UnlockSSSSDialog.qml:50 #: src/qml/UnlockSSSSDialog.qml:50
#, kde-format #, kde-format
@@ -3980,14 +3970,12 @@ msgid "Account Details"
msgstr "Tilin tiedot" msgstr "Tilin tiedot"
#: src/qml/UserDetailDialog.qml:83 #: src/qml/UserDetailDialog.qml:83
#, fuzzy, kde-format #, kde-format
#| msgctxt "Notification type"
#| msgid "Invites to a room"
msgctxt "@info" msgctxt "@info"
msgid "One mutual room" msgid "One mutual room"
msgid_plural "%1 mutual rooms" msgid_plural "%1 mutual rooms"
msgstr[0] "Kutsut huoneeseen" msgstr[0] "Yksi yhteinen huone"
msgstr[1] "Kutsut huoneeseen" msgstr[1] "%1 yhteistä huonetta"
#: src/qml/UserDetailDialog.qml:136 #: src/qml/UserDetailDialog.qml:136
#, kde-format #, kde-format
@@ -4431,36 +4419,31 @@ msgid "Password"
msgstr "Salasana" msgstr "Salasana"
#: src/settings/AccountEditorPage.qml:159 #: src/settings/AccountEditorPage.qml:159
#, fuzzy, kde-format #, kde-format
#| msgid "Your server doesn't support changing your password"
msgctxt "@info" msgctxt "@info"
msgid "Your server doesn't support changing your password" msgid "Your server doesn't support changing your password"
msgstr "Palvelimesi ei tue salasanan vaihtamista" msgstr "Palvelin ei tue salasanan vaihtamista"
#: src/settings/AccountEditorPage.qml:166 #: src/settings/AccountEditorPage.qml:166
#, fuzzy, kde-format #, kde-format
#| msgid "Current Password:"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Current Password:" msgid "Current Password:"
msgstr "Nykyinen salasana:" msgstr "Nykyinen salasana:"
#: src/settings/AccountEditorPage.qml:173 #: src/settings/AccountEditorPage.qml:173
#, fuzzy, kde-format #, kde-format
#| msgid "New Password:"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Password:" msgid "New Password:"
msgstr "Uusi salasana:" msgstr "Uusi salasana:"
#: src/settings/AccountEditorPage.qml:180 #: src/settings/AccountEditorPage.qml:180
#, fuzzy, kde-format #, kde-format
#| msgid "Confirm new Password:"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Confirm new Password:" msgid "Confirm new Password:"
msgstr "Vahvista uusi salasana:" msgstr "Vahvista uusi salasana:"
#: src/settings/AccountEditorPage.qml:185 #: src/settings/AccountEditorPage.qml:185
#, fuzzy, kde-format #, kde-format
#| msgid "Passwords don't match"
msgctxt "@info" msgctxt "@info"
msgid "Passwords don't match" msgid "Passwords don't match"
msgstr "Salasanat eivät täsmää" msgstr "Salasanat eivät täsmää"
@@ -4506,23 +4489,19 @@ msgid "Deactivate Account"
msgstr "Passivoi tili" msgstr "Passivoi tili"
#: src/settings/AccountEditorPage.qml:272 #: src/settings/AccountEditorPage.qml:272
#, fuzzy, kde-format #, kde-format
#| msgid "Password changed successfully"
msgctxt "@info" msgctxt "@info"
msgid "Password changed successfully" msgid "Password changed successfully"
msgstr "Salasanan vaihto onnistui" msgstr "Salasanan vaihto onnistui"
#: src/settings/AccountEditorPage.qml:275 #: src/settings/AccountEditorPage.qml:275
#, fuzzy, kde-format #, kde-format
#| msgctxt "@info"
#| msgid "Invalid passphrase"
msgctxt "@info" msgctxt "@info"
msgid "Invalid password" msgid "Invalid password"
msgstr "Virheellinen salasana" msgstr "Virheellinen salasana"
#: src/settings/AccountEditorPage.qml:278 #: src/settings/AccountEditorPage.qml:278
#, fuzzy, kde-format #, kde-format
#| msgid "Unknown problem while trying to change password"
msgctxt "@info" msgctxt "@info"
msgid "Unknown problem while trying to change password" msgid "Unknown problem while trying to change password"
msgstr "Tuntematon ongelma yritettäessä vaihtaa salasanaa" msgstr "Tuntematon ongelma yritettäessä vaihtaa salasanaa"
@@ -5222,7 +5201,7 @@ msgstr "Palvelin ei tue tätä asetusta."
#, kde-format #, kde-format
msgctxt "@option:check" msgctxt "@option:check"
msgid "Turn on encryption in new chats" msgid "Turn on encryption in new chats"
msgstr "" msgstr "Käytä uusiin keskusteluihin salausta"
#: src/settings/NeoChatSecurityPage.qml:75 #: src/settings/NeoChatSecurityPage.qml:75
#, kde-format #, kde-format
@@ -5230,6 +5209,7 @@ msgctxt "@info"
msgid "" msgid ""
"If enabled, NeoChat will use encryption when starting new direct messages." "If enabled, NeoChat will use encryption when starting new direct messages."
msgstr "" msgstr ""
"Jos käytössä, NeoChat käyttää salausta aloitettaessa uusia suoraviestejä."
#: src/settings/NeoChatSecurityPage.qml:85 #: src/settings/NeoChatSecurityPage.qml:85
#, kde-format #, kde-format
@@ -5649,28 +5629,25 @@ msgstr "Valitse uusi versio"
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "Customize your profile only for this room." msgid "Customize your profile only for this room."
msgstr "" msgstr "Mukauta profiiliasi vain tälle huoneelle."
#: src/settings/RoomProfile.qml:38 #: src/settings/RoomProfile.qml:38
#, fuzzy, kde-format #, kde-format
#| msgid "Display Name:"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Display Name" msgid "Display Name"
msgstr "Näyttönimi:" msgstr "Näyttönimi"
#: src/settings/RoomProfile.qml:48 #: src/settings/RoomProfile.qml:48
#, fuzzy, kde-format #, kde-format
#| msgid "Save"
msgctxt "@action:button Save profile" msgctxt "@action:button Save profile"
msgid "Save" msgid "Save"
msgstr "Tallenna" msgstr "Tallenna"
#: src/settings/RoomProfile.qml:54 #: src/settings/RoomProfile.qml:54
#, fuzzy, kde-format #, kde-format
#| msgid "System Default"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reset to Default" msgid "Reset to Default"
msgstr "Järjestelmän oletus" msgstr "Palauta oletukseksi"
#: src/settings/RoomSecurityPage.qml:20 #: src/settings/RoomSecurityPage.qml:20
#, kde-format #, kde-format
@@ -5832,11 +5809,10 @@ msgid "Permissions"
msgstr "Käyttöoikeudet" msgstr "Käyttöoikeudet"
#: src/settings/RoomSettingsView.qml:84 #: src/settings/RoomSettingsView.qml:84
#, fuzzy, kde-format #, kde-format
#| msgid "a file"
msgctxt "@title" msgctxt "@title"
msgid "Profile" msgid "Profile"
msgstr "tiedosto" msgstr "Profiili"
#: src/settings/RoomSortParameterDialog.qml:16 #: src/settings/RoomSortParameterDialog.qml:16
#, kde-format #, kde-format
@@ -5880,86 +5856,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Valitse lisättävä parametri" msgstr "Valitse lisättävä parametri"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Piilota" msgstr "Piilota"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Jaa" msgstr "Jaa"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Poista" msgstr "Poista"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Valmis" msgstr "Valmis"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Peru" msgstr "Peru"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Uuden puhelinnumeron maakoodi" msgstr "Uuden puhelinnumeron maakoodi"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Uusi sähköpostiosoite:" msgstr "Uusi sähköpostiosoite:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Uusi puhelinnumero:" msgstr "Uusi puhelinnumero:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Sinulle on lähetetty sähköpostia" msgstr "Sinulle on lähetetty sähköpostia"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Sinulle on lähetetty tekstiviesti" msgstr "Sinulle on lähetetty tekstiviesti"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta" msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Annettu sähköpostiosoite ei ole kelvollinen" msgstr "Annettu sähköpostiosoite ei ole kelvollinen"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Annettu puhelinnumero ei ole kelvollinen" msgstr "Annettu puhelinnumero ei ole kelvollinen"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Annettiin väärä salasana" msgstr "Annettiin väärä salasana"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5968,7 +5944,7 @@ msgstr ""
"Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita " "Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita "
"ja napsauta sitten alla olevaa painiketta" "ja napsauta sitten alla olevaa painiketta"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5977,25 +5953,25 @@ msgstr ""
"Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen " "Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen "
"ohjeita ja napsauta sitten alla olevaa painiketta" "ohjeita ja napsauta sitten alla olevaa painiketta"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Lisää" msgstr "Lisää"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Takaisin" msgstr "Takaisin"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta" msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6004,7 +5980,7 @@ msgstr ""
"Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita " "Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita "
"ja napsauta sitten alla olevaa painiketta" "ja napsauta sitten alla olevaa painiketta"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6013,35 +5989,35 @@ msgstr ""
"Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen " "Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen "
"ohjeita ja napsauta sitten alla olevaa painiketta" "ohjeita ja napsauta sitten alla olevaa painiketta"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 käynnisti käyttäjän vahvistuksen" msgstr "%1 käynnisti käyttäjän vahvistuksen"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Vahvista muokkaus" msgstr "Vahvista muokkaus"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Lähetä viesti säikeeseen" msgstr "Lähetä viesti säikeeseen"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopioi leikepöydälle" msgstr "Kopioi leikepöydälle"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Suurenna" msgstr "Suurenna"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6049,20 +6025,20 @@ msgid ""
msgstr "" msgstr ""
"Tämä viesti on salattu, eikä lähettäjä ole jakanut avainta tälle laitteelle." "Tämä viesti on salattu, eikä lähettäjä ole jakanut avainta tälle laitteelle."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr "Nouda lisää tapahtumia"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Lataa" msgstr "Lataa"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6070,13 +6046,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Avaa tiedosto" msgstr "Avaa tiedosto"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6105,62 +6081,61 @@ msgstr "Sisäänkirjautumisaika: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Uloskirjautumisaika: %1" msgstr "Uloskirjautumisaika: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Näytä kuva" msgstr "Näytä kuva"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Lähetä KDE Itineraryyn" msgstr "Lähetä KDE Itineraryyn"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Poista esikatselu" msgstr "Poista esikatselu"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Pienennä esikatselua" msgstr "Pienennä esikatselua"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Suurenna esikatselua" msgstr "Suurenna esikatselua"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Ladataan verkko-osoitteen esikatselua" msgstr "Ladataan verkko-osoitteen esikatselua"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Avaa ulkoisesti" msgstr "Avaa ulkoisesti"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Perustuu 1 käyttäjän ääniin" msgstr[0] "Perustuu 1 käyttäjän ääniin"
msgstr[1] "Perustuu %1 käyttäjän ääniin" msgstr[1] "Perustuu %1 käyttäjän ääniin"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(päättynyt)" msgstr "(päättynyt)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, kde-format
#| msgid "React"
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
msgstr "Reagoi" msgstr "Reagoi"
@@ -6171,7 +6146,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Viimeksi luettu: %1" msgstr "Viimeksi luettu: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6190,24 +6165,24 @@ msgstr "Tämä on keskustelun alku. Tästä edemmäs keskusteluhistoriaa ei ole.
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Näytä video" msgstr "Näytä video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Äänenvoimakkuus" msgstr "Äänenvoimakkuus"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Suurenna" msgstr "Suurenna"

View File

@@ -4,8 +4,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-01 09:51+0100\n" "PO-Revision-Date: 2025-03-07 12:00+0100\n"
"Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n" "Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n"
"Language-Team: French <French <kde-francophone@kde.org>>\n" "Language-Team: French <French <kde-francophone@kde.org>>\n"
"Language: fr\n" "Language: fr\n"
@@ -1041,7 +1041,7 @@ msgstr "L'enregistrement est désactivé sur ce serveur."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Chargement..." msgstr "Chargement..."
@@ -1073,7 +1073,7 @@ msgid "Loading…"
msgstr "Chargement..." msgstr "Chargement..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1709,7 +1709,7 @@ msgstr "Émoticônes personnelles"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Chargement de la réponse..." msgstr "Chargement de la réponse..."
@@ -1969,7 +1969,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 vous a invité" msgstr "%1 vous a invité"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1978,18 +1978,18 @@ msgstr ""
"Fichier trop volumineux pour être téléchargé.<br />Veuillez contact votre " "Fichier trop volumineux pour être téléchargé.<br />Veuillez contact votre "
"administrateur du serveur « Matrix » pour de l'aide." "administrateur du serveur « Matrix » pour de l'aide."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Aucun serveur d'identité n'a été configuré." msgstr "Aucun serveur d'identité n'a été configuré."
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Impossible de créer le salon : %1" msgstr "Impossible de créer le salon : %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Impossible de créer un espace : %1" msgstr "Impossible de créer un espace : %1"
@@ -2129,13 +2129,15 @@ msgstr "Vérifier ce périphérique"
#, kde-format #, kde-format
msgctxt "@title" msgctxt "@title"
msgid "Verification Request Sent" msgid "Verification Request Sent"
msgstr "" msgstr "Demande de vérification envoyée"
#: src/qml/AccountMenu.qml:94 #: src/qml/AccountMenu.qml:94
#, kde-format #, kde-format
msgctxt "@info:label" msgctxt "@info:label"
msgid "To proceed, accept the verification request on another device." msgid "To proceed, accept the verification request on another device."
msgstr "" msgstr ""
"Pour continuer, veuillez accepter la demande de vérification sur un autre "
"périphérique."
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88 #: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
#, kde-format #, kde-format
@@ -5925,65 +5927,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Sélectionner le paramètre à ajouter" msgstr "Sélectionner le paramètre à ajouter"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Masquer" msgstr "Masquer"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Partager" msgstr "Partager"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Supprimer" msgstr "Supprimer"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Terminer" msgstr "Terminer"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Code international pour le nouveau numéro de téléphone" msgstr "Code international pour le nouveau numéro de téléphone"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nouvelle adresse de courriel :" msgstr "Nouvelle adresse de courriel :"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nouveau numéro de téléphone :" msgstr "Nouveau numéro de téléphone :"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Nous vous avons envoyé un courriel." msgstr "Nous vous avons envoyé un courriel."
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Nous vous avons envoyé un message de texte" msgstr "Nous vous avons envoyé un message de texte"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
@@ -5991,22 +5993,22 @@ msgstr ""
"%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le " "%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le "
"bouton ci-dessous." "bouton ci-dessous."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "L'adresse de courriel saisie est non valable." msgstr "L'adresse de courriel saisie est non valable."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Le numéro de téléphone saisi est non valable." msgstr "Le numéro de téléphone saisi est non valable."
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Le mot de passe saisi est incorrect." msgstr "Le mot de passe saisi est incorrect."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6016,7 +6018,7 @@ msgstr ""
"suivre les instructions proposées ici et ensuite cliquer sur le bouton ci-" "suivre les instructions proposées ici et ensuite cliquer sur le bouton ci-"
"dessous." "dessous."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6026,19 +6028,19 @@ msgstr ""
"texte, suivre les instructions proposées ici et ensuite cliquer sur le " "texte, suivre les instructions proposées ici et ensuite cliquer sur le "
"bouton ci-dessous." "bouton ci-dessous."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Revenir en arrière" msgstr "Revenir en arrière"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
@@ -6046,7 +6048,7 @@ msgstr ""
"%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le " "%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le "
"bouton ci-dessus." "bouton ci-dessus."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6055,7 +6057,7 @@ msgstr ""
"Le courriel n'a pas été vérifié. Veuillez aller sur celui-ci, suivre les " "Le courriel n'a pas été vérifié. Veuillez aller sur celui-ci, suivre les "
"instructions proposées là et enfin cliquer sur le bouton ci-dessus." "instructions proposées là et enfin cliquer sur le bouton ci-dessus."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6065,35 +6067,35 @@ msgstr ""
"texte, suivre les instructions proposées ici et ensuite cliquer sur le " "texte, suivre les instructions proposées ici et ensuite cliquer sur le "
"bouton ci-dessus." "bouton ci-dessus."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 a démarré une vérification d'utilisateurs" msgstr "%1 a démarré une vérification d'utilisateurs"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmer une modification" msgstr "Confirmer une modification"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publier un message dans un fil de discussions" msgstr "Publier un message dans un fil de discussions"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copier dans le presse-papier" msgstr "Copier dans le presse-papier"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximiser" msgstr "Maximiser"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6102,20 +6104,20 @@ msgstr ""
"Le message est chiffré et l'émetteur n'a pas partagé la clé avec ce " "Le message est chiffré et l'émetteur n'a pas partagé la clé avec ce "
"périphérique." "périphérique."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Rechercher plus d'évènements" msgstr "Rechercher plus d'évènements"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Télécharger" msgstr "Télécharger"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6123,13 +6125,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Ouvrir un fichier" msgstr "Ouvrir un fichier"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6158,60 +6160,60 @@ msgstr "Heure d'arrivée : %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Heure de départ : %1" msgstr "Heure de départ : %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Afficher une image" msgstr "Afficher une image"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Envoyer vers KDE Itinerary" msgstr "Envoyer vers KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Supprimer un aperçu" msgstr "Supprimer un aperçu"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Réduire l'aperçu" msgstr "Réduire l'aperçu"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Développer l'aperçu" msgstr "Développer l'aperçu"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Chargement d'un aperçu de l'URL" msgstr "Chargement d'un aperçu de l'URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Ouvrir de façon externe" msgstr "Ouvrir de façon externe"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Selon les votes de l'utilisateur %1" msgstr[0] "Selon les votes de l'utilisateur %1"
msgstr[1] "Selon les votes de %1 utilisateurs" msgstr[1] "Selon les votes de %1 utilisateurs"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Terminé)" msgstr "(Terminé)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6223,7 +6225,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Dernier lu : %1" msgstr "Dernier lu : %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6244,24 +6246,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Place %1" msgstr "Place %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vidéo" msgstr "Vidéo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Afficher une vidéo" msgstr "Afficher une vidéo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximiser" msgstr "Maximiser"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-01 08:34+0100\n" "PO-Revision-Date: 2025-03-01 08:34+0100\n"
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.gal>\n" "Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.gal>\n"
"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n" "Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n"
@@ -1037,7 +1037,7 @@ msgstr "Este servidor desactivou o rexistro."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Cargando" msgstr "Cargando"
@@ -1067,7 +1067,7 @@ msgid "Loading…"
msgstr "Cargando…" msgstr "Cargando…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1698,7 +1698,7 @@ msgstr "Expresións personalizadas"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Cargando a resposta" msgstr "Cargando a resposta"
@@ -1959,7 +1959,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 convidoulle." msgstr "%1 convidoulle."
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1968,18 +1968,18 @@ msgstr ""
"O ficheiro é grande de máis para descargar.<br /> Solicite asistencia á " "O ficheiro é grande de máis para descargar.<br /> Solicite asistencia á "
"administración do seu servidor de Matrix." "administración do seu servidor de Matrix."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Non hai configurado ningún servidor de identidade." msgstr "Non hai configurado ningún servidor de identidade."
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "A creación da sala fallou: %1" msgstr "A creación da sala fallou: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "A creación do espazo fallou: %1" msgstr "A creación do espazo fallou: %1"
@@ -5885,86 +5885,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Seleccione o parámetro para engadir" msgstr "Seleccione o parámetro para engadir"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Agochar" msgstr "Agochar"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Compartir" msgstr "Compartir"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Retirar" msgstr "Retirar"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completar" msgstr "Completar"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Código de país do novo número de teléfono." msgstr "Código de país do novo número de teléfono."
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Novo enderezo de correo electrónico:" msgstr "Novo enderezo de correo electrónico:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Novo número de teléfono:" msgstr "Novo número de teléfono:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Enviámoslle unha mensaxe de correo electrónico" msgstr "Enviámoslle unha mensaxe de correo electrónico"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Enviámoslle unha mensaxe de texto" msgstr "Enviámoslle unha mensaxe de texto"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Siga as instrucións nela e prema o botón embaixo." msgstr "%1. Siga as instrucións nela e prema o botón embaixo."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "O enderezo de correo electrónico inserido non é válido." msgstr "O enderezo de correo electrónico inserido non é válido."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "O número de teléfono inserido non é válido." msgstr "O número de teléfono inserido non é válido."
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "O contrasinal inserido é incorrecto." msgstr "O contrasinal inserido é incorrecto."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5973,7 +5973,7 @@ msgstr ""
"Non se verificou o enderezo de correo electrónico. Abra o correo, siga as " "Non se verificou o enderezo de correo electrónico. Abra o correo, siga as "
"instrucións da mensaxe e prema o botón embaixo." "instrucións da mensaxe e prema o botón embaixo."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5982,25 +5982,25 @@ msgstr ""
"Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as " "Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as "
"instrucións nela e prema o botón embaixo." "instrucións nela e prema o botón embaixo."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Engadir" msgstr "Engadir"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Atrás" msgstr "Atrás"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Siga as instrucións nela e prema o botón arriba." msgstr "%1. Siga as instrucións nela e prema o botón arriba."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6009,7 +6009,7 @@ msgstr ""
"Non se verificou o enderezo de correo electrónico. Abra o correo, siga as " "Non se verificou o enderezo de correo electrónico. Abra o correo, siga as "
"instrucións da mensaxe e prema o botón arriba." "instrucións da mensaxe e prema o botón arriba."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6018,35 +6018,35 @@ msgstr ""
"Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as " "Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as "
"instrucións nela e prema o botón arriba." "instrucións nela e prema o botón arriba."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 iniciou unha verificación de persoa usuaria" msgstr "%1 iniciou unha verificación de persoa usuaria"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmar a edición" msgstr "Confirmar a edición"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publicar a mensaxe nun fío" msgstr "Publicar a mensaxe nun fío"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar no portapapeis" msgstr "Copiar no portapapeis"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6055,20 +6055,20 @@ msgstr ""
"A mensaxe está cifrada e quen a enviou non compartiu a chave con este " "A mensaxe está cifrada e quen a enviou non compartiu a chave con este "
"dispositivo." "dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Obter máis eventos" msgstr "Obter máis eventos"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Descargar" msgstr "Descargar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6076,13 +6076,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Abrir un ficheiro" msgstr "Abrir un ficheiro"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1/%2" msgstr "%1/%2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6111,60 +6111,60 @@ msgstr "Hora de rexistro: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Hora de saída: %1" msgstr "Hora de saída: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Amosar a imaxe" msgstr "Amosar a imaxe"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Enviar a KDE Itinerary" msgstr "Enviar a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Retirar a vista previa" msgstr "Retirar a vista previa"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Encoller a vista previa" msgstr "Encoller a vista previa"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandir a vista previa" msgstr "Expandir a vista previa"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Cargando a vista previa do URL" msgstr "Cargando a vista previa do URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Abrir externamente" msgstr "Abrir externamente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Cos votos dunha persoa" msgstr[0] "Cos votos dunha persoa"
msgstr[1] "Cos votos de %1 persoa" msgstr[1] "Cos votos de %1 persoa"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(rematou)" msgstr "(rematou)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última lectura: %1" msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6195,24 +6195,24 @@ msgstr "Este é o comezo da conversa. Non hai mensaxes anteriores."
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Amosar o vídeo" msgstr "Amosar o vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-12-15 19:31+0530\n" "PO-Revision-Date: 2024-12-15 19:31+0530\n"
"Last-Translator: kali <skkalwar999@gmail.com>\n" "Last-Translator: kali <skkalwar999@gmail.com>\n"
"Language-Team: Hindi <kde-i18n-doc@kde.org>\n" "Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
@@ -1035,7 +1035,7 @@ msgstr "इस सर्वर पर पंजीकरण अक्षम ह
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "लोड हो रहा है" msgstr "लोड हो रहा है"
@@ -1065,7 +1065,7 @@ msgid "Loading…"
msgstr "लोड हो रहा है…" msgstr "लोड हो रहा है…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1698,7 +1698,7 @@ msgstr "अपना खुद का इमोजी बनाएं"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "जवाब लोड हो रहा है" msgstr "जवाब लोड हो रहा है"
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 ने आपको एक कमरे में आमंत्रित किया" msgstr "%1 ने आपको एक कमरे में आमंत्रित किया"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1966,18 +1966,18 @@ msgstr ""
"फ़ाइल डाउनलोड करने के लिए बहुत बड़ी है.<br /> सहायता के लिए अपने मैट्रिक्स सर्वर " "फ़ाइल डाउनलोड करने के लिए बहुत बड़ी है.<br /> सहायता के लिए अपने मैट्रिक्स सर्वर "
"व्यवस्थापक से संपर्क करें।" "व्यवस्थापक से संपर्क करें।"
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "कोई पहचान सर्वर कॉन्फ़िगर नहीं किया गया" msgstr "कोई पहचान सर्वर कॉन्फ़िगर नहीं किया गया"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "कक्ष निर्माण विफल: %1" msgstr "कक्ष निर्माण विफल: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "स्थान निर्माण विफल: %1" msgstr "स्थान निर्माण विफल: %1"
@@ -5873,86 +5873,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "छिपाना" msgstr "छिपाना"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "शेयर करना" msgstr "शेयर करना"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "निकालना" msgstr "निकालना"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "पूरा" msgstr "पूरा"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "रद्द करना" msgstr "रद्द करना"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "नए फ़ोन नंबर के लिए देश कोड" msgstr "नए फ़ोन नंबर के लिए देश कोड"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "न्यू ईमेल पता:" msgstr "न्यू ईमेल पता:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "नया फ़ोन नंबर:" msgstr "नया फ़ोन नंबर:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "हमने आपको एक ईमेल भेजा है" msgstr "हमने आपको एक ईमेल भेजा है"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "हमने आपको एक टेक्स्ट संदेश भेजा है" msgstr "हमने आपको एक टेक्स्ट संदेश भेजा है"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें" msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "दर्ज किया गया ईमेल मान्य नहीं है" msgstr "दर्ज किया गया ईमेल मान्य नहीं है"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "दर्ज किया गया फ़ोन नंबर मान्य नहीं है" msgstr "दर्ज किया गया फ़ोन नंबर मान्य नहीं है"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "गलत पासवर्ड दर्ज किया गया" msgstr "गलत पासवर्ड दर्ज किया गया"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5961,7 +5961,7 @@ msgstr ""
"ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें " "ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें "
"और फिर नीचे दिए गए बटन पर क्लिक करें" "और फिर नीचे दिए गए बटन पर क्लिक करें"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5970,25 +5970,25 @@ msgstr ""
"फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का " "फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का "
"पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें" "पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "जोड़ना" msgstr "जोड़ना"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "पीछे" msgstr "पीछे"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें" msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5997,7 +5997,7 @@ msgstr ""
"ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें " "ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें "
"और फिर ऊपर दिए गए बटन पर क्लिक करें" "और फिर ऊपर दिए गए बटन पर क्लिक करें"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6006,55 +6006,55 @@ msgstr ""
"फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का " "फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का "
"पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें" "पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ने उपयोगकर्ता सत्यापन शुरू किया" msgstr "%1 ने उपयोगकर्ता सत्यापन शुरू किया"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "संपादन की पुष्टि करें" msgstr "संपादन की पुष्टि करें"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "संदेश को थ्रेड में पोस्ट करें" msgstr "संदेश को थ्रेड में पोस्ट करें"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "क्लिपबोर्ड पर कॉपी करें" msgstr "क्लिपबोर्ड पर कॉपी करें"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "अधिकतम" msgstr "अधिकतम"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "यह संदेश एन्क्रिप्टेड है और प्रेषक ने इस डिवाइस के साथ कुंजी साझा नहीं की है।" msgstr "यह संदेश एन्क्रिप्टेड है और प्रेषक ने इस डिवाइस के साथ कुंजी साझा नहीं की है।"
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "डाउनलोड करना" msgstr "डाउनलोड करना"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6062,13 +6062,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "खुली फाइल" msgstr "खुली फाइल"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6097,60 +6097,60 @@ msgstr "चेक-इन समय: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "चेक-आउट समय: %1" msgstr "चेक-आउट समय: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "छवि दिखाएं" msgstr "छवि दिखाएं"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "केडीई यात्रा कार्यक्रम को भेजें" msgstr "केडीई यात्रा कार्यक्रम को भेजें"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "पूर्वावलोकन हटाएं" msgstr "पूर्वावलोकन हटाएं"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "पूर्वावलोकन सिकोड़ें" msgstr "पूर्वावलोकन सिकोड़ें"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "पूर्वावलोकन विस्तृत करें" msgstr "पूर्वावलोकन विस्तृत करें"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL पूर्वावलोकन लोड हो रहा है" msgstr "URL पूर्वावलोकन लोड हो रहा है"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "बाहरी रूप से खोलें" msgstr "बाहरी रूप से खोलें"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "%1 उपयोगकर्ताओं के वोटों के आधार पर" msgstr[0] "%1 उपयोगकर्ताओं के वोटों के आधार पर"
msgstr[1] "%1 उपयोगकर्ताओं के वोटों के आधार पर" msgstr[1] "%1 उपयोगकर्ताओं के वोटों के आधार पर"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(समाप्त)" msgstr "(समाप्त)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6163,7 +6163,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "अंतिम बार पढ़ा गया: %1" msgstr "अंतिम बार पढ़ा गया: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6183,24 +6183,24 @@ msgstr "यह चैट की शुरुआत है। इस बिंद
msgid "Pl. %1" msgid "Pl. %1"
msgstr "कृपया %1" msgstr "कृपया %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "वीडियो" msgstr "वीडियो"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "वीडियो दिखाएं" msgstr "वीडियो दिखाएं"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "आयतन" msgstr "आयतन"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "अधिकतम" msgstr "अधिकतम"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-11-13 22:41+0100\n" "PO-Revision-Date: 2024-11-13 22:41+0100\n"
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n" "Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n"
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n" "Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
@@ -1064,7 +1064,7 @@ msgstr "A regisztráció le van tiltva ezen a kiszolgálón."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Betöltés" msgstr "Betöltés"
@@ -1096,7 +1096,7 @@ msgid "Loading…"
msgstr "Betöltés…" msgstr "Betöltés…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1732,7 +1732,7 @@ msgstr "Saját emodzsik"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Válasz betöltése" msgstr "Válasz betöltése"
@@ -1992,7 +1992,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 meghívta Önt egy szobába" msgstr "%1 meghívta Önt egy szobába"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -2001,18 +2001,18 @@ msgstr ""
"A fájl túl nagy a letöltéshez.<br />Támogatásért forduljon a matrix " "A fájl túl nagy a letöltéshez.<br />Támogatásért forduljon a matrix "
"kiszolgáló rendszergazdájához." "kiszolgáló rendszergazdájához."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Nincs beállítva identitáskiszolgáló" msgstr "Nincs beállítva identitáskiszolgáló"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Nem sikerült létrehozni a szobát: %1" msgstr "Nem sikerült létrehozni a szobát: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Nem sikerült létrehozni a teret: %1" msgstr "Nem sikerült létrehozni a teret: %1"
@@ -6024,65 +6024,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Elrejtés" msgstr "Elrejtés"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Megosztás" msgstr "Megosztás"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Eltávolítás" msgstr "Eltávolítás"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Befejezés" msgstr "Befejezés"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Mégse" msgstr "Mégse"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Új telefonszám országkódja" msgstr "Új telefonszám országkódja"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Új e-mail-cím:" msgstr "Új e-mail-cím:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Új telefonszám:" msgstr "Új telefonszám:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Küldtünk Önnek egy e-mailt" msgstr "Küldtünk Önnek egy e-mailt"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Küldtünk Önnek egy szöveges üzenetet" msgstr "Küldtünk Önnek egy szöveges üzenetet"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
@@ -6090,22 +6090,22 @@ msgstr ""
"%1. Kérjük, kövesse az ott található utasításokat, majd kattintson az alábbi " "%1. Kérjük, kövesse az ott található utasításokat, majd kattintson az alábbi "
"gombra" "gombra"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "A beírt e-mail-cím érvénytelen" msgstr "A beírt e-mail-cím érvénytelen"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "A beírt telefonszám érvénytelen" msgstr "A beírt telefonszám érvénytelen"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Helytelen jelszó megadása" msgstr "Helytelen jelszó megadása"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6114,7 +6114,7 @@ msgstr ""
"Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse " "Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse "
"az ott található utasításokat, majd kattintson az alábbi gombra" "az ott található utasításokat, majd kattintson az alábbi gombra"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6123,19 +6123,19 @@ msgstr ""
"A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és " "A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és "
"kövesse az ott található utasításokat, majd kattintson az alábbi gombra" "kövesse az ott található utasításokat, majd kattintson az alábbi gombra"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Hozzáadás" msgstr "Hozzáadás"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Vissza" msgstr "Vissza"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
@@ -6143,7 +6143,7 @@ msgstr ""
"%1. Kérjük, kövesse az ott található utasításokat, majd kattintson a fenti " "%1. Kérjük, kövesse az ott található utasításokat, majd kattintson a fenti "
"gombra" "gombra"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6152,7 +6152,7 @@ msgstr ""
"Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse " "Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse "
"az ott található utasításokat, majd kattintson a fenti gombra" "az ott található utasításokat, majd kattintson a fenti gombra"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6161,35 +6161,35 @@ msgstr ""
"A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és " "A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és "
"kövesse az ott található utasításokat, majd kattintson a fenti gombra" "kövesse az ott található utasításokat, majd kattintson a fenti gombra"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 elindított egy felhasználóellenőrzést" msgstr "%1 elindított egy felhasználóellenőrzést"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Szerkesztés megerősítése" msgstr "Szerkesztés megerősítése"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Üzenet küldése szálban" msgstr "Üzenet küldése szálban"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Másolás a vágólapra" msgstr "Másolás a vágólapra"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizálás" msgstr "Maximalizálás"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6198,20 +6198,20 @@ msgstr ""
"Ez az üzenet titkosított, és a feladó nem osztotta meg a kulcsot ezzel az " "Ez az üzenet titkosított, és a feladó nem osztotta meg a kulcsot ezzel az "
"eszközzel." "eszközzel."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Letöltés" msgstr "Letöltés"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6219,13 +6219,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Fájl megnyitása" msgstr "Fájl megnyitása"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6254,60 +6254,60 @@ msgstr "Bejelentkezés ideje: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Kijelentkezés ideje: %1" msgstr "Kijelentkezés ideje: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Kép megjelenítése" msgstr "Kép megjelenítése"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Küldés a KDE Itineraryba" msgstr "Küldés a KDE Itineraryba"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Előnézet eltávolítása" msgstr "Előnézet eltávolítása"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Előnézet kicsinyítése" msgstr "Előnézet kicsinyítése"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Előnézet nagyítása" msgstr "Előnézet nagyítása"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL előnézetének betöltése" msgstr "URL előnézetének betöltése"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Megnyitás külsőleg" msgstr "Megnyitás külsőleg"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "%1 felhasználó szavazata alapján" msgstr[0] "%1 felhasználó szavazata alapján"
msgstr[1] "%1 felhasználó szavazata alapján" msgstr[1] "%1 felhasználó szavazata alapján"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Befejeződött)" msgstr "(Befejeződött)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6320,7 +6320,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Utoljára olvasva: %1" msgstr "Utoljára olvasva: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6340,24 +6340,24 @@ msgstr "Ez a csevegés kezdete. Nincsenek korábbi üzenetek ezen a ponton túl.
msgid "Pl. %1" msgid "Pl. %1"
msgstr "%1. vágány" msgstr "%1. vágány"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Videó" msgstr "Videó"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Videó megjelenítése" msgstr "Videó megjelenítése"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Hangerő" msgstr "Hangerő"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizálás" msgstr "Maximalizálás"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-04 15:22+0100\n" "PO-Revision-Date: 2025-03-11 10:26+0100\n"
"Last-Translator: giovanni <g.sora@tiscali.it>\n" "Last-Translator: giovanni <g.sora@tiscali.it>\n"
"Language-Team: Interlingua <kde-i18n-doc@kde.org>\n" "Language-Team: Interlingua <kde-i18n-doc@kde.org>\n"
"Language: ia\n" "Language: ia\n"
@@ -1039,7 +1039,7 @@ msgstr "Registration es dishabilitate sur iste servitor."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Cargante" msgstr "Cargante"
@@ -1071,7 +1071,7 @@ msgid "Loading…"
msgstr "Cargante..." msgstr "Cargante..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1705,7 +1705,7 @@ msgstr "Proprie Emojis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Cargante responsa" msgstr "Cargante responsa"
@@ -1961,7 +1961,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 invitava te " msgstr "%1 invitava te "
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1970,18 +1970,18 @@ msgstr ""
"File troppo grande a discargar.<br />Continge tu administrator de servitor " "File troppo grande a discargar.<br />Continge tu administrator de servitor "
"de matrix per supporto." "de matrix per supporto."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Nulle servitor de identitate configurate" msgstr "Nulle servitor de identitate configurate"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Creation de sala falleva: \"%1\"" msgstr "Creation de sala falleva: \"%1\""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Creation de spatio falleva: \"%1\"" msgstr "Creation de spatio falleva: \"%1\""
@@ -2121,13 +2121,15 @@ msgstr "Verifica iste Dispositivo"
#, kde-format #, kde-format
msgctxt "@title" msgctxt "@title"
msgid "Verification Request Sent" msgid "Verification Request Sent"
msgstr "" msgstr "Requesta de Verification inviate"
#: src/qml/AccountMenu.qml:94 #: src/qml/AccountMenu.qml:94
#, kde-format #, kde-format
msgctxt "@info:label" msgctxt "@info:label"
msgid "To proceed, accept the verification request on another device." msgid "To proceed, accept the verification request on another device."
msgstr "" msgstr ""
"Per proceder, tu accepta le requesta de verification sur un altere "
"dispoisitivo."
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88 #: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
#, kde-format #, kde-format
@@ -5889,65 +5891,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Seliger parametro a adder" msgstr "Seliger parametro a adder"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Cela" msgstr "Cela"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Comparti" msgstr "Comparti"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Remove" msgstr "Remove"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Complete" msgstr "Complete"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancella" msgstr "Cancella"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Codice de Pais per nove numero de telephono" msgstr "Codice de Pais per nove numero de telephono"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nove adresse de e-posta:" msgstr "Nove adresse de e-posta:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nove numero de telephono:" msgstr "Nove numero de telephono:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Nos te inviava un message de e-posta" msgstr "Nos te inviava un message de e-posta"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr " Nos te ha inviate un message de texto" msgstr " Nos te ha inviate un message de texto"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
@@ -5955,22 +5957,22 @@ msgstr ""
"%1, pro favor tu seque le instructiones illac e postea clicca sur le button " "%1, pro favor tu seque le instructiones illac e postea clicca sur le button "
"a basso" "a basso"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Le eposta insertate non es valide" msgstr "Le eposta insertate non es valide"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Le numero de telephono insertate non es valide" msgstr "Le numero de telephono insertate non es valide"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Contrasigno incorrecte insertate" msgstr "Contrasigno incorrecte insertate"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5979,7 +5981,7 @@ msgstr ""
"Le message de e-posta non ha essite verificate. Pro favor vade al message de " "Le message de e-posta non ha essite verificate. Pro favor vade al message de "
"e-posta e seque le instructiones illac e postea clicca le button a basso" "e-posta e seque le instructiones illac e postea clicca le button a basso"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5988,19 +5990,19 @@ msgstr ""
"Le numero de telephono non ha essite verificate. Pro favor vade al message " "Le numero de telephono non ha essite verificate. Pro favor vade al message "
"de texto e seque le instructiones illac e postea clicca le button a basso" "de texto e seque le instructiones illac e postea clicca le button a basso"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Adde" msgstr "Adde"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Retro" msgstr "Retro"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
@@ -6008,7 +6010,7 @@ msgstr ""
"%1, pro favor tu seque le instructiones illac e postea clicca sur le button " "%1, pro favor tu seque le instructiones illac e postea clicca sur le button "
"in alto" "in alto"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6017,7 +6019,7 @@ msgstr ""
"Le message de e-posta non ha essite verificate. Pro favor vade al message de " "Le message de e-posta non ha essite verificate. Pro favor vade al message de "
"e-posta e seque le instructiones illac e postea clicca le button in alto" "e-posta e seque le instructiones illac e postea clicca le button in alto"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6026,35 +6028,35 @@ msgstr ""
"Le numero de telephono non ha essite verificate. Pro favor vade al message " "Le numero de telephono non ha essite verificate. Pro favor vade al message "
"de texto e seque le instructiones illac e postea clicca le button in alto" "de texto e seque le instructiones illac e postea clicca le button in alto"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 initiava un verification de usator" msgstr "%1 initiava un verification de usator"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirma modificar" msgstr "Confirma modificar"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Invia (post) Message in topico" msgstr "Invia (post) Message in topico"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copia in area de transferentia" msgstr "Copia in area de transferentia"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximiza" msgstr "Maximiza"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6063,20 +6065,20 @@ msgstr ""
"Iste message es cryptate e le mittente non ha compartite le clave con iste " "Iste message es cryptate e le mittente non ha compartite le clave con iste "
"dispositivo." "dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "TRova plus eventos" msgstr "TRova plus eventos"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Discarga" msgstr "Discarga"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6084,13 +6086,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Aperi file" msgstr "Aperi file"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6119,60 +6121,60 @@ msgstr "Tempore de Check-in: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Tempore de Check-Out: %1" msgstr "Tempore de Check-Out: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Monstra imagine" msgstr "Monstra imagine"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Invia a KDE Itinerary" msgstr "Invia a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Remove vista preliminar" msgstr "Remove vista preliminar"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Comprime vista preliminar" msgstr "Comprime vista preliminar"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expande Vista Preliminar" msgstr "Expande Vista Preliminar"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Cargante vista preliminar de URL" msgstr "Cargante vista preliminar de URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Aperi externemente" msgstr "Aperi externemente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basate sur votos per %1 usator" msgstr[0] "Basate sur votos per %1 usator"
msgstr[1] "Basate sur votos per %1 usatores" msgstr[1] "Basate sur votos per %1 usatores"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(teminate (ended))" msgstr "(teminate (ended))"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6184,7 +6186,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Ultime legite: %1" msgstr "Ultime legite: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6205,24 +6207,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Monstra Video" msgstr "Monstra Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volumine" msgstr "Volumine"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximiza" msgstr "Maximiza"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2023-06-16 19:31+0700\n" "PO-Revision-Date: 2023-06-16 19:31+0700\n"
"Last-Translator: Linerly <linerly@protonmail.com>\n" "Last-Translator: Linerly <linerly@protonmail.com>\n"
"Language-Team: Indonesian <kde-i18n-doc@kde.org>\n" "Language-Team: Indonesian <kde-i18n-doc@kde.org>\n"
@@ -1126,7 +1126,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1159,7 +1159,7 @@ msgid "Loading…"
msgstr "Memuat..." msgstr "Memuat..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1813,7 +1813,7 @@ msgstr "Emoji Sendiri"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2146,7 +2146,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 mengundang Anda ke sebuah ruangan" msgstr "%1 mengundang Anda ke sebuah ruangan"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Contact your matrix server administrator for support." #| msgid "Contact your matrix server administrator for support."
msgid "" msgid ""
@@ -2154,18 +2154,18 @@ msgid ""
"for support." "for support."
msgstr "Hubungi administrator server Matrix Anda untuk dukungan." msgstr "Hubungi administrator server Matrix Anda untuk dukungan."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Pembuatan ruangan gagal: %1" msgstr "Pembuatan ruangan gagal: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Pembuatan space gagal: %1" msgstr "Pembuatan space gagal: %1"
@@ -6339,117 +6339,117 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Bagikan" msgstr "Bagikan"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Hapus" msgstr "Hapus"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Kompak" msgstr "Kompak"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm new display name" #| msgid "Confirm new display name"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Konfirmasi nama tampilan baru" msgstr "Konfirmasi nama tampilan baru"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Anggota" msgstr "Anggota"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "sent a message" #| msgid "sent a message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "mengirim pesan" msgstr "mengirim pesan"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Teks yang dimasukkan bukan sebuah URL yang valid" msgstr "Teks yang dimasukkan bukan sebuah URL yang valid"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Teks yang dimasukkan bukan sebuah URL yang valid" msgstr "Teks yang dimasukkan bukan sebuah URL yang valid"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Kata sandi salah" msgstr "Kata sandi salah"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Tambahkan" msgstr "Tambahkan"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6457,59 +6457,59 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Kembali" msgstr "Kembali"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew a user's invitation" #| msgid "withdrew a user's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "membatalkan undangan pengguna" msgstr "membatalkan undangan pengguna"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Konfirmasi penyuntingan" msgstr "Konfirmasi penyuntingan"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No results found" #| msgid "No results found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Tidak ada hasil yang ditemukan" msgstr "Tidak ada hasil yang ditemukan"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Copy room ID to clipboard" #| msgid "Copy room ID to clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Salin ID ruangan ke papan klip" msgstr "Salin ID ruangan ke papan klip"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Maximize" #| msgid "Maximize"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maksimalkan" msgstr "Maksimalkan"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6517,20 +6517,20 @@ msgid ""
msgstr "" msgstr ""
"Pesan ini terenkripsi dan pengirim belum membagikan kuncinya ke peranti ini." "Pesan ini terenkripsi dan pengirim belum membagikan kuncinya ke peranti ini."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Unduh" msgstr "Unduh"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6538,13 +6538,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Buka Berkas" msgstr "Buka Berkas"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6573,63 +6573,63 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Set Image" #| msgid "Set Image"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Tetapkan Gambar" msgstr "Tetapkan Gambar"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Hapus peranti" msgstr "Hapus peranti"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Kecilkan pratinjau" msgstr "Kecilkan pratinjau"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Luaskan pratinjau" msgstr "Luaskan pratinjau"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Memuat pratinjau URL" msgstr "Memuat pratinjau URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Buka secara Eksternal" msgstr "Buka secara Eksternal"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Berdasarkan pemungutan suara dari %1 pengguna" msgstr[0] "Berdasarkan pemungutan suara dari %1 pengguna"
msgstr[1] "Berdasarkan pemungutan suara dari %1 pengguna" msgstr[1] "Berdasarkan pemungutan suara dari %1 pengguna"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Berakhir)" msgstr "(Berakhir)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6642,7 +6642,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Terakhir dibaca: %1" msgstr "Terakhir dibaca: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6662,25 +6662,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maksimalkan" msgstr "Maksimalkan"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2022-10-28 19:18+0700\n" "PO-Revision-Date: 2022-10-28 19:18+0700\n"
"Last-Translator: OIS <mistresssilvara@hotmail.com>\n" "Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
"Language-Team: kde-i18n-doc@kde.org\n" "Language-Team: kde-i18n-doc@kde.org\n"
@@ -1084,7 +1084,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1116,7 +1116,7 @@ msgid "Loading…"
msgstr "Cargante..." msgstr "Cargante..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1797,7 +1797,7 @@ msgstr "Converter smileys a emojis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2090,25 +2090,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%s invitat vos a(l) %s" msgstr "%s invitat vos a(l) %s"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Ne successat crear un contextu OpenGL" msgstr "Ne successat crear un contextu OpenGL"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Ne successat crear un contextu OpenGL" msgstr "Ne successat crear un contextu OpenGL"
@@ -6178,112 +6178,112 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Partir" msgstr "Partir"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Compact" msgstr "Compact"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Anullar" msgstr "Anullar"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Visibil nómine" msgstr "Visibil nómine"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Membres" msgstr "Membres"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Ne successat inviar un missage D-Bus" msgstr "Ne successat inviar un missage D-Bus"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Contrasigne es ínvalid." msgstr "Contrasigne es ínvalid."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Adjunter" msgstr "Adjunter"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6291,79 +6291,79 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Retro" msgstr "Retro"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew %1's invitation" #| msgid "withdrew %1's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "revocat li invitation de %1" msgstr "revocat li invitation de %1"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm" #| msgid "Confirm"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmar" msgstr "Confirmar"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Chambres" msgstr "Chambres"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:inmenu" #| msgctxt "@action:inmenu"
#| msgid "Copy Address to Clipboard" #| msgid "Copy Address to Clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar li adresse al Paperiere" msgstr "Copiar li adresse al Paperiere"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Descargar" msgstr "Descargar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6371,13 +6371,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Aperter li file" msgstr "Aperter li file"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6406,61 +6406,61 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Nómine del chambre" msgstr "Nómine del chambre"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Remover li aparate" msgstr "Remover li aparate"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Aperter _externmen" msgstr "Aperter _externmen"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6473,7 +6473,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Leet ultimmen: %1" msgstr "Leet ultimmen: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6493,25 +6493,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-01 07:47+0100\n" "PO-Revision-Date: 2025-03-06 16:43+0100\n"
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n" "Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n" "Language-Team: Italian <kde-i18n-it@kde.org>\n"
"Language: it\n" "Language: it\n"
@@ -1042,7 +1042,7 @@ msgstr "La registrazione è disabilitata su questo server."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Caricamento" msgstr "Caricamento"
@@ -1074,7 +1074,7 @@ msgid "Loading…"
msgstr "Caricamento…" msgstr "Caricamento…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1708,7 +1708,7 @@ msgstr "I propri emoji"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Caricamento risposta" msgstr "Caricamento risposta"
@@ -1968,7 +1968,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 ti ha invitato" msgstr "%1 ti ha invitato"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1977,18 +1977,18 @@ msgstr ""
"File troppo grande per essere scaricato.<br />Contatta l'amministratore del " "File troppo grande per essere scaricato.<br />Contatta l'amministratore del "
"server Matrix per assistenza." "server Matrix per assistenza."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Nessun server delle identità configurato" msgstr "Nessun server delle identità configurato"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Creazione della stanza non riuscita: %1" msgstr "Creazione della stanza non riuscita: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Creazione dello spazio non riuscita: %1" msgstr "Creazione dello spazio non riuscita: %1"
@@ -2128,13 +2128,14 @@ msgstr "Verifica questo dispositivo"
#, kde-format #, kde-format
msgctxt "@title" msgctxt "@title"
msgid "Verification Request Sent" msgid "Verification Request Sent"
msgstr "" msgstr "Richiesta di verifica inviata"
#: src/qml/AccountMenu.qml:94 #: src/qml/AccountMenu.qml:94
#, kde-format #, kde-format
msgctxt "@info:label" msgctxt "@info:label"
msgid "To proceed, accept the verification request on another device." msgid "To proceed, accept the verification request on another device."
msgstr "" msgstr ""
"Per continuare, accetta la richiesta di verifica su un altro dispositivo."
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88 #: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
#, kde-format #, kde-format
@@ -5913,86 +5914,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Seleziona il parametro da aggiungere" msgstr "Seleziona il parametro da aggiungere"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Nascondi" msgstr "Nascondi"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Condividi" msgstr "Condividi"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Rimuovi" msgstr "Rimuovi"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completata" msgstr "Completata"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Prefisso internazionale per il nuovo numero di telefono" msgstr "Prefisso internazionale per il nuovo numero di telefono"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nuovo indirizzo di posta:" msgstr "Nuovo indirizzo di posta:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nuovo numero di telefono:" msgstr "Nuovo numero di telefono:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Ti abbiamo inviato un messaggio di posta elettronica" msgstr "Ti abbiamo inviato un messaggio di posta elettronica"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Ti abbiamo inviato un messaggio di testo" msgstr "Ti abbiamo inviato un messaggio di testo"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sotto" msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sotto"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "L'indirizzo di posta digitato non è valido" msgstr "L'indirizzo di posta digitato non è valido"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Il numero di telefono digitato non è valido" msgstr "Il numero di telefono digitato non è valido"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "È stata digitata una password errata" msgstr "È stata digitata una password errata"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6001,7 +6002,7 @@ msgstr ""
"L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di " "L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di "
"posta e segui le istruzioni presenti, quindi fai clic sul pulsante in basso" "posta e segui le istruzioni presenti, quindi fai clic sul pulsante in basso"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6010,25 +6011,25 @@ msgstr ""
"Il numero di telefono non è stato verificato. Vai al messaggio di testo e " "Il numero di telefono non è stato verificato. Vai al messaggio di testo e "
"segui le istruzioni presenti, quindi fai clic sul pulsante in basso" "segui le istruzioni presenti, quindi fai clic sul pulsante in basso"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Aggiungi" msgstr "Aggiungi"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Indietro" msgstr "Indietro"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sopra" msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sopra"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6037,7 +6038,7 @@ msgstr ""
"L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di " "L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di "
"posta e segui le istruzioni presenti, quindi fai clic sul pulsante in alto" "posta e segui le istruzioni presenti, quindi fai clic sul pulsante in alto"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6046,35 +6047,35 @@ msgstr ""
"Il numero di telefono non è stato verificato. Vai al messaggio di testo e " "Il numero di telefono non è stato verificato. Vai al messaggio di testo e "
"segui le istruzioni presenti, quindi fai clic sul pulsante in alto" "segui le istruzioni presenti, quindi fai clic sul pulsante in alto"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ha iniziato una verifica utente" msgstr "%1 ha iniziato una verifica utente"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Conferma la modifica" msgstr "Conferma la modifica"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Pubblica messaggio nella conversazione" msgstr "Pubblica messaggio nella conversazione"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copia negli appunti" msgstr "Copia negli appunti"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Massimizza" msgstr "Massimizza"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6083,20 +6084,20 @@ msgstr ""
"Questo messaggio è cifrato e il mittente non ha condiviso la chiave con " "Questo messaggio è cifrato e il mittente non ha condiviso la chiave con "
"questo dispositivo." "questo dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Recupera altri eventi" msgstr "Recupera altri eventi"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Scarica" msgstr "Scarica"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6104,13 +6105,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Apri file" msgstr "Apri file"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6139,60 +6140,60 @@ msgstr "Ora di check-in: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Ora di check-out: %1" msgstr "Ora di check-out: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Mostra immagine" msgstr "Mostra immagine"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Invia a KDE Itinerary" msgstr "Invia a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Rimuovi l'anteprima" msgstr "Rimuovi l'anteprima"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Riduci l'anteprima" msgstr "Riduci l'anteprima"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Espandi l'anteprima" msgstr "Espandi l'anteprima"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Caricamento dell'anteprima dell'URL" msgstr "Caricamento dell'anteprima dell'URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Apri esternamente" msgstr "Apri esternamente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basato sui voti di %1 utente" msgstr[0] "Basato sui voti di %1 utente"
msgstr[1] "Basato sui voti di %1 utenti" msgstr[1] "Basato sui voti di %1 utenti"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Terminato)" msgstr "(Terminato)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6204,7 +6205,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Ultima lettura: %1" msgstr "Ultima lettura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6225,24 +6226,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Bin. %1" msgstr "Bin. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Mostra video" msgstr "Mostra video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Massimizza" msgstr "Massimizza"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2020-11-05 23:50-0800\n" "PO-Revision-Date: 2020-11-05 23:50-0800\n"
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n" "Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
"Language-Team: Japanese <kde-jp@kde.org>\n" "Language-Team: Japanese <kde-jp@kde.org>\n"
@@ -1023,7 +1023,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "" msgstr ""
@@ -1053,7 +1053,7 @@ msgid "Loading…"
msgstr "" msgstr ""
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1683,7 +1683,7 @@ msgstr ""
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "" msgstr ""
@@ -1932,25 +1932,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "" msgstr ""
@@ -5768,180 +5768,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5949,13 +5949,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -5984,59 +5984,59 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "" msgstr ""
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "" msgstr ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6048,7 +6048,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "" msgstr ""
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6067,24 +6067,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 02:46+0100\n" "PO-Revision-Date: 2025-03-06 02:46+0100\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <kde-i18n-doc@kde.org>\n" "Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
@@ -1038,7 +1038,7 @@ msgstr "ამ სერვერზე რეგისტრაცია გა
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "იტვირთება" msgstr "იტვირთება"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "ჩატვირთვა…" msgstr "ჩატვირთვა…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1702,7 +1702,7 @@ msgstr "საკუთარი ემოჯიები"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "პასუხის ჩატვირთვა" msgstr "პასუხის ჩატვირთვა"
@@ -1960,7 +1960,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1-მა მოგიწვიათ" msgstr "%1-მა მოგიწვიათ"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1969,18 +1969,18 @@ msgstr ""
"გადმოსაწერად ფაილი მეტისმეტად დიდია.<br />მხარდაჭერისთვის დაუკავშირდით " "გადმოსაწერად ფაილი მეტისმეტად დიდია.<br />მხარდაჭერისთვის დაუკავშირდით "
"თქვენი Matrix-ის სერვერის ადმინისტრატორს." "თქვენი Matrix-ის სერვერის ადმინისტრატორს."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "იდენტიფიკატორების სერვერი მორგებული არაა" msgstr "იდენტიფიკატორების სერვერი მორგებული არაა"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "ოთახის შექმნის შეცდომა: %1" msgstr "ოთახის შექმნის შეცდომა: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "სივრცის შექმნის შეცდომა: %1" msgstr "სივრცის შექმნის შეცდომა: %1"
@@ -5855,86 +5855,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "აირჩიეთ დასამატებელი პარამეტრი" msgstr "აირჩიეთ დასამატებელი პარამეტრი"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "დამალვა" msgstr "დამალვა"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "გაზიარება" msgstr "გაზიარება"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "წაშლა" msgstr "წაშლა"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "დასრულებულია" msgstr "დასრულებულია"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "გაუქმება" msgstr "გაუქმება"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "ქვეყნის კოდი ახალი ტელეფონის ნომრისთვის" msgstr "ქვეყნის კოდი ახალი ტელეფონის ნომრისთვის"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "ახალი ელფოსტის მისამართი:" msgstr "ახალი ელფოსტის მისამართი:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "ახალი ტელეფონის ნომერი:" msgstr "ახალი ტელეფონის ნომერი:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "ჩვენ ელფოსტა გამოგიგზავნეთ" msgstr "ჩვენ ელფოსტა გამოგიგზავნეთ"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "ჩვენ ტექსტური შეტყობინება გამოგიგზავნეთ" msgstr "ჩვენ ტექსტური შეტყობინება გამოგიგზავნეთ"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ქვემოთ" msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ქვემოთ"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "შეყვანილი ელფოსტა არასწორია" msgstr "შეყვანილი ელფოსტა არასწორია"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "შეყვანილი ტელეფონის ნომერი არასწორია" msgstr "შეყვანილი ტელეფონის ნომერი არასწორია"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "შეყვანილი პაროლი არასწორია" msgstr "შეყვანილი პაროლი არასწორია"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5943,7 +5943,7 @@ msgstr ""
"ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, " "ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, "
"რომლებიც გამოგიგზავნეთ, შემდეგ კი ქვემოთ ღილაკზე დააწკაპუნეთ" "რომლებიც გამოგიგზავნეთ, შემდეგ კი ქვემოთ ღილაკზე დააწკაპუნეთ"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5953,25 +5953,25 @@ msgstr ""
"მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ქვემოთ ღილაკზე " "მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ქვემოთ ღილაკზე "
"დააწკაპუნეთ" "დააწკაპუნეთ"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "დამატება" msgstr "დამატება"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "უკან" msgstr "უკან"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ზემოთ" msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ზემოთ"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5980,7 +5980,7 @@ msgstr ""
"ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, " "ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, "
"რომლებიც გამოგიგზავნეთ, შემდეგ კი ზემოთ ღილაკზე დააწკაპუნეთ" "რომლებიც გამოგიგზავნეთ, შემდეგ კი ზემოთ ღილაკზე დააწკაპუნეთ"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5990,35 +5990,35 @@ msgstr ""
"მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ზემოთ ღილაკზე " "მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ზემოთ ღილაკზე "
"დააწკაპუნეთ" "დააწკაპუნეთ"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1-მა დაიწყო მომხმარებლის გადამოწმება" msgstr "%1-მა დაიწყო მომხმარებლის გადამოწმება"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "ჩასწორების დადასტურება" msgstr "ჩასწორების დადასტურება"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "შეტყობინების დაპოსტვა დისკუსიაში" msgstr "შეტყობინების დაპოსტვა დისკუსიაში"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "ბუფერში კოპირება" msgstr "ბუფერში კოპირება"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "გადიდება" msgstr "გადიდება"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6027,20 +6027,20 @@ msgstr ""
"ეს შეტყობინება დაშიფრულია და გამომგზავნს ამ მოწყობილობისთვის გასაღები არ " "ეს შეტყობინება დაშიფრულია და გამომგზავნს ამ მოწყობილობისთვის გასაღები არ "
"გაუზიარებია." "გაუზიარებია."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "მეტი მოვლენის მიღება" msgstr "მეტი მოვლენის მიღება"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "ჩამოტვირთვა" msgstr "ჩამოტვირთვა"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6048,13 +6048,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "ფაილის გახსნა" msgstr "ფაილის გახსნა"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6083,60 +6083,60 @@ msgstr "ჩეკინის დრო: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "ჩეკაუტის დრო: %1" msgstr "ჩეკაუტის დრო: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "გამოსახულების ჩვენება" msgstr "გამოსახულების ჩვენება"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "გაგზავნა KDE Itinerary-სთვის" msgstr "გაგზავნა KDE Itinerary-სთვის"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "მინიატურის წაშლა" msgstr "მინიატურის წაშლა"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "მინატურის შემცირება" msgstr "მინატურის შემცირება"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "მინიატურის გაფართოება" msgstr "მინიატურის გაფართოება"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL-ის მინიატურის ჩატვირთვა" msgstr "URL-ის მინიატურის ჩატვირთვა"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "გარეთ გახსნა" msgstr "გარეთ გახსნა"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "ეფუძნება %1 მომხმარებლის არჩევანს" msgstr[0] "ეფუძნება %1 მომხმარებლის არჩევანს"
msgstr[1] "ეფუძნება %1 მომხმარებლის არჩევანს" msgstr[1] "ეფუძნება %1 მომხმარებლის არჩევანს"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(დასრულდა)" msgstr "(დასრულდა)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6148,7 +6148,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "ბოლოს წაიკითხა: %1" msgstr "ბოლოს წაიკითხა: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6168,24 +6168,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "პლ. %1" msgstr "პლ. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "ვიდეო" msgstr "ვიდეო"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "ვიდეოს ჩვენება" msgstr "ვიდეოს ჩვენება"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "ხმის სიმაღლე" msgstr "ხმის სიმაღლე"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "გადიდება" msgstr "გადიდება"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-02-24 22:09+0100\n" "PO-Revision-Date: 2024-02-24 22:09+0100\n"
"Last-Translator: Shinjo Park <kde@peremen.name>\n" "Last-Translator: Shinjo Park <kde@peremen.name>\n"
"Language-Team: Korean <kde-kr@kde.org>\n" "Language-Team: Korean <kde-kr@kde.org>\n"
@@ -1126,7 +1126,7 @@ msgstr "이 서버에 등록이 비활성화되어 있습니다."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "불러오는 중" msgstr "불러오는 중"
@@ -1157,7 +1157,7 @@ msgid "Loading…"
msgstr "불러오는 중…" msgstr "불러오는 중…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1792,7 +1792,7 @@ msgstr "내 이모지"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "답장 불러오는 중" msgstr "답장 불러오는 중"
@@ -2094,7 +2094,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 님이 대화방에 초대함" msgstr "%1 님이 대화방에 초대함"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Contact your matrix server administrator for support." #| msgid "Contact your matrix server administrator for support."
msgid "" msgid ""
@@ -2102,18 +2102,18 @@ msgid ""
"for support." "for support."
msgstr "Matrix 서버 관리자에게 연락하십시오." msgstr "Matrix 서버 관리자에게 연락하십시오."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "대화방 생성 실패: %1" msgstr "대화방 생성 실패: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "스페이스 생성 실패: %1" msgstr "스페이스 생성 실패: %1"
@@ -6171,117 +6171,117 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "공유" msgstr "공유"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "삭제" msgstr "삭제"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "간략함" msgstr "간략함"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "취소" msgstr "취소"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add an e-mail address:" #| msgid "Add an e-mail address:"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "이메일 주소 추가:" msgstr "이메일 주소 추가:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "구성원" msgstr "구성원"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "sent a message" #| msgid "sent a message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "님이 메시지를 보냄" msgstr "님이 메시지를 보냄"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "입력한 텍스트가 올바른 URL이 아님" msgstr "입력한 텍스트가 올바른 URL이 아님"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "입력한 텍스트가 올바른 URL이 아님" msgstr "입력한 텍스트가 올바른 URL이 아님"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "암호가 잘못됨" msgstr "암호가 잘못됨"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "추가" msgstr "추가"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6289,59 +6289,59 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "뒤로" msgstr "뒤로"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew a user's invitation" #| msgid "withdrew a user's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "님이 사용자의 초대를 거절함" msgstr "님이 사용자의 초대를 거절함"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "편집 확인" msgstr "편집 확인"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No messages found" #| msgid "No messages found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "메시지를 찾을 수 없음" msgstr "메시지를 찾을 수 없음"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Copy room ID to clipboard" #| msgid "Copy room ID to clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "클립보드에 대화방 ID 복사" msgstr "클립보드에 대화방 ID 복사"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Maximize" #| msgid "Maximize"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "최대화" msgstr "최대화"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6350,20 +6350,20 @@ msgstr ""
"이 메시지는 암호화되어 있으며 전송한 사람이 이 장치와 키를 공유하지 않았습니" "이 메시지는 암호화되어 있으며 전송한 사람이 이 장치와 키를 공유하지 않았습니"
"다." "다."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "다운로드" msgstr "다운로드"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6371,13 +6371,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "파일 열기" msgstr "파일 열기"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6406,62 +6406,62 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Set Image" #| msgid "Set Image"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "이미지 설정" msgstr "이미지 설정"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "KDE 여행 정보로 전송" msgstr "KDE 여행 정보로 전송"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "장치 삭제" msgstr "장치 삭제"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "미리 보기 축소" msgstr "미리 보기 축소"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "미리 보기 확장" msgstr "미리 보기 확장"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL 미리 보기 불러오는 중" msgstr "URL 미리 보기 불러오는 중"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "외부 프로그램으로 열기" msgstr "외부 프로그램으로 열기"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "사용자 %1명의 투표에 의함" msgstr[0] "사용자 %1명의 투표에 의함"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(종료됨)" msgstr "(종료됨)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6474,7 +6474,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "마지막 읽음: %1" msgstr "마지막 읽음: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6494,25 +6494,25 @@ msgstr "대화의 최초입니다. 이 지점보다 더 오래된 메시지가
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "비디오" msgstr "비디오"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "비디오" msgstr "비디오"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "음량" msgstr "음량"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "최대화" msgstr "최대화"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2023-02-25 01:00+0000\n" "PO-Revision-Date: 2023-02-25 01:00+0000\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@@ -1030,7 +1030,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "" msgstr ""
@@ -1060,7 +1060,7 @@ msgid "Loading…"
msgstr "" msgstr ""
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1690,7 +1690,7 @@ msgstr ""
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "" msgstr ""
@@ -1946,25 +1946,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "" msgstr ""
@@ -5796,180 +5796,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5977,13 +5977,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6012,47 +6012,47 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "" msgstr ""
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "" msgstr ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6060,13 +6060,13 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] "" msgstr[2] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6078,7 +6078,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "" msgstr ""
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6097,24 +6097,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 18:51+0200\n" "PO-Revision-Date: 2025-03-06 18:51+0200\n"
"Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\n" "Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\n"
"Language-Team: Latvian <kde-i18n-doc@kde.org>\n" "Language-Team: Latvian <kde-i18n-doc@kde.org>\n"
@@ -1040,7 +1040,7 @@ msgstr "Šajā serverī reģistrācija ir izslēgta."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Ielādē" msgstr "Ielādē"
@@ -1071,7 +1071,7 @@ msgid "Loading…"
msgstr "Ielādē..." msgstr "Ielādē..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Savas emocijzīmes"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Ielādē atbildi" msgstr "Ielādē atbildi"
@@ -1960,7 +1960,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 jūs uzaicināja" msgstr "%1 jūs uzaicināja"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1969,18 +1969,18 @@ msgstr ""
"Datne ir pārāk liela lejupielādei.<br />Atbalstam sazinieties ar sava " "Datne ir pārāk liela lejupielādei.<br />Atbalstam sazinieties ar sava "
"„Matrix“ servera administratoru." "„Matrix“ servera administratoru."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Identitātes serveris nav konfigurēts" msgstr "Identitātes serveris nav konfigurēts"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Istabas izveide neizdevās: %1" msgstr "Istabas izveide neizdevās: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Telpas izveide neizdevās: %1" msgstr "Telpas izveide neizdevās: %1"
@@ -5858,86 +5858,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Atlasiet pievienojamu parametru" msgstr "Atlasiet pievienojamu parametru"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Slēpt" msgstr "Slēpt"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Kopīgot" msgstr "Kopīgot"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Noņemt" msgstr "Noņemt"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Pabeigt" msgstr "Pabeigt"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Atcelt" msgstr "Atcelt"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Valsts kods jaunam tālruņa numuram" msgstr "Valsts kods jaunam tālruņa numuram"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Jauna e-pasta adrese:" msgstr "Jauna e-pasta adrese:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Jauns tālruņa numurs:" msgstr "Jauns tālruņa numurs:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Mēs jums nosūtījām e-pasta vēstuli" msgstr "Mēs jums nosūtījām e-pasta vēstuli"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Mēs jums nosūtījām īsziņu" msgstr "Mēs jums nosūtījām īsziņu"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu zemāk" msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu zemāk"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Ievadītā e-pasta adrese nav derīga" msgstr "Ievadītā e-pasta adrese nav derīga"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Ievadītais tālruņa numurs nav derīgs" msgstr "Ievadītais tālruņa numurs nav derīgs"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Ievadīta nepareiza parole" msgstr "Ievadīta nepareiza parole"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5946,7 +5946,7 @@ msgstr ""
"E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā " "E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā "
"esošajiem norādījumiem un klikšķiniet uz pogas zemāk" "esošajiem norādījumiem un klikšķiniet uz pogas zemāk"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5955,25 +5955,25 @@ msgstr ""
"Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem " "Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem "
"norādījumiem un klikšķiniet uz pogas zemāk" "norādījumiem un klikšķiniet uz pogas zemāk"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Pievienot" msgstr "Pievienot"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Atpakaļ" msgstr "Atpakaļ"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu augstāk" msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu augstāk"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5982,7 +5982,7 @@ msgstr ""
"E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā " "E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā "
"esošajiem norādījumiem un klikšķiniet uz pogas augstāk" "esošajiem norādījumiem un klikšķiniet uz pogas augstāk"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5991,55 +5991,55 @@ msgstr ""
"Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem " "Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem "
"norādījumiem un klikšķiniet uz pogas augstāk" "norādījumiem un klikšķiniet uz pogas augstāk"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 uzsāka lietotāja verifikāciju" msgstr "%1 uzsāka lietotāja verifikāciju"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Apstiprināt izmaiņas" msgstr "Apstiprināt izmaiņas"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Publicēt ziņu pavedienā" msgstr "Publicēt ziņu pavedienā"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopēt starpliktuvē" msgstr "Kopēt starpliktuvē"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maksimizēt" msgstr "Maksimizēt"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "Šī ziņa ir šifrēta, bet sūtītājs nav kopīgojis atslēgu ar šo ierīci." msgstr "Šī ziņa ir šifrēta, bet sūtītājs nav kopīgojis atslēgu ar šo ierīci."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Izgūt vairāk notikumu" msgstr "Izgūt vairāk notikumu"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Lejupielādēt" msgstr "Lejupielādēt"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6047,13 +6047,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Atvērt datni" msgstr "Atvērt datni"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6082,47 +6082,47 @@ msgstr "Reģistrācijas laiks: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Izrakstīšanās laiks: %1" msgstr "Izrakstīšanās laiks: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Rādīt attēlu" msgstr "Rādīt attēlu"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Sūtīt uz KDE „Itinerary“" msgstr "Sūtīt uz KDE „Itinerary“"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Noņemt priekšskatījumu" msgstr "Noņemt priekšskatījumu"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Samazināt priekšskatījumu" msgstr "Samazināt priekšskatījumu"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Palielināt priekšskatījumu" msgstr "Palielināt priekšskatījumu"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Ielādē URL priekšskatījumu" msgstr "Ielādē URL priekšskatījumu"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Atvērt ārēji" msgstr "Atvērt ārēji"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6130,13 +6130,13 @@ msgstr[0] "Balstoties uz %1 lietotāja balsīm"
msgstr[1] "Balstoties uz %1 lietotāju balsīm" msgstr[1] "Balstoties uz %1 lietotāju balsīm"
msgstr[2] "Balstoties uz %1 lietotāju balsīm" msgstr[2] "Balstoties uz %1 lietotāju balsīm"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Beidzās)" msgstr "(Beidzās)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6148,7 +6148,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Pēdējo reizi lasīta: %1" msgstr "Pēdējo reizi lasīta: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6167,24 +6167,24 @@ msgstr "Šis ir tērzēšanas sākums. Agrāk par šo vietu vēsturē ziņu nav.
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Rādīt video" msgstr "Rādīt video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Skaļums" msgstr "Skaļums"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maksimizēt" msgstr "Maksimizēt"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 12:48+0100\n" "PO-Revision-Date: 2025-03-06 12:48+0100\n"
"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n" "Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
"Language-Team: \n" "Language-Team: \n"
@@ -1038,7 +1038,7 @@ msgstr "Registratie is uitgeschakeld op deze server."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Laden" msgstr "Laden"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Laden…" msgstr "Laden…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1702,7 +1702,7 @@ msgstr "Eigen emoji's"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Antwoord wordt geladen" msgstr "Antwoord wordt geladen"
@@ -1962,7 +1962,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 heeft u uitgenodigd" msgstr "%1 heeft u uitgenodigd"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1971,18 +1971,18 @@ msgstr ""
"Bestand is te groot om te downloaden.<br />Neem contact op met uw matrix-" "Bestand is te groot om te downloaden.<br />Neem contact op met uw matrix-"
"serverbeheerder voor ondersteuning." "serverbeheerder voor ondersteuning."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Geen identiteitsserver geconfigureerd" msgstr "Geen identiteitsserver geconfigureerd"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Aanmaken van room is mislukt: %1" msgstr "Aanmaken van room is mislukt: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Ruimte aanmaken is mislukt: %1" msgstr "Ruimte aanmaken is mislukt: %1"
@@ -5896,86 +5896,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Selecteer toe te voegen parameter" msgstr "Selecteer toe te voegen parameter"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Verbergen" msgstr "Verbergen"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Delen" msgstr "Delen"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Verwijderen" msgstr "Verwijderen"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Voltooid" msgstr "Voltooid"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Landcode voor nieuw telefoonnummer" msgstr "Landcode voor nieuw telefoonnummer"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nieuw e-mailadres:" msgstr "Nieuw e-mailadres:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nieuw telefoonnummer:" msgstr "Nieuw telefoonnummer:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "We hebben u een e-mail gestuurd" msgstr "We hebben u een e-mail gestuurd"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "We hebben u een tekstbericht gestuurd" msgstr "We hebben u een tekstbericht gestuurd"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Volg de instructies daar en klik daarna op de onderstaande knop" msgstr "%1. Volg de instructies daar en klik daarna op de onderstaande knop"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "De ingevoerde e-mail is niet geldig" msgstr "De ingevoerde e-mail is niet geldig"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Het ingevoerde telefoonnummer is niet geldig" msgstr "Het ingevoerde telefoonnummer is niet geldig"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Verkeerd wachtwoord ingevoerd" msgstr "Verkeerd wachtwoord ingevoerd"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5984,7 +5984,7 @@ msgstr ""
"De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies " "De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies "
"daar en klik daarna op de onderstaande knop" "daar en klik daarna op de onderstaande knop"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5993,25 +5993,25 @@ msgstr ""
"De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de " "De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de "
"instructies daar en klik daarna op de onderstaande knop" "instructies daar en klik daarna op de onderstaande knop"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Toevoegen" msgstr "Toevoegen"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Terug" msgstr "Terug"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Volg de instructies daar en klik daarna op de bovenstaande knop" msgstr "%1. Volg de instructies daar en klik daarna op de bovenstaande knop"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6020,7 +6020,7 @@ msgstr ""
"De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies " "De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies "
"daar en klik daarna op de bovenstaande knop" "daar en klik daarna op de bovenstaande knop"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6029,35 +6029,35 @@ msgstr ""
"De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de " "De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de "
"instructies daar en klik daarna op de bovenstaande knop" "instructies daar en klik daarna op de bovenstaande knop"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 is verificatie van een gebruiker gestart" msgstr "%1 is verificatie van een gebruiker gestart"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Bewerking bevestigen" msgstr "Bewerking bevestigen"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Bericht in discussie posten" msgstr "Bericht in discussie posten"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Naar klembord kopiëren" msgstr "Naar klembord kopiëren"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximaliseren" msgstr "Maximaliseren"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6066,20 +6066,20 @@ msgstr ""
"Dit bericht is versleuteld en de verzender heeft de sleutel niet gedeeld met " "Dit bericht is versleuteld en de verzender heeft de sleutel niet gedeeld met "
"dit apparaat." "dit apparaat."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Meer gebeurtenissen ophalen" msgstr "Meer gebeurtenissen ophalen"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Downloaden" msgstr "Downloaden"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6087,13 +6087,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Bestand openen" msgstr "Bestand openen"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6122,60 +6122,60 @@ msgstr "Inchecktijd: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Uitchecktijd: %1" msgstr "Uitchecktijd: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Afbeelding tonen" msgstr "Afbeelding tonen"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Naar KDE Itinerary zenden" msgstr "Naar KDE Itinerary zenden"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Voorbeeld verwijderen" msgstr "Voorbeeld verwijderen"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Voorbeeld invouwen" msgstr "Voorbeeld invouwen"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Voorbeeld uitvouwen" msgstr "Voorbeeld uitvouwen"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL voorbeeld laden" msgstr "URL voorbeeld laden"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Extern openen" msgstr "Extern openen"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Gebaseerd op stem van %1 gebruiker" msgstr[0] "Gebaseerd op stem van %1 gebruiker"
msgstr[1] "Gebaseerd op stemmen van %1 gebruikers" msgstr[1] "Gebaseerd op stemmen van %1 gebruikers"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Beëindigd)" msgstr "(Beëindigd)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6187,7 +6187,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Laatst gelezen: %1" msgstr "Laatst gelezen: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6207,24 +6207,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Video tonen" msgstr "Video tonen"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximaliseren" msgstr "Maximaliseren"

View File

@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-10-27 15:01+0100\n" "PO-Revision-Date: 2024-10-27 15:01+0100\n"
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n" "Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n" "Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
@@ -1038,7 +1038,7 @@ msgstr "Denne tenaren er stengd for nye registreringar."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Hentar inn" msgstr "Hentar inn"
@@ -1069,7 +1069,7 @@ msgid "Loading…"
msgstr "Lastar …" msgstr "Lastar …"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1700,7 +1700,7 @@ msgstr "Eigne emojiar"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Hentar inn svar" msgstr "Hentar inn svar"
@@ -1964,25 +1964,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 inviterte deg til eit rom" msgstr "%1 inviterte deg til eit rom"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "Ta kontakt med administratoren av Matrix-tenaren for brukarstøtte." msgstr "Ta kontakt med administratoren av Matrix-tenaren for brukarstøtte."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Ingen identitetstenar sett opp" msgstr "Ingen identitetstenar sett opp"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Feil ved romregistrering: %1" msgstr "Feil ved romregistrering: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Feil ved registrering av område: %1" msgstr "Feil ved registrering av område: %1"
@@ -5892,86 +5892,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Gøym" msgstr "Gøym"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Del" msgstr "Del"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Fjern" msgstr "Fjern"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Fullført" msgstr "Fullført"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Landskode for nytt telefonnummer" msgstr "Landskode for nytt telefonnummer"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Ny e-postadresse:" msgstr "Ny e-postadresse:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nytt telefonnummer:" msgstr "Nytt telefonnummer:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Me har sendt deg ein e-post" msgstr "Me har sendt deg ein e-post"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Me har sendt deg ei tekstmelding" msgstr "Me har sendt deg ei tekstmelding"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Følg instruksjonane der, og trykk så på knappen nedanfor." msgstr "%1. Følg instruksjonane der, og trykk så på knappen nedanfor."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "E-postadressa du skreiv inn, er ikkje gyldig" msgstr "E-postadressa du skreiv inn, er ikkje gyldig"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Telefonnummeret du skreiv inn, er ikkje gyldig" msgstr "Telefonnummeret du skreiv inn, er ikkje gyldig"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Du oppgav feil passord" msgstr "Du oppgav feil passord"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5980,7 +5980,7 @@ msgstr ""
"E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane " "E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane "
"der, og trykk så på knappen nedanfor." "der, og trykk så på knappen nedanfor."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5989,25 +5989,25 @@ msgstr ""
"Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg " "Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg "
"instruksjonane der, og trykk så på knappen nedanfor." "instruksjonane der, og trykk så på knappen nedanfor."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Legg til" msgstr "Legg til"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Følg instruksjonane der, og trykk så på knappen ovanfor." msgstr "%1. Følg instruksjonane der, og trykk så på knappen ovanfor."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6016,7 +6016,7 @@ msgstr ""
"E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane " "E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane "
"der, og trykk så på knappen ovanfor." "der, og trykk så på knappen ovanfor."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6025,35 +6025,35 @@ msgstr ""
"Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg " "Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg "
"instruksjonane der, og trykk så på knappen ovanfor." "instruksjonane der, og trykk så på knappen ovanfor."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 starta brukarstadfesting" msgstr "%1 starta brukarstadfesting"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Stadfest redigering" msgstr "Stadfest redigering"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Skriv innlegg i tråden" msgstr "Skriv innlegg i tråden"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopier til utklippstavla" msgstr "Kopier til utklippstavla"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maksimer" msgstr "Maksimer"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6062,20 +6062,20 @@ msgstr ""
"Meldinga er kryptert, og avsendaren har ikkje delt krypterings­nøkkelen med " "Meldinga er kryptert, og avsendaren har ikkje delt krypterings­nøkkelen med "
"denne eininga." "denne eininga."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Last ned" msgstr "Last ned"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6083,13 +6083,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Opna fil" msgstr "Opna fil"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6118,60 +6118,60 @@ msgstr "Innsjekk etter: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Utsjekk før: %1" msgstr "Utsjekk før: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Vis bilete" msgstr "Vis bilete"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Send til KDE Itinerary" msgstr "Send til KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Fjern førehandsvising" msgstr "Fjern førehandsvising"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Krymp førehandsvising" msgstr "Krymp førehandsvising"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Utvid førehandsvising" msgstr "Utvid førehandsvising"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Lastar førehandsvising av nettside" msgstr "Lastar førehandsvising av nettside"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Opna eksternt" msgstr "Opna eksternt"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Basert på avrøysting for %1 brukar" msgstr[0] "Basert på avrøysting for %1 brukar"
msgstr[1] "Basert på avstemming blant %1 brukarar" msgstr[1] "Basert på avstemming blant %1 brukarar"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(avslutta)" msgstr "(avslutta)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6184,7 +6184,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Sist lese: %1" msgstr "Sist lese: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6203,24 +6203,24 @@ msgstr "Dette er starten på praten. Det finst ingen eldre meldingar."
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Vis video" msgstr "Vis video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Lydstyrke" msgstr "Lydstyrke"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maksimer" msgstr "Maksimer"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2021-12-31 11:06-0800\n" "PO-Revision-Date: 2021-12-31 11:06-0800\n"
"Last-Translator: A S Alam <aalam@satluj.org>\n" "Last-Translator: A S Alam <aalam@satluj.org>\n"
"Language-Team: Punjabi <punjabi-users@lists.sf.net>\n" "Language-Team: Punjabi <punjabi-users@lists.sf.net>\n"
@@ -1129,7 +1129,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading" #| msgid "Loading"
msgid "Loading" msgid "Loading"
@@ -1163,7 +1163,7 @@ msgid "Loading…"
msgstr "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" msgstr "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1869,7 +1869,7 @@ msgstr "ਕਸਟਮ"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading" #| msgid "Loading"
msgid "Loading reply" msgid "Loading reply"
@@ -2173,26 +2173,26 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 ਨੇ ਤੁਹਾਨੂੰ ਰੂਮ ਲਈ ਸੱਦਾ ਦਿੱਤਾ" msgstr "%1 ਨੇ ਤੁਹਾਨੂੰ ਰੂਮ ਲਈ ਸੱਦਾ ਦਿੱਤਾ"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "ਰੂਮ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ: \"%1\"" msgstr "ਰੂਮ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ: \"%1\""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6380,46 +6380,46 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "ਹਟਾਓ" msgstr "ਹਟਾਓ"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "ਸੰਖੇਪ" msgstr "ਸੰਖੇਪ"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "ਰੱਦ ਕਰੋ" msgstr "ਰੱਦ ਕਰੋ"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "their refers to a singular user" #| msgctxt "their refers to a singular user"
#| msgid "cleared their display name" #| msgid "cleared their display name"
@@ -6427,68 +6427,68 @@ msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "ਆਪਣੇ ਵੇਖਾਉਣ ਵਾਲੇ ਨਾਂ ਮਿਟਾਏ" msgstr "ਆਪਣੇ ਵੇਖਾਉਣ ਵਾਲੇ ਨਾਂ ਮਿਟਾਏ"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "ਮੈਂਬਰ" msgstr "ਮੈਂਬਰ"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "ਸੁਨੇਹਾ ਭੇਜੋ" msgstr "ਸੁਨੇਹਾ ਭੇਜੋ"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "ਗਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ" msgstr "ਗਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "ਜੋੜੋ" msgstr "ਜੋੜੋ"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6496,80 +6496,80 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "ਪਿੱਛੇ" msgstr "ਪਿੱਛੇ"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew %1's invitation" #| msgid "withdrew %1's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 ਲਈ ਸੱਦਾ ਵਾਪਸ ਲਵੋ" msgstr "%1 ਲਈ ਸੱਦਾ ਵਾਪਸ ਲਵੋ"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm" #| msgid "Confirm"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "ਤਸਦੀਕ ਕਰੋ" msgstr "ਤਸਦੀਕ ਕਰੋ"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No rooms found" #| msgid "No rooms found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "ਕੋਈ ਰੂਮ ਨਹੀਂ ਲੱਭਿਆ" msgstr "ਕੋਈ ਰੂਮ ਨਹੀਂ ਲੱਭਿਆ"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:inmenu" #| msgctxt "@action:inmenu"
#| msgid "Copy address to clipboard" #| msgid "Copy address to clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "ਸਿਰਨਾਵਾਂ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰੋ" msgstr "ਸਿਰਨਾਵਾਂ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰੋ"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "ਡਾਊਨਲੋਡ" msgstr "ਡਾਊਨਲੋਡ"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6577,13 +6577,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "ਫਾਇਲ ਖੋਲ੍ਹੋ" msgstr "ਫਾਇਲ ਖੋਲ੍ਹੋ"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6612,63 +6612,63 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "cleared the room name" #| msgid "cleared the room name"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "ਰੂਮ ਦਾ ਨਾਂ ਮਿਟਾਇਆ" msgstr "ਰੂਮ ਦਾ ਨਾਂ ਮਿਟਾਇਆ"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "ਡਿਵਾਈਸ ਨੂੰ ਹਟਾਓ" msgstr "ਡਿਵਾਈਸ ਨੂੰ ਹਟਾਓ"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "ਬਾਹਰ ਖੋਲ੍ਹੋ" msgstr "ਬਾਹਰ ਖੋਲ੍ਹੋ"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6681,7 +6681,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "ਆਖਰੀ ਪੜ੍ਹੇ: %1" msgstr "ਆਖਰੀ ਪੜ੍ਹੇ: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6701,25 +6701,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "ਵੀਡੀਓ" msgstr "ਵੀਡੀਓ"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "ਵੀਡੀਓ" msgstr "ਵੀਡੀਓ"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-02-23 12:33+0100\n" "PO-Revision-Date: 2025-02-23 12:33+0100\n"
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n" "Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
"Language-Team: Polish <kde-i18n-doc@kde.org>\n" "Language-Team: Polish <kde-i18n-doc@kde.org>\n"
@@ -1040,7 +1040,7 @@ msgstr "Rejestrowanie się na ten serwer jest wyłączone."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Wczytywanie" msgstr "Wczytywanie"
@@ -1071,7 +1071,7 @@ msgid "Loading…"
msgstr "Wczytywanie…" msgstr "Wczytywanie…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Własne emoji"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Wczytywanie odpowiedzi" msgstr "Wczytywanie odpowiedzi"
@@ -1964,7 +1964,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 zaprosił cię" msgstr "%1 zaprosił cię"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1973,18 +1973,18 @@ msgstr ""
"Plik jest zbyt duży do pobrania.<br /> Napisz do obsługi twojego serwera " "Plik jest zbyt duży do pobrania.<br /> Napisz do obsługi twojego serwera "
"Matriksa z prośbą o pomoc." "Matriksa z prośbą o pomoc."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Nie ustawiono żadnego serwera tożsamości" msgstr "Nie ustawiono żadnego serwera tożsamości"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Nie udało się utworzyć pokoju: %1" msgstr "Nie udało się utworzyć pokoju: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Nie udało się utworzyć przestrzeni: %1" msgstr "Nie udało się utworzyć przestrzeni: %1"
@@ -5888,87 +5888,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Wybierz parametr do dodania" msgstr "Wybierz parametr do dodania"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Ukryj" msgstr "Ukryj"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Udostępnij" msgstr "Udostępnij"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Usuń" msgstr "Usuń"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Ukończone" msgstr "Ukończone"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Kod kraju dla nowego numeru telefonu" msgstr "Kod kraju dla nowego numeru telefonu"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Nowy adres pocztowy:" msgstr "Nowy adres pocztowy:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nowy numer telefonu:" msgstr "Nowy numer telefonu:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Wysłaliśmy ci wiadomość tekstową" msgstr "Wysłaliśmy ci wiadomość tekstową"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Wysłaliśmy ci wiadomość tekstową" msgstr "Wysłaliśmy ci wiadomość tekstową"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
"%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk." "%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Wpisany adres pocztowy jest nieprawidłowy" msgstr "Wpisany adres pocztowy jest nieprawidłowy"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Wpisany numer telefonu jest nieprawidłowy" msgstr "Wpisany numer telefonu jest nieprawidłowy"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Wpisano złe hasło" msgstr "Wpisano złe hasło"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5977,7 +5977,7 @@ msgstr ""
"Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i " "Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i "
"przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk." "przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5986,26 +5986,26 @@ msgstr ""
"Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i " "Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i "
"przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk." "przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Dodaj" msgstr "Dodaj"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Wstecz" msgstr "Wstecz"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
"%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk." "%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6014,7 +6014,7 @@ msgstr ""
"Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i " "Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i "
"przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk." "przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6023,35 +6023,35 @@ msgstr ""
"Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i " "Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i "
"przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk." "przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 rozpoczął sprawdzanie użytkownika" msgstr "%1 rozpoczął sprawdzanie użytkownika"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Potwierdź zmianę" msgstr "Potwierdź zmianę"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Wyślij wiadomość w wątku" msgstr "Wyślij wiadomość w wątku"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Skopiuj do schowka" msgstr "Skopiuj do schowka"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Zmaksymalizuj" msgstr "Zmaksymalizuj"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6060,20 +6060,20 @@ msgstr ""
"Ta wiadomość jest zaszyfrowana, a jej nadawca nie udostępnił klucza temu " "Ta wiadomość jest zaszyfrowana, a jej nadawca nie udostępnił klucza temu "
"urządzeniowi." "urządzeniowi."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Pobierz więcej wydarzeń" msgstr "Pobierz więcej wydarzeń"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Pobierz" msgstr "Pobierz"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6081,13 +6081,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Otwórz plik" msgstr "Otwórz plik"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6116,47 +6116,47 @@ msgstr "Czas zameldowania: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Czas wymeldowania: %1" msgstr "Czas wymeldowania: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Pokaż obrazek" msgstr "Pokaż obrazek"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Wyślij do KDE Itinerary" msgstr "Wyślij do KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Usuń podgląd" msgstr "Usuń podgląd"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Skurcz podgląd" msgstr "Skurcz podgląd"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Rozpręż podgląd" msgstr "Rozpręż podgląd"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Wczytywanie podglądu adresu URL" msgstr "Wczytywanie podglądu adresu URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Otwórz zewnętrznie" msgstr "Otwórz zewnętrznie"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6164,13 +6164,13 @@ msgstr[0] "Na podstawie głosu %1 użytkownika"
msgstr[1] "Na podstawie głosów %1 użytkowników" msgstr[1] "Na podstawie głosów %1 użytkowników"
msgstr[2] "Na podstawie głosów %1 użytkowników" msgstr[2] "Na podstawie głosów %1 użytkowników"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Zakończone)" msgstr "(Zakończone)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6182,7 +6182,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Ostatnio odczytywany: %1" msgstr "Ostatnio odczytywany: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6202,24 +6202,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Per. %1" msgstr "Per. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Wideo" msgstr "Wideo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Pokaż wideo" msgstr "Pokaż wideo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Głośność" msgstr "Głośność"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Zmaksymalizuj" msgstr "Zmaksymalizuj"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2023-06-24 10:17+0100\n" "PO-Revision-Date: 2023-06-24 10:17+0100\n"
"Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n" "Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
"Language-Team: Portuguese <kde-i18n-pt@kde.org>\n" "Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
@@ -1128,7 +1128,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1161,7 +1161,7 @@ msgid "Loading…"
msgstr "A carregar…" msgstr "A carregar…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1815,7 +1815,7 @@ msgstr "Próprios Emojis"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2148,7 +2148,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 convidou-o para uma sala" msgstr "%1 convidou-o para uma sala"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Contact your matrix server administrator for support." #| msgid "Contact your matrix server administrator for support."
msgid "" msgid ""
@@ -2157,18 +2157,18 @@ msgid ""
msgstr "" msgstr ""
"Contacte o administrador do seu servidor de Matrix para obter algum suporte." "Contacte o administrador do seu servidor de Matrix para obter algum suporte."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Não foi possível criar a sala: %1" msgstr "Não foi possível criar a sala: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Não foi possível criar o espaço: %1" msgstr "Não foi possível criar o espaço: %1"
@@ -6349,117 +6349,117 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Partilhar" msgstr "Partilhar"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove" #| msgid "Remove"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Compacto" msgstr "Compacto"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm new display name" #| msgid "Confirm new display name"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Confirmar o novo nome visível" msgstr "Confirmar o novo nome visível"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Membros" msgstr "Membros"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "sent a message" #| msgid "sent a message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "enviou uma mensagem" msgstr "enviou uma mensagem"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "O texto introduzido não é um URL válido" msgstr "O texto introduzido não é um URL válido"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "The entered text is not a valid url" #| msgid "The entered text is not a valid url"
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "O texto introduzido não é um URL válido" msgstr "O texto introduzido não é um URL válido"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Foi introduzida uma senha errada" msgstr "Foi introduzida uma senha errada"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Adicionar" msgstr "Adicionar"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6467,59 +6467,59 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew a user's invitation" #| msgid "withdrew a user's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "retirou o convite de um utilizador" msgstr "retirou o convite de um utilizador"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmar a edição" msgstr "Confirmar a edição"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No results found" #| msgid "No results found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Não foram encontrados resultados" msgstr "Não foram encontrados resultados"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Copy room ID to clipboard" #| msgid "Copy room ID to clipboard"
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar o ID da sala para a área de transferência" msgstr "Copiar o ID da sala para a área de transferência"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Maximize" #| msgid "Maximize"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6528,20 +6528,20 @@ msgstr ""
"Esta mensagem está encriptada e o remetente não partilhou a chave com este " "Esta mensagem está encriptada e o remetente não partilhou a chave com este "
"dispositivo." "dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Transferir" msgstr "Transferir"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6549,13 +6549,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Abrir o Ficheiro" msgstr "Abrir o Ficheiro"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6584,63 +6584,63 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Set Image" #| msgid "Set Image"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Definir uma Imagem" msgstr "Definir uma Imagem"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Remover o dispositivo" msgstr "Remover o dispositivo"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Fechar a antevisão" msgstr "Fechar a antevisão"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandir a antevisão" msgstr "Expandir a antevisão"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "A carregar a antevisão do URL" msgstr "A carregar a antevisão do URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Abrir Externamente" msgstr "Abrir Externamente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Com base nos votos de %1 utilizador" msgstr[0] "Com base nos votos de %1 utilizador"
msgstr[1] "Com base nos votos de %1 utilizadores" msgstr[1] "Com base nos votos de %1 utilizadores"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Terminada)" msgstr "(Terminada)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6653,7 +6653,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última leitura: %1" msgstr "Última leitura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6673,25 +6673,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-08-03 00:01-0300\n" "PO-Revision-Date: 2024-08-03 00:01-0300\n"
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n" "Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n" "Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
@@ -1139,7 +1139,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1172,7 +1172,7 @@ msgid "Loading…"
msgstr "Carregando..." msgstr "Carregando..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1883,7 +1883,7 @@ msgstr "Emoji personalizado"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2197,26 +2197,26 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 convidou você para uma sala" msgstr "%1 convidou você para uma sala"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Criação de sala falhou: \"%1\"" msgstr "Criação de sala falhou: \"%1\""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6420,43 +6420,43 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Compartilhar" msgstr "Compartilhar"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Completo" msgstr "Completo"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "their refers to a singular user" #| msgctxt "their refers to a singular user"
#| msgid "cleared their display name" #| msgid "cleared their display name"
@@ -6464,121 +6464,121 @@ msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "limpou seu nome de exibição" msgstr "limpou seu nome de exibição"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Membros" msgstr "Membros"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send a message…" #| msgid "Send a message…"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Enviar uma mensagem…" msgstr "Enviar uma mensagem…"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Senha digitada errada" msgstr "Senha digitada errada"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Adicionar" msgstr "Adicionar"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 iniciou a verificação de usuário" msgstr "%1 iniciou a verificação de usuário"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Confirmar edição" msgstr "Confirmar edição"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No rooms found" #| msgid "No rooms found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Nenhuma sala encontrada" msgstr "Nenhuma sala encontrada"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar para a área de transferência" msgstr "Copiar para a área de transferência"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6587,20 +6587,20 @@ msgstr ""
"Esta mensagem está criptografada e o remetente não compartilhou a chave com " "Esta mensagem está criptografada e o remetente não compartilhou a chave com "
"este dispositivo." "este dispositivo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Baixar" msgstr "Baixar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6608,13 +6608,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Abrir arquivo" msgstr "Abrir arquivo"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6643,62 +6643,62 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "cleared the room name" #| msgid "cleared the room name"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "limpou o nome da sala" msgstr "limpou o nome da sala"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Remover visualização" msgstr "Remover visualização"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Open Externally" #| msgid "Open Externally"
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Abrir externamente" msgstr "Abrir externamente"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6711,7 +6711,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Última leitura: %1" msgstr "Última leitura: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6731,25 +6731,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Vídeo" msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-10-31 10:08+0300\n" "PO-Revision-Date: 2024-10-31 10:08+0300\n"
"Last-Translator: Olesya Gerasimenko <translation-team@basealt.ru>\n" "Last-Translator: Olesya Gerasimenko <translation-team@basealt.ru>\n"
"Language-Team: Basealt Translation Team\n" "Language-Team: Basealt Translation Team\n"
@@ -1060,7 +1060,7 @@ msgstr "Регистрация пользователей отключена н
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Загрузка" msgstr "Загрузка"
@@ -1092,7 +1092,7 @@ msgid "Loading…"
msgstr "Загрузка..." msgstr "Загрузка..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1727,7 +1727,7 @@ msgstr "Свои эмодзи"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Загрузка ответа" msgstr "Загрузка ответа"
@@ -1994,25 +1994,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 пригласил вас в комнату" msgstr "%1 пригласил вас в комнату"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "Обратитесь за помощью к администратору сервера Matrix." msgstr "Обратитесь за помощью к администратору сервера Matrix."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Не настроен сервер профилей" msgstr "Не настроен сервер профилей"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Не удалось создать комнату: %1" msgstr "Не удалось создать комнату: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Не удалось создать пространство: %1" msgstr "Не удалось создать пространство: %1"
@@ -6012,65 +6012,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Скрыть" msgstr "Скрыть"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Опубликовать" msgstr "Опубликовать"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Удалить" msgstr "Удалить"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Завершить" msgstr "Завершить"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Отменить" msgstr "Отменить"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Код страны для нового телефонного номера" msgstr "Код страны для нового телефонного номера"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Новый адрес электронной почты" msgstr "Новый адрес электронной почты"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Новый телефонный номер" msgstr "Новый телефонный номер"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Вам отправлено письмо" msgstr "Вам отправлено письмо"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Вам отправлено текстовое сообщение" msgstr "Вам отправлено текстовое сообщение"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
@@ -6078,22 +6078,22 @@ msgstr ""
"%1. Выполните приведённые инструкции и затем нажмите расположенную ниже " "%1. Выполните приведённые инструкции и затем нажмите расположенную ниже "
"кнопку" "кнопку"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Введённый адрес электронной почты не является допустимым" msgstr "Введённый адрес электронной почты не является допустимым"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Введённый телефонный номер не является допустимым" msgstr "Введённый телефонный номер не является допустимым"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Введён неверный пароль" msgstr "Введён неверный пароль"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6102,7 +6102,7 @@ msgstr ""
"Письмо не было проверено. Перейдите к письму, выполните приведённые " "Письмо не было проверено. Перейдите к письму, выполните приведённые "
"инструкции и затем нажмите расположенную ниже кнопку" "инструкции и затем нажмите расположенную ниже кнопку"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6111,19 +6111,19 @@ msgstr ""
"Телефонный номер не был проверен. Перейдите к текстовому сообщению, " "Телефонный номер не был проверен. Перейдите к текстовому сообщению, "
"выполните приведённые инструкции и затем нажмите расположенную ниже кнопку" "выполните приведённые инструкции и затем нажмите расположенную ниже кнопку"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Назад" msgstr "Назад"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
@@ -6131,7 +6131,7 @@ msgstr ""
"%1. Выполните приведённые инструкции и затем нажмите расположенную выше " "%1. Выполните приведённые инструкции и затем нажмите расположенную выше "
"кнопку" "кнопку"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6140,7 +6140,7 @@ msgstr ""
"Письмо не было проверено. Перейдите к письму, выполните приведённые " "Письмо не было проверено. Перейдите к письму, выполните приведённые "
"инструкции и затем нажмите расположенную выше кнопку" "инструкции и затем нажмите расположенную выше кнопку"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6149,35 +6149,35 @@ msgstr ""
"Телефонный номер не был проверен. Перейдите к текстовому сообщению, " "Телефонный номер не был проверен. Перейдите к текстовому сообщению, "
"выполните приведённые инструкции и затем нажмите расположенную выше кнопку" "выполните приведённые инструкции и затем нажмите расположенную выше кнопку"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 начал(а) проверку пользователя" msgstr "%1 начал(а) проверку пользователя"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Подтвердить изменение" msgstr "Подтвердить изменение"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Не найдено ни одного сообщения" msgstr "Не найдено ни одного сообщения"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Скопировать в буфер обмена" msgstr "Скопировать в буфер обмена"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Развернуть" msgstr "Развернуть"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6186,20 +6186,20 @@ msgstr ""
"Это сообщение зашифровано, и отправитель не поделился ключом с этим " "Это сообщение зашифровано, и отправитель не поделился ключом с этим "
"устройством." "устройством."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Загрузить" msgstr "Загрузить"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6207,13 +6207,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Открыть файл" msgstr "Открыть файл"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6242,47 +6242,47 @@ msgstr "Время регистрации: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Время регистрации отъезда: %1" msgstr "Время регистрации отъезда: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Установить изображение" msgstr "Установить изображение"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Передать в KDE Itinerary" msgstr "Передать в KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Удалить область предварительного просмотра" msgstr "Удалить область предварительного просмотра"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Уменьшить область предварительного просмотра" msgstr "Уменьшить область предварительного просмотра"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Увеличить область предварительного просмотра" msgstr "Увеличить область предварительного просмотра"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Загрузка предпросмотра содержимого по ссылке" msgstr "Загрузка предпросмотра содержимого по ссылке"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Открывать во внешней программе" msgstr "Открывать во внешней программе"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6291,13 +6291,13 @@ msgstr[1] "Основано на голосах %1 пользователей"
msgstr[2] "Основано на голосах %1 пользователей" msgstr[2] "Основано на голосах %1 пользователей"
msgstr[3] "Основано на голосе %1 пользователя" msgstr[3] "Основано на голосе %1 пользователя"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Завершено)" msgstr "(Завершено)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6310,7 +6310,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Последнее сообщение прочитано: %1" msgstr "Последнее сообщение прочитано: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6330,24 +6330,24 @@ msgstr "Это начало чата. Более ранних сообщений
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Пл. %1" msgstr "Пл. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Видео" msgstr "Видео"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Видео" msgstr "Видео"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Громкость" msgstr "Громкость"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Развернуть" msgstr "Развернуть"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-12-29 23:07+0530\n" "PO-Revision-Date: 2024-12-29 23:07+0530\n"
"Last-Translator: kali <shreekantkalwar@gmail.com>\n" "Last-Translator: kali <shreekantkalwar@gmail.com>\n"
"Language-Team: Sanskrit <kde-i18n-doc@kde.org>\n" "Language-Team: Sanskrit <kde-i18n-doc@kde.org>\n"
@@ -1036,7 +1036,7 @@ msgstr "अस्मिन् सर्वरे पञ्जीकरणं न
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "लोडिंग" msgstr "लोडिंग"
@@ -1068,7 +1068,7 @@ msgid "Loading…"
msgstr "लोडिंग..." msgstr "लोडिंग..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1698,7 +1698,7 @@ msgstr "स्वकीय इमोजी"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "उत्तरं लोडयति" msgstr "उत्तरं लोडयति"
@@ -1953,7 +1953,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 भवन्तं कक्षे आमन्त्रितवान्" msgstr "%1 भवन्तं कक्षे आमन्त्रितवान्"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1962,18 +1962,18 @@ msgstr ""
"सञ्चिका अतीव विशाला डाउनलोड् कर्तुं।<br /> समर्थनार्थं स्वस्य matrix server प्रशासकेन सह " "सञ्चिका अतीव विशाला डाउनलोड् कर्तुं।<br /> समर्थनार्थं स्वस्य matrix server प्रशासकेन सह "
"सम्पर्कं कुर्वन्तु ।" "सम्पर्कं कुर्वन्तु ।"
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "कोऽपि परिचयसर्वरः विन्यस्तः नास्ति" msgstr "कोऽपि परिचयसर्वरः विन्यस्तः नास्ति"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "कक्षनिर्माणं विफलम्: %1" msgstr "कक्षनिर्माणं विफलम्: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "अन्तरिक्षनिर्माणं विफलम्: %1" msgstr "अन्तरिक्षनिर्माणं विफलम्: %1"
@@ -5849,86 +5849,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "जोड्यताम् परिमाणः" msgstr "जोड्यताम् परिमाणः"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "गोपयतु" msgstr "गोपयतु"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "संविभागः" msgstr "संविभागः"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "अपाकरोति" msgstr "अपाकरोति"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "पूर्णं करोतु" msgstr "पूर्णं करोतु"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "निरसयतु" msgstr "निरसयतु"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "नूतनस्य दूरभाषसङ्ख्यायाः कृते देशसङ्केतः" msgstr "नूतनस्य दूरभाषसङ्ख्यायाः कृते देशसङ्केतः"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "नवीनं ईमेल-सङ्केतं :" msgstr "नवीनं ईमेल-सङ्केतं :"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "नवीनं दूरभाषसङ्ख्या :" msgstr "नवीनं दूरभाषसङ्ख्या :"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "वयं भवद्भ्यः ईमेल प्रेषितवन्तः" msgstr "वयं भवद्भ्यः ईमेल प्रेषितवन्तः"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "वयं भवद्भ्यः पाठसन्देशं प्रेषितवन्तः" msgstr "वयं भवद्भ्यः पाठसन्देशं प्रेषितवन्तः"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु" msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "प्रविष्टं ईमेल वैधं नास्ति" msgstr "प्रविष्टं ईमेल वैधं नास्ति"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "प्रविष्टः दूरभाषसङ्ख्या वैधः नास्ति" msgstr "प्रविष्टः दूरभाषसङ्ख्या वैधः नास्ति"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "अशुद्धगुप्तशब्दः प्रविष्टः" msgstr "अशुद्धगुप्तशब्दः प्रविष्टः"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5936,7 +5936,7 @@ msgid ""
msgstr "" msgstr ""
"ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु" "ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5945,25 +5945,25 @@ msgstr ""
"दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशे गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं " "दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशे गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं "
"बटनं नुदन्तु" "बटनं नुदन्तु"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "संयोजयति" msgstr "संयोजयति"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "पृष्ठभागः" msgstr "पृष्ठभागः"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु" msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5971,7 +5971,7 @@ msgid ""
msgstr "" msgstr ""
"ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु" "ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5980,55 +5980,55 @@ msgstr ""
"दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशं गत्वा तत्रत्याः निर्देशान् अनुसृत्य ततः उपरि " "दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशं गत्वा तत्रत्याः निर्देशान् अनुसृत्य ततः उपरि "
"स्थापितं बटनं नुदन्तु" "स्थापितं बटनं नुदन्तु"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 इत्यनेन उपयोक्तृसत्यापनम् आरब्धम्" msgstr "%1 इत्यनेन उपयोक्तृसत्यापनम् आरब्धम्"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "सम्पादनस्य पुष्टिं कुर्वन्तु" msgstr "सम्पादनस्य पुष्टिं कुर्वन्तु"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "सूत्रे सन्देशं स्थापयन्तु" msgstr "सूत्रे सन्देशं स्थापयन्तु"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "क्लिप्बोर्ड् प्रति प्रतिलिख्यताम्" msgstr "क्लिप्बोर्ड् प्रति प्रतिलिख्यताम्"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "अधिकतमं कुरुत" msgstr "अधिकतमं कुरुत"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "एषः सन्देशः गुप्तः अस्ति तथा च प्रेषकेन अस्मिन् यन्त्रेण सह कुञ्जी न साझा कृता ।" msgstr "एषः सन्देशः गुप्तः अस्ति तथा च प्रेषकेन अस्मिन् यन्त्रेण सह कुञ्जी न साझा कृता ।"
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "अवाहरन" msgstr "अवाहरन"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6036,13 +6036,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "सञ्चिकां उद्घाटयन्तु" msgstr "सञ्चिकां उद्घाटयन्तु"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6071,60 +6071,60 @@ msgstr "चेक-इन समयः %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "चेक-आउट् समयः %1" msgstr "चेक-आउट् समयः %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "चित्रं दर्शयतु" msgstr "चित्रं दर्शयतु"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "KDE यात्रासूचीं प्रेषयन्तु" msgstr "KDE यात्रासूचीं प्रेषयन्तु"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "पूर्वावलोकनं निष्कासयन्तु" msgstr "पूर्वावलोकनं निष्कासयन्तु"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "पूर्वावलोकनं संकोचयतु" msgstr "पूर्वावलोकनं संकोचयतु"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "पूर्वावलोकनं विस्तारयतु" msgstr "पूर्वावलोकनं विस्तारयतु"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL पूर्वावलोकनं लोड् भवति" msgstr "URL पूर्वावलोकनं लोड् भवति"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "बाह्यरूपेण उद्घाटयतु" msgstr "बाह्यरूपेण उद्घाटयतु"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "%1 उपयोक्तुः मतानाम् आधारेण" msgstr[0] "%1 उपयोक्तुः मतानाम् आधारेण"
msgstr[1] "%1 उपयोक्तृणां मतानाम् आधारेण" msgstr[1] "%1 उपयोक्तृणां मतानाम् आधारेण"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(समाप्तः)" msgstr "(समाप्तः)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6137,7 +6137,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "अन्तिमपठनं: %1" msgstr "अन्तिमपठनं: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6156,24 +6156,24 @@ msgstr "इति चटस्य आरम्भः । अस्मात्
msgid "Pl. %1" msgid "Pl. %1"
msgstr "प्ल. %1" msgstr "प्ल. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "विडिओ" msgstr "विडिओ"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "विडियो दर्शयतु" msgstr "विडियो दर्शयतु"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "मात्रा" msgstr "मात्रा"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "अधिकतमं कुरुत" msgstr "अधिकतमं कुरुत"

View File

@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-11-10 11:41+0100\n" "PO-Revision-Date: 2024-11-10 11:41+0100\n"
"Last-Translator: Roman Paholík <wizzardsk@gmail.com>\n" "Last-Translator: Roman Paholík <wizzardsk@gmail.com>\n"
"Language-Team: KDE-SK\n" "Language-Team: KDE-SK\n"
@@ -1129,7 +1129,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1161,7 +1161,7 @@ msgid "Loading…"
msgstr "Načítava sa…" msgstr "Načítava sa…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1874,7 +1874,7 @@ msgstr "Vlastné"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2183,26 +2183,26 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "pozval %1 do miestnosti" msgstr "pozval %1 do miestnosti"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Vytvorenie miestnosti zlyhalo: \"%1\"" msgstr "Vytvorenie miestnosti zlyhalo: \"%1\""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Room creation failed: \"%1\"" #| msgid "Room creation failed: \"%1\""
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
@@ -6345,45 +6345,45 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Skryť" msgstr "Skryť"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Share" #| msgid "Share"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Zdieľať" msgstr "Zdieľať"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Odstrániť" msgstr "Odstrániť"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Compact" #| msgid "Compact"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Dokončené" msgstr "Dokončené"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Zrušiť" msgstr "Zrušiť"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "their refers to a singular user" #| msgctxt "their refers to a singular user"
#| msgid "cleared their display name" #| msgid "cleared their display name"
@@ -6391,67 +6391,67 @@ msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "vymazali svoje zobrazované meno" msgstr "vymazali svoje zobrazované meno"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Members" #| msgid "Members"
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Členovia" msgstr "Členovia"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Odoslať správu" msgstr "Odoslať správu"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Wrong password entered" #| msgid "Wrong password entered"
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Zadané nesprávne heslo" msgstr "Zadané nesprávne heslo"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Pridať" msgstr "Pridať"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgctxt "@action:button" #| msgctxt "@action:button"
#| msgid "Back" #| msgid "Back"
@@ -6459,78 +6459,78 @@ msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Späť" msgstr "Späť"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "withdrew %1's invitation" #| msgid "withdrew %1's invitation"
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "stiahol pozvanie %1" msgstr "stiahol pozvanie %1"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Confirm" #| msgid "Confirm"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Potvrdiť" msgstr "Potvrdiť"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "No rooms found" #| msgid "No rooms found"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Žiadne miestnosti neboli nájdené" msgstr "Žiadne miestnosti neboli nájdené"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, fuzzy, kde-format #, fuzzy, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopírovať do schránky" msgstr "Kopírovať do schránky"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizovať" msgstr "Maximalizovať"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "" msgstr ""
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Stiahnuť" msgstr "Stiahnuť"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6538,13 +6538,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Otvoriť súbor" msgstr "Otvoriť súbor"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6573,48 +6573,48 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Zobraziť obrázok" msgstr "Zobraziť obrázok"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Remove device" #| msgid "Remove device"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Odstrániť zariadenie" msgstr "Odstrániť zariadenie"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Otvoriť externe" msgstr "Otvoriť externe"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6622,13 +6622,13 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] "" msgstr[2] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "ukončené" msgstr "ukončené"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "React" #| msgid "React"
msgctxt "@button" msgctxt "@button"
@@ -6641,7 +6641,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Naposledy prečítané: %1" msgstr "Naposledy prečítané: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Reply" #| msgid "Reply"
msgctxt "@action:button" msgctxt "@action:button"
@@ -6661,24 +6661,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl" msgstr "Pl"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Zobraziť video" msgstr "Zobraziť video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, fuzzy, kde-format #, fuzzy, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Hlasitosť" msgstr "Hlasitosť"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizovať" msgstr "Maximalizovať"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 07:39+0100\n" "PO-Revision-Date: 2025-03-06 07:39+0100\n"
"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n" "Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
"Language-Team: Slovenian <lugos-slo@lugos.si>\n" "Language-Team: Slovenian <lugos-slo@lugos.si>\n"
@@ -1043,7 +1043,7 @@ msgstr "Registracija je onemogočena na tem strežniku."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Nalaganje" msgstr "Nalaganje"
@@ -1075,7 +1075,7 @@ msgid "Loading…"
msgstr "Nalaganje …" msgstr "Nalaganje …"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1705,7 +1705,7 @@ msgstr "Lastni čustvenčki"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Nalaganje odgovora" msgstr "Nalaganje odgovora"
@@ -1966,7 +1966,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 vas je povabil" msgstr "%1 vas je povabil"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1975,18 +1975,18 @@ msgstr ""
"Datoteka je prevelika za prenos.<br />Za podporo se obrnite na skrbnika " "Datoteka je prevelika za prenos.<br />Za podporo se obrnite na skrbnika "
"strežnika matrix." "strežnika matrix."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Ni konfigurirana identiteta strežnika" msgstr "Ni konfigurirana identiteta strežnika"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Ustvarjanje sobe ni uspelo: %1" msgstr "Ustvarjanje sobe ni uspelo: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Ustvarjanje prostora ni uspelo: %1" msgstr "Ustvarjanje prostora ni uspelo: %1"
@@ -5884,86 +5884,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Izberite parameter za dodajanje" msgstr "Izberite parameter za dodajanje"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Skrij" msgstr "Skrij"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Deli" msgstr "Deli"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Odstrani" msgstr "Odstrani"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Dokončano" msgstr "Dokončano"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Prekliči" msgstr "Prekliči"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Koda države za novo telefonsko številko" msgstr "Koda države za novo telefonsko številko"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Novi naslov e-pošte:" msgstr "Novi naslov e-pošte:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nova telefonska številka:" msgstr "Nova telefonska številka:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Poslali smo vam elektronsko sporočilo" msgstr "Poslali smo vam elektronsko sporočilo"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Poslali smo vam besedilno sporočilo" msgstr "Poslali smo vam besedilno sporočilo"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Sledite navodilom in nato kliknite na gumb spodaj" msgstr "%1. Sledite navodilom in nato kliknite na gumb spodaj"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Vneseni naslov e-pošte ni veljaven" msgstr "Vneseni naslov e-pošte ni veljaven"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Vnesena telefonska številka ni veljavna" msgstr "Vnesena telefonska številka ni veljavna"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Vneseno napačno geslo" msgstr "Vneseno napačno geslo"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5972,7 +5972,7 @@ msgstr ""
"E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim " "E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim "
"navodilom ter nato kliknite spodnji gumb" "navodilom ter nato kliknite spodnji gumb"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5981,25 +5981,25 @@ msgstr ""
"Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in " "Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in "
"sledite tamkajšnjim navodilom ter nato kliknite na gumb spodaj" "sledite tamkajšnjim navodilom ter nato kliknite na gumb spodaj"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Dodaj" msgstr "Dodaj"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Nazaj" msgstr "Nazaj"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Sledite navodilom in nato kliknite na gumb zgoraj" msgstr "%1. Sledite navodilom in nato kliknite na gumb zgoraj"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6008,7 +6008,7 @@ msgstr ""
"E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim " "E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim "
"navodilom ter nato kliknite gumb zgoraj" "navodilom ter nato kliknite gumb zgoraj"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6017,35 +6017,35 @@ msgstr ""
"Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in " "Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in "
"sledite tamkajšnjim navodilom ter nato kliknite na gumb zgoraj" "sledite tamkajšnjim navodilom ter nato kliknite na gumb zgoraj"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 je začel preverjanje uporabnika" msgstr "%1 je začel preverjanje uporabnika"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Potrdi urejanje" msgstr "Potrdi urejanje"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Objavi sporočilo v niti" msgstr "Objavi sporočilo v niti"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopiraj na odložišče" msgstr "Kopiraj na odložišče"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Razpni" msgstr "Razpni"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6053,20 +6053,20 @@ msgid ""
msgstr "" msgstr ""
"To sporočilo je šifrirano in pošiljatelj še ni delil ključa s to napravo." "To sporočilo je šifrirano in pošiljatelj še ni delil ključa s to napravo."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Pridobi več dogodkov" msgstr "Pridobi več dogodkov"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Prenos" msgstr "Prenos"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6074,13 +6074,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Odpri datoteko" msgstr "Odpri datoteko"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6109,47 +6109,47 @@ msgstr "Čas prijave: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Check-out time: %1" msgstr "Check-out time: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Prikaži sliko" msgstr "Prikaži sliko"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Pošlji v KDE Itinerary" msgstr "Pošlji v KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Odstrani predogled" msgstr "Odstrani predogled"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Skrči predogled" msgstr "Skrči predogled"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Razširi predogled" msgstr "Razširi predogled"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Nalaganje predogleda URL" msgstr "Nalaganje predogleda URL"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Odpri od zunaj" msgstr "Odpri od zunaj"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6158,13 +6158,13 @@ msgstr[1] "Glede na glas %1 uporabnika"
msgstr[2] "Glede na glasova %1 uporabnikov" msgstr[2] "Glede na glasova %1 uporabnikov"
msgstr[3] "Glede na glasove %1 uporabnikov" msgstr[3] "Glede na glasove %1 uporabnikov"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Končano)" msgstr "(Končano)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Nazadnje prebrano: %1" msgstr "Nazadnje prebrano: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6196,24 +6196,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Prikaži video" msgstr "Prikaži video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Glasnost" msgstr "Glasnost"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Razpni" msgstr "Razpni"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-02-28 19:43+0100\n" "PO-Revision-Date: 2025-02-28 19:43+0100\n"
"Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n" "Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n"
"Language-Team: Swedish <kde-i18n-doc@kde.org>\n" "Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
@@ -1036,7 +1036,7 @@ msgstr "Registrering är inaktiverad på servern."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Läser in" msgstr "Läser in"
@@ -1068,7 +1068,7 @@ msgid "Loading…"
msgstr "Läser in…" msgstr "Läser in…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1700,7 +1700,7 @@ msgstr "Egna emoji"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Läser in svar" msgstr "Läser in svar"
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 bjöd in dig" msgstr "%1 bjöd in dig"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1966,18 +1966,18 @@ msgstr ""
"Filen är för stor för att ladda ner.<br />Kontakta matrix-" "Filen är för stor för att ladda ner.<br />Kontakta matrix-"
"serveradministratören för support." "serveradministratören för support."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Ingen identitetsserver inställd" msgstr "Ingen identitetsserver inställd"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Misslyckades skapa rum: \"%1" msgstr "Misslyckades skapa rum: \"%1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Misslyckades skapa utrymme: %1" msgstr "Misslyckades skapa utrymme: %1"
@@ -5872,86 +5872,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Välj parameter att lägga till" msgstr "Välj parameter att lägga till"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Dölj" msgstr "Dölj"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Dela" msgstr "Dela"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Ta bort" msgstr "Ta bort"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Komplettera" msgstr "Komplettera"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Landskod för nytt telefonnummer" msgstr "Landskod för nytt telefonnummer"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Ny e-postadress" msgstr "Ny e-postadress"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Nytt telefonnummer" msgstr "Nytt telefonnummer"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Vi skickade e-post till dig" msgstr "Vi skickade e-post till dig"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Vi skickade ett textmeddelande till dig" msgstr "Vi skickade ett textmeddelande till dig"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Följ instruktionerna där och klicka sedan på knappen nedan." msgstr "%1. Följ instruktionerna där och klicka sedan på knappen nedan."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Den angivna e-postadressen är inte giltig" msgstr "Den angivna e-postadressen är inte giltig"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Det angivna telefonnumret är inte giltigt" msgstr "Det angivna telefonnumret är inte giltigt"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Felaktigt lösenord inmatat" msgstr "Felaktigt lösenord inmatat"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5960,7 +5960,7 @@ msgstr ""
"E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ " "E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ "
"instruktionerna där och klicka sedan på knappen nedan." "instruktionerna där och klicka sedan på knappen nedan."
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5969,25 +5969,25 @@ msgstr ""
"Telefonnumret har inte verifierats. Gå till textmeddelandet och följ " "Telefonnumret har inte verifierats. Gå till textmeddelandet och följ "
"instruktionerna där och klicka sedan på knappen nedan." "instruktionerna där och klicka sedan på knappen nedan."
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Lägg till" msgstr "Lägg till"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Tillbaka" msgstr "Tillbaka"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Följ instruktionerna där och klicka sedan på knappen ovan." msgstr "%1. Följ instruktionerna där och klicka sedan på knappen ovan."
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5996,7 +5996,7 @@ msgstr ""
"E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ " "E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ "
"instruktionerna där och klicka sedan på knappen ovan." "instruktionerna där och klicka sedan på knappen ovan."
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6005,35 +6005,35 @@ msgstr ""
"Telefonnumret har inte verifierats. Gå till textmeddelandet och följ " "Telefonnumret har inte verifierats. Gå till textmeddelandet och följ "
"instruktionerna där och klicka sedan på knappen ovan." "instruktionerna där och klicka sedan på knappen ovan."
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 startade en användarverifikation" msgstr "%1 startade en användarverifikation"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Bekräfta redigering" msgstr "Bekräfta redigering"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Skicka meddelande i tråd" msgstr "Skicka meddelande i tråd"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Kopiera till klippbordet" msgstr "Kopiera till klippbordet"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Maximera" msgstr "Maximera"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6042,20 +6042,20 @@ msgstr ""
"Meddelandet är krypterat och avsändaren har inte delat nyckeln med den här " "Meddelandet är krypterat och avsändaren har inte delat nyckeln med den här "
"enheten." "enheten."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Hämta fler händelser" msgstr "Hämta fler händelser"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Ladda ner" msgstr "Ladda ner"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6063,13 +6063,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Öppna fil" msgstr "Öppna fil"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6098,60 +6098,60 @@ msgstr "Incheckningstid: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Utcheckningstid: %1" msgstr "Utcheckningstid: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Visa bild" msgstr "Visa bild"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Skicka till KDE-resplan" msgstr "Skicka till KDE-resplan"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Ta bort förhandsgranskning" msgstr "Ta bort förhandsgranskning"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Krymp förhandsgranskning" msgstr "Krymp förhandsgranskning"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Expandera förhandsgranskning" msgstr "Expandera förhandsgranskning"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Läser in webbadressförhandsgranskning" msgstr "Läser in webbadressförhandsgranskning"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Öppna externt" msgstr "Öppna externt"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "Baserat på röster av %1 användare" msgstr[0] "Baserat på röster av %1 användare"
msgstr[1] "Baserat på röster av %1 användare" msgstr[1] "Baserat på röster av %1 användare"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Avslutad)" msgstr "(Avslutad)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6163,7 +6163,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Senast läst: %1" msgstr "Senast läst: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6184,24 +6184,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Visa video" msgstr "Visa video"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Volym" msgstr "Volym"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Maximera" msgstr "Maximera"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-02-16 16:26+0530\n" "PO-Revision-Date: 2025-02-16 16:26+0530\n"
"Last-Translator: Kishore G <kishore96@gmail.com>\n" "Last-Translator: Kishore G <kishore96@gmail.com>\n"
"Language-Team: Tamil <kde-i18n-doc@kde.org>\n" "Language-Team: Tamil <kde-i18n-doc@kde.org>\n"
@@ -1034,7 +1034,7 @@ msgstr "இச்சேவையகத்தில் கணக்குரு
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "ஏற்றப்படுகிறது…" msgstr "ஏற்றப்படுகிறது…"
@@ -1066,7 +1066,7 @@ msgid "Loading…"
msgstr "ஏற்றப்படுகிறது…" msgstr "ஏற்றப்படுகிறது…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1698,7 +1698,7 @@ msgstr "சொந்த முகவடிகள்"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "பதில் ஏற்றப்படுகிறது…" msgstr "பதில் ஏற்றப்படுகிறது…"
@@ -1956,7 +1956,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 உங்களை ஒர் அரங்குக்கு வரவழைத்தார்" msgstr "%1 உங்களை ஒர் அரங்குக்கு வரவழைத்தார்"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1965,18 +1965,18 @@ msgstr ""
"கோப்பு பதிவிறக்கக்கூடியதைவிட பெரிதாக உள்ளது.<br />உதவிக்கு உங்கள் மேட்ரிக்ஸு சேவையக " "கோப்பு பதிவிறக்கக்கூடியதைவிட பெரிதாக உள்ளது.<br />உதவிக்கு உங்கள் மேட்ரிக்ஸு சேவையக "
"நிர்வாகியை தொடர்புகொள்ளவும்." "நிர்வாகியை தொடர்புகொள்ளவும்."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "எந்த அடையாளச் சேவையகமும் அமைக்கப்பட்டிருக்கவில்லை" msgstr "எந்த அடையாளச் சேவையகமும் அமைக்கப்பட்டிருக்கவில்லை"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "அரங்கு உருவாக்கம் தோல்வியடைந்தது: %1" msgstr "அரங்கு உருவாக்கம் தோல்வியடைந்தது: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "இட உருவாக்கம் தோல்வியடைந்தது: %1" msgstr "இட உருவாக்கம் தோல்வியடைந்தது: %1"
@@ -5848,86 +5848,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "சேர்க்க வேண்டிய அம்சம்" msgstr "சேர்க்க வேண்டிய அம்சம்"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "மறை" msgstr "மறை"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "பகிர்" msgstr "பகிர்"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "நீக்கு" msgstr "நீக்கு"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "நிரப்பு" msgstr "நிரப்பு"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "ரத்து செய்" msgstr "ரத்து செய்"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "புதிய தொலைபேசி எண்ணுக்கான சர்வதேச குறியெண்" msgstr "புதிய தொலைபேசி எண்ணுக்கான சர்வதேச குறியெண்"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "புதிய மின்னஞ்சல் முகவரி:" msgstr "புதிய மின்னஞ்சல் முகவரி:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "புதிய தொலைபேசி எண்:" msgstr "புதிய தொலைபேசி எண்:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "உங்களுக்கு அஞ்சலனுப்பியுள்ளோம்" msgstr "உங்களுக்கு அஞ்சலனுப்பியுள்ளோம்"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "உங்களுக்கு குறுஞ்செய்தி அனுப்பியுள்ளோம்" msgstr "உங்களுக்கு குறுஞ்செய்தி அனுப்பியுள்ளோம்"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. அதிலுள்ளவாறு செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்" msgstr "%1. அதிலுள்ளவாறு செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "உள்ளிட்ட மின்னஞ்சல் முகவரி செல்லுபடியாகாதது" msgstr "உள்ளிட்ட மின்னஞ்சல் முகவரி செல்லுபடியாகாதது"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "உள்ளிட்ட தொலைபேசி எண் செல்லுபடியாகாதது" msgstr "உள்ளிட்ட தொலைபேசி எண் செல்லுபடியாகாதது"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "தவறான கடவுச்சொல் உள்ளிடப்பட்டது" msgstr "தவறான கடவுச்சொல் உள்ளிடப்பட்டது"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5936,7 +5936,7 @@ msgstr ""
"இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு " "இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு "
"செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்" "செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5945,25 +5945,25 @@ msgstr ""
"இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு " "இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு "
"செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்" "செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "சேர்" msgstr "சேர்"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "பின்னே" msgstr "பின்னே"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. அதிலுள்ளவாறு செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்" msgstr "%1. அதிலுள்ளவாறு செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5972,7 +5972,7 @@ msgstr ""
"இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு " "இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு "
"செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்" "செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5981,35 +5981,35 @@ msgstr ""
"இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு " "இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு "
"செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்" "செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 பயனர் உறுதிப்பாட்டைத் துவக்கினார்" msgstr "%1 பயனர் உறுதிப்பாட்டைத் துவக்கினார்"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "திருத்தத்தை உறுதிசெய்" msgstr "திருத்தத்தை உறுதிசெய்"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "தொடரில் தகவலை இடு" msgstr "தொடரில் தகவலை இடு"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "பிடிப்புப்பலகைக்கு நகலெடு" msgstr "பிடிப்புப்பலகைக்கு நகலெடு"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "அதிகபட்ச பெரிதாக்கு" msgstr "அதிகபட்ச பெரிதாக்கு"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6017,20 +6017,20 @@ msgid ""
msgstr "" msgstr ""
"இந்த செய்தி மறையாக்கம் செய்யப்பட்டுள்ளது, ஆனால் அனுப்புநர் இச்சாதனத்துடன் சாவியை பகிரவில்லை." "இந்த செய்தி மறையாக்கம் செய்யப்பட்டுள்ளது, ஆனால் அனுப்புநர் இச்சாதனத்துடன் சாவியை பகிரவில்லை."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "கூடுதல் நிகழ்வுகளை பெறு" msgstr "கூடுதல் நிகழ்வுகளை பெறு"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "பதிவிறக்கு" msgstr "பதிவிறக்கு"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6038,13 +6038,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "கோப்பை திற" msgstr "கோப்பை திற"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6073,60 +6073,60 @@ msgstr "நுழைவுப்பதிவுக்கான நேரம்:
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "வெளியேற்றப்பதிவுக்கான நேரம்: %1" msgstr "வெளியேற்றப்பதிவுக்கான நேரம்: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "படத்தைக் காட்டு" msgstr "படத்தைக் காட்டு"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "KDE Itinerary-க்கு அனுப்பு" msgstr "KDE Itinerary-க்கு அனுப்பு"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "முன்னோட்டத்தை நீக்கு" msgstr "முன்னோட்டத்தை நீக்கு"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "முன்னோட்டத்தை சிறிதாக்கு" msgstr "முன்னோட்டத்தை சிறிதாக்கு"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "முன்னோட்டத்தை பெரிதாக்கு" msgstr "முன்னோட்டத்தை பெரிதாக்கு"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "முகவரியின் முன்னோட்டம் ஏற்றப்படுகிறது" msgstr "முகவரியின் முன்னோட்டம் ஏற்றப்படுகிறது"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "வெளியமைவாகத் திற" msgstr "வெளியமைவாகத் திற"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "%1 பயனரின் வாக்கின் அடிப்படையில்" msgstr[0] "%1 பயனரின் வாக்கின் அடிப்படையில்"
msgstr[1] "%1 பயனர்களின் வாக்குகளின் அடிப்படையில்" msgstr[1] "%1 பயனர்களின் வாக்குகளின் அடிப்படையில்"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(முடிந்துள்ளது)" msgstr "(முடிந்துள்ளது)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6138,7 +6138,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "கடைசியாக படித்தது: %1" msgstr "கடைசியாக படித்தது: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6157,24 +6157,24 @@ msgstr "உரையாடலின் துவக்கம் இது. இ
msgid "Pl. %1" msgid "Pl. %1"
msgstr "நடைமேடை %1" msgstr "நடைமேடை %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "நிகழ்படம்" msgstr "நிகழ்படம்"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "நிகழ்படத்தை காட்டு" msgstr "நிகழ்படத்தை காட்டு"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "ஒலியளவு" msgstr "ஒலியளவு"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "அதிகபட்ச பெரிதாக்கு" msgstr "அதிகபட்ச பெரிதாக்கு"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-01-08 19:47-0500\n" "PO-Revision-Date: 2024-01-08 19:47-0500\n"
"Last-Translator: Weblate Admin <admin@example.com>\n" "Last-Translator: Weblate Admin <admin@example.com>\n"
"Language-Team: Toki Pona <http://weblate.blackquill.cc/projects/ante-toki-pi-" "Language-Team: Toki Pona <http://weblate.blackquill.cc/projects/ante-toki-pi-"
@@ -1082,7 +1082,7 @@ msgstr ""
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading" msgid "Loading"
@@ -1115,7 +1115,7 @@ msgid "Loading…"
msgstr "mi pali…" msgstr "mi pali…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1774,7 +1774,7 @@ msgstr "sitelen Emosi sina"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Loading…" #| msgid "Loading…"
msgid "Loading reply" msgid "Loading reply"
@@ -2054,7 +2054,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Contact your matrix server administrator for support." #| msgid "Contact your matrix server administrator for support."
msgid "" msgid ""
@@ -2062,18 +2062,18 @@ msgid ""
"for support." "for support."
msgstr "o toki tawa lawa sina pi ilo Matrix." msgstr "o toki tawa lawa sina pi ilo Matrix."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "" msgstr ""
@@ -6081,186 +6081,186 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Edit Message" #| msgid "Edit Message"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "o ante e toki" msgstr "o ante e toki"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Cancel" #| msgid "Cancel"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "o ala" msgstr "o ala"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "o pana e toki" msgstr "o pana e toki"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Add" #| msgid "Add"
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "o lon e nimi len luka" msgstr "o lon e nimi len luka"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Configure" #| msgid "Configure"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "o ante e lawa" msgstr "o ante e lawa"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Send message" #| msgid "Send message"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "o pana e toki" msgstr "o pana e toki"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "toki ni li len. jan pana li pana ala e ken pi lukin len tawa ilo ni." msgstr "toki ni li len. jan pana li pana ala e ken pi lukin len tawa ilo ni."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "o kama jo" msgstr "o kama jo"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6268,13 +6268,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "o open e lipu ni" msgstr "o open e lipu ni"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6303,49 +6303,49 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Ban this user" #| msgid "Ban this user"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "o weka wawa e jan ni" msgstr "o weka wawa e jan ni"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Edit Message" #| msgid "Edit Message"
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "o ante e toki" msgstr "o ante e toki"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "" msgstr ""
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "" msgstr ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6354,13 +6354,13 @@ msgstr[1] ""
msgstr[2] "" msgstr[2] ""
msgstr[3] "" msgstr[3] ""
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "" msgstr ""
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6372,7 +6372,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "" msgstr ""
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6391,25 +6391,25 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "sitelen tawa" msgstr "sitelen tawa"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, fuzzy, kde-format #, fuzzy, kde-format
#| msgid "Video" #| msgid "Video"
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "sitelen tawa" msgstr "sitelen tawa"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 15:14+0300\n" "PO-Revision-Date: 2025-03-06 15:14+0300\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n" "Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish <kde-l10n-tr@kde.org>\n" "Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
@@ -1039,7 +1039,7 @@ msgstr "Bu sunucuda kayıt işlemi devre dışı."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Yükleniyor" msgstr "Yükleniyor"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Yükleniyor…" msgstr "Yükleniyor…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Kendi Emojileriniz"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Yanıt yükleniyor" msgstr "Yanıt yükleniyor"
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1, sizi davet etti" msgstr "%1, sizi davet etti"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1966,18 +1966,18 @@ msgstr ""
"Dosya indirmek için pek büyük.<br />Destek için Matrix sunucusu yöneticisine " "Dosya indirmek için pek büyük.<br />Destek için Matrix sunucusu yöneticisine "
"ulaşın." "ulaşın."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Yapılandırılmış kimlik sunucusu yok" msgstr "Yapılandırılmış kimlik sunucusu yok"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Oda oluşturulamadı: %1" msgstr "Oda oluşturulamadı: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Alan oluşturma başarısız: %1" msgstr "Alan oluşturma başarısız: %1"
@@ -5867,86 +5867,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Eklenecek Parametre Seç" msgstr "Eklenecek Parametre Seç"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Gizle" msgstr "Gizle"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Paylaş" msgstr "Paylaş"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Kaldır" msgstr "Kaldır"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Tam" msgstr "Tam"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "İptal" msgstr "İptal"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Yeni telefon numarası için ülke kodu" msgstr "Yeni telefon numarası için ülke kodu"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Yeni e-posta adresi:" msgstr "Yeni e-posta adresi:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Yeni telefon numarası:" msgstr "Yeni telefon numarası:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Size bir e-posta gönderdik" msgstr "Size bir e-posta gönderdik"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Size bir SMS gönderdik" msgstr "Size bir SMS gönderdik"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1. Oradaki yönergeleri izleyin ve aşağıdaki düğmeye tıklayın" msgstr "%1. Oradaki yönergeleri izleyin ve aşağıdaki düğmeye tıklayın"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Girilen e-posta geçerli değil" msgstr "Girilen e-posta geçerli değil"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Girilen telefon numarası geçerli değil" msgstr "Girilen telefon numarası geçerli değil"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Doğru olmayan bir parola girildi" msgstr "Doğru olmayan bir parola girildi"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5955,7 +5955,7 @@ msgstr ""
"E-posta doğrulanmadı. Postanızııp oradaki yönergeleri izleyin ve " "E-posta doğrulanmadı. Postanızııp oradaki yönergeleri izleyin ve "
"sonrasında aşağıdaki düğmeye tıklayın" "sonrasında aşağıdaki düğmeye tıklayın"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -5964,25 +5964,25 @@ msgstr ""
"Telefon numarası doğrulanmadı. Gelen SMSe gidin ve oradaki yönergeleri " "Telefon numarası doğrulanmadı. Gelen SMSe gidin ve oradaki yönergeleri "
"izleyip aşağıdaki düğmeye tıklayın" "izleyip aşağıdaki düğmeye tıklayın"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Ekle" msgstr "Ekle"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Geri" msgstr "Geri"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1. Oradaki yönergeleri izleyin ve yukarıdaki düğmeye tıklayın" msgstr "%1. Oradaki yönergeleri izleyin ve yukarıdaki düğmeye tıklayın"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -5991,7 +5991,7 @@ msgstr ""
"E-posta doğrulanmadı. Postanızııp oradaki yönergeleri izleyin ve " "E-posta doğrulanmadı. Postanızııp oradaki yönergeleri izleyin ve "
"sonrasında yukarıdaki düğmeye tıklayın" "sonrasında yukarıdaki düğmeye tıklayın"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6000,55 +6000,55 @@ msgstr ""
"Telefon numarası doğrulanmadı. Gelen SMSe gidin ve oradaki yönergeleri " "Telefon numarası doğrulanmadı. Gelen SMSe gidin ve oradaki yönergeleri "
"izleyip yukarıdaki düğmeye tıklayın" "izleyip yukarıdaki düğmeye tıklayın"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 bir kullanıcı doğrulaması başlattı" msgstr "%1 bir kullanıcı doğrulaması başlattı"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Düzenlemeyi onayla" msgstr "Düzenlemeyi onayla"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "İleti Dizisine İleti Gönder" msgstr "İleti Dizisine İleti Gönder"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Panoya kopyala" msgstr "Panoya kopyala"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Ekranı Kapla" msgstr "Ekranı Kapla"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "Bu ileti şifreli ve gönderen, anahtarı bu aygıt ile paylaşmadı." msgstr "Bu ileti şifreli ve gönderen, anahtarı bu aygıt ile paylaşmadı."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Daha Fazla Olay Getir" msgstr "Daha Fazla Olay Getir"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "İndir" msgstr "İndir"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6056,13 +6056,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Dosya Aç" msgstr "Dosya Aç"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6091,60 +6091,60 @@ msgstr "Giriş zamanı: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Çıkış zamanı: %1" msgstr "Çıkış zamanı: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Görseli Göster" msgstr "Görseli Göster"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "KDE Yol Kılavuzuna Gönder" msgstr "KDE Yol Kılavuzuna Gönder"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Önizlemeyi kaldır" msgstr "Önizlemeyi kaldır"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Önizlemeyi küçült" msgstr "Önizlemeyi küçült"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Önizlemeyi genişlet" msgstr "Önizlemeyi genişlet"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "URL önizlemesi yükleniyor" msgstr "URL önizlemesi yükleniyor"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Dışarıda Aç" msgstr "Dışarıda Aç"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "%1 kullanıcı tarafından verilen oylara istinaden" msgstr[0] "%1 kullanıcı tarafından verilen oylara istinaden"
msgstr[1] "%1 kullanıcı tarafından verilen oylara istinaden" msgstr[1] "%1 kullanıcı tarafından verilen oylara istinaden"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Bitti)" msgstr "(Bitti)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6156,7 +6156,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Son okunma: %1" msgstr "Son okunma: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6177,24 +6177,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Pl. %1" msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Videoyu Göster" msgstr "Videoyu Göster"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Ses Düzeyi" msgstr "Ses Düzeyi"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Son Ses" msgstr "Son Ses"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-03-06 09:14+0200\n" "PO-Revision-Date: 2025-03-06 09:14+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -1043,7 +1043,7 @@ msgstr "На цьому сервері реєстрацію вимкнено."
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "Завантаження" msgstr "Завантаження"
@@ -1075,7 +1075,7 @@ msgid "Loading…"
msgstr "Завантаження…" msgstr "Завантаження…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1706,7 +1706,7 @@ msgstr "Власні емоційки"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "Завантаження відповіді" msgstr "Завантаження відповіді"
@@ -1972,7 +1972,7 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "Вас запрошено %1" msgstr "Вас запрошено %1"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
@@ -1981,18 +1981,18 @@ msgstr ""
"Файл є надто великим для отримання.<br />Зв'яжіться із адміністратором " "Файл є надто великим для отримання.<br />Зв'яжіться із адміністратором "
"вашого сервера matrix, щоб отримати допомогу." "вашого сервера matrix, щоб отримати допомогу."
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "Не налаштовано жодного сервера профілів" msgstr "Не налаштовано жодного сервера профілів"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "Не вдалося створити кімнату: %1" msgstr "Не вдалося створити кімнату: %1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "Не вдалося створити простір: %1" msgstr "Не вдалося створити простір: %1"
@@ -5912,65 +5912,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "Виберіть параметр для додавання" msgstr "Виберіть параметр для додавання"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "Приховати" msgstr "Приховати"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "Оприлюднити" msgstr "Оприлюднити"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "Вилучити" msgstr "Вилучити"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "Завершено" msgstr "Завершено"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "Скасувати" msgstr "Скасувати"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "Код країни для нового номера телефону" msgstr "Код країни для нового номера телефону"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "Нова адреса електронної пошти:" msgstr "Нова адреса електронної пошти:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "Новий номер телефону:" msgstr "Новий номер телефону:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "Ми надіслали вам повідомлення електронної пошти" msgstr "Ми надіслали вам повідомлення електронної пошти"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "Ми надіслали вам текстове повідомлення" msgstr "Ми надіслали вам текстове повідомлення"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
@@ -5978,22 +5978,22 @@ msgstr ""
"%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку " "%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку "
"розташовано нижче" "розташовано нижче"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "Введена адреса електронної пошти є некоректною" msgstr "Введена адреса електронної пошти є некоректною"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "Введений номер телефону є некоректним" msgstr "Введений номер телефону є некоректним"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "Введено помилковий пароль" msgstr "Введено помилковий пароль"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6003,7 +6003,7 @@ msgstr ""
"повідомлення електронної пошти і виконайте настанови з нього, а потім " "повідомлення електронної пошти і виконайте настанови з нього, а потім "
"натисніть кнопку, яку розташовано нижче" "натисніть кнопку, яку розташовано нижче"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6013,19 +6013,19 @@ msgstr ""
"повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку " "повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку "
"розташовано нижче" "розташовано нижче"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "Додати" msgstr "Додати"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "Назад" msgstr "Назад"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
@@ -6033,7 +6033,7 @@ msgstr ""
"%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку " "%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку "
"розташовано вище" "розташовано вище"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
@@ -6043,7 +6043,7 @@ msgstr ""
"повідомлення електронної пошти і виконайте настанови з нього, а потім " "повідомлення електронної пошти і виконайте настанови з нього, а потім "
"натисніть кнопку, яку розташовано вище" "натисніть кнопку, яку розташовано вище"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
@@ -6053,35 +6053,35 @@ msgstr ""
"повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку " "повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку "
"розташовано вище" "розташовано вище"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 розпочато перевірку користувача" msgstr "%1 розпочато перевірку користувача"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "Підтвердити редагування" msgstr "Підтвердити редагування"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "Додати повідомлення до гілки" msgstr "Додати повідомлення до гілки"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Скопіювати до буфера" msgstr "Скопіювати до буфера"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "Максимізувати" msgstr "Максимізувати"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
@@ -6090,20 +6090,20 @@ msgstr ""
"Це повідомлення зашифровано, а відправник не поділився ключем із цим " "Це повідомлення зашифровано, а відправник не поділився ключем із цим "
"пристроєм." "пристроєм."
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "Отримати ще дані подій" msgstr "Отримати ще дані подій"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "Отримати" msgstr "Отримати"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -6111,13 +6111,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "Відкрити файл" msgstr "Відкрити файл"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 з %2" msgstr "%1 з %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6146,47 +6146,47 @@ msgstr "Час перевірки на вході: %1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Час перевірки на виході: %1" msgstr "Час перевірки на виході: %1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "Показати зображення" msgstr "Показати зображення"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "Надіслати до KDE Itinerary" msgstr "Надіслати до KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "Вилучити попередній перегляд" msgstr "Вилучити попередній перегляд"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "Стиснути попередній перегляд" msgstr "Стиснути попередній перегляд"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "Розгорнути попередній перегляд" msgstr "Розгорнути попередній перегляд"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "Завантажуємо попередній перегляд адреси" msgstr "Завантажуємо попередній перегляд адреси"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "Відкрити у сторонній програмі" msgstr "Відкрити у сторонній програмі"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
@@ -6195,13 +6195,13 @@ msgstr[1] "На основі голосів %1 користувачів"
msgstr[2] "На основі голосів %1 користувачів" msgstr[2] "На основі голосів %1 користувачів"
msgstr[3] "На основі голосу %1 користувача" msgstr[3] "На основі голосу %1 користувача"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(Завершено)" msgstr "(Завершено)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6213,7 +6213,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "Востаннє прочитано: %1" msgstr "Востаннє прочитано: %1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6232,24 +6232,24 @@ msgstr "Це початок спілкування. У журналі немає
msgid "Pl. %1" msgid "Pl. %1"
msgstr "Пл. %1" msgstr "Пл. %1"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "Відео" msgstr "Відео"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "Показати відео" msgstr "Показати відео"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "Гучність" msgstr "Гучність"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "Максимізувати" msgstr "Максимізувати"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kdeorg\n" "Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2024-04-23 19:24\n" "PO-Revision-Date: 2024-04-23 19:24\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Chinese Simplified\n" "Language-Team: Chinese Simplified\n"
@@ -1027,7 +1027,7 @@ msgstr "此服务器已禁用注册。"
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "加载中" msgstr "加载中"
@@ -1057,7 +1057,7 @@ msgid "Loading…"
msgstr "加载中…" msgstr "加载中…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1691,7 +1691,7 @@ msgstr "自己的表情"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "正在加载回复" msgstr "正在加载回复"
@@ -1940,25 +1940,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "" msgstr ""
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "" msgstr ""
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "聊天室创建失败:%1" msgstr "聊天室创建失败:%1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "空间创建失败:%1" msgstr "空间创建失败:%1"
@@ -5785,180 +5785,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "分享" msgstr "分享"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "移除" msgstr "移除"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "" msgstr ""
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "添加" msgstr "添加"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "" msgstr ""
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "" msgstr ""
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "" msgstr ""
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "确认编辑" msgstr "确认编辑"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "" msgstr ""
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "复制到剪贴板" msgstr "复制到剪贴板"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "此消息已加密,但发送者尚未与此设备共享密钥。" msgstr "此消息已加密,但发送者尚未与此设备共享密钥。"
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "" msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "下载" msgstr "下载"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5966,13 +5966,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "打开文件" msgstr "打开文件"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6001,59 +6001,59 @@ msgstr ""
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "" msgstr ""
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "" msgstr ""
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "" msgstr ""
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "移除预览" msgstr "移除预览"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "收缩预览" msgstr "收缩预览"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "展开预览" msgstr "展开预览"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "正在加载 URL 预览" msgstr "正在加载 URL 预览"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "在外部打开" msgstr "在外部打开"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "基于 %1 位用户的投票" msgstr[0] "基于 %1 位用户的投票"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(已结束)" msgstr "(已结束)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6065,7 +6065,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "上次查看:%1" msgstr "上次查看:%1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6084,24 +6084,24 @@ msgstr ""
msgid "Pl. %1" msgid "Pl. %1"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "视频" msgstr "视频"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "" msgstr ""
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "音量" msgstr "音量"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: neochat\n" "Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2025-03-07 00:42+0000\n" "POT-Creation-Date: 2025-03-11 00:41+0000\n"
"PO-Revision-Date: 2025-02-20 15:27+0900\n" "PO-Revision-Date: 2025-02-20 15:27+0900\n"
"Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n" "Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
"Language-Team: Traditional Chinese <zh-l10n@lists.slat.org>\n" "Language-Team: Traditional Chinese <zh-l10n@lists.slat.org>\n"
@@ -1033,7 +1033,7 @@ msgstr "此伺服器已停用註冊。"
#: src/login/Homeserver.qml:41 src/login/Username.qml:38 #: src/login/Homeserver.qml:41 src/login/Username.qml:38
#: src/models/messagecontentmodel.cpp:262 #: src/models/messagecontentmodel.cpp:262
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33 #: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
#, kde-format #, kde-format
msgid "Loading" msgid "Loading"
msgstr "載入中" msgstr "載入中"
@@ -1063,7 +1063,7 @@ msgid "Loading…"
msgstr "載入中…" msgstr "載入中…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250 #: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Continue" msgid "Continue"
@@ -1693,7 +1693,7 @@ msgstr "自己的表情符號"
#: src/models/messagecontentmodel.cpp:260 #: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288 #: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66 #: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format #, kde-format
msgid "Loading reply" msgid "Loading reply"
msgstr "載入回覆中" msgstr "載入回覆中"
@@ -1943,25 +1943,25 @@ msgctxt "@info:label"
msgid "%1 invited you" msgid "%1 invited you"
msgstr "%1 邀請了您" msgstr "%1 邀請了您"
#: src/neochatconnection.cpp:77 #: src/neochatconnection.cpp:75
#, kde-format #, kde-format
msgid "" msgid ""
"File too large to download.<br />Contact your matrix server administrator " "File too large to download.<br />Contact your matrix server administrator "
"for support." "for support."
msgstr "檔案超過下載大小上限。請聯絡您的 matrix 伺服器管理員以求支援。" msgstr "檔案超過下載大小上限。請聯絡您的 matrix 伺服器管理員以求支援。"
#: src/neochatconnection.cpp:336 #: src/neochatconnection.cpp:329
#, kde-format #, kde-format
msgctxt "@info" msgctxt "@info"
msgid "No identity server configured" msgid "No identity server configured"
msgstr "未設定身份伺服器" msgstr "未設定身份伺服器"
#: src/neochatconnection.cpp:367 #: src/neochatconnection.cpp:360
#, kde-format #, kde-format
msgid "Room creation failed: %1" msgid "Room creation failed: %1"
msgstr "聊天室建立失敗:%1" msgstr "聊天室建立失敗:%1"
#: src/neochatconnection.cpp:397 #: src/neochatconnection.cpp:390
#, kde-format #, kde-format
msgid "Space creation failed: %1" msgid "Space creation failed: %1"
msgstr "聊天空間建立失敗:%1" msgstr "聊天空間建立失敗:%1"
@@ -5795,180 +5795,180 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add" msgid "Select Parameter to Add"
msgstr "選擇要加入的參數" msgstr "選擇要加入的參數"
#: src/settings/ThreePIdCard.qml:55 #: src/settings/ThreePIdCard.qml:58
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Hide" msgid "Hide"
msgstr "隱藏" msgstr "隱藏"
#: src/settings/ThreePIdCard.qml:61 #: src/settings/ThreePIdCard.qml:64
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Share" msgid "Share"
msgstr "分享" msgstr "分享"
#: src/settings/ThreePIdCard.qml:66 #: src/settings/ThreePIdCard.qml:69
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Remove" msgid "Remove"
msgstr "移除" msgstr "移除"
#: src/settings/ThreePIdCard.qml:85 #: src/settings/ThreePIdCard.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Complete" msgid "Complete"
msgstr "完成" msgstr "完成"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110 #: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: src/settings/ThreePIdCard.qml:130 #: src/settings/ThreePIdCard.qml:136
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "Country Code for new phone number" msgid "Country Code for new phone number"
msgstr "新的電話號碼的國碼" msgstr "新的電話號碼的國碼"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Email Address:" msgid "New Email Address:"
msgstr "新的電子郵件地址:" msgstr "新的電子郵件地址:"
#: src/settings/ThreePIdCard.qml:146 #: src/settings/ThreePIdCard.qml:152
#, kde-format #, kde-format
msgctxt "@label:textbox" msgctxt "@label:textbox"
msgid "New Phone Number:" msgid "New Phone Number:"
msgstr "新的電話號碼:" msgstr "新的電話號碼:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you an email" msgid "We've sent you an email"
msgstr "我們已向您傳送電子郵件" msgstr "我們已向您傳送電子郵件"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178 #: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format #, kde-format
msgid "We've sent you a text message" msgid "We've sent you a text message"
msgstr "我們已向您傳送簡訊" msgstr "我們已向您傳送簡訊"
#: src/settings/ThreePIdCard.qml:150 #: src/settings/ThreePIdCard.qml:156
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button below" "%1. Please follow the instructions there and then click the button below"
msgstr "%1。請跟隨該訊息的指示後點擊下方的按鈕。" msgstr "%1。請跟隨該訊息的指示後點擊下方的按鈕。"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered email is not valid" msgid "The entered email is not valid"
msgstr "輸入的電子郵件無效" msgstr "輸入的電子郵件無效"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180 #: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format #, kde-format
msgid "The entered phone number is not valid" msgid "The entered phone number is not valid"
msgstr "輸入的電話號碼無效" msgstr "輸入的電話號碼無效"
#: src/settings/ThreePIdCard.qml:154 #: src/settings/ThreePIdCard.qml:160
#, kde-format #, kde-format
msgid "Incorrect password entered" msgid "Incorrect password entered"
msgstr "輸入了錯誤的密碼" msgstr "輸入了錯誤的密碼"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button below" "instructions there and then click the button below"
msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊下方的按鈕" msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊下方的按鈕"
#: src/settings/ThreePIdCard.qml:156 #: src/settings/ThreePIdCard.qml:162
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button below" "follow the instructions there and then click the button below"
msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊下方的按鈕" msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊下方的按鈕"
#: src/settings/ThreePIdCard.qml:183 #: src/settings/ThreePIdCard.qml:189
#, kde-format #, kde-format
msgctxt "@action:button Add new email or phone number" msgctxt "@action:button Add new email or phone number"
msgid "Add" msgid "Add"
msgstr "新增" msgstr "新增"
#: src/settings/ThreePIdCard.qml:191 #: src/settings/ThreePIdCard.qml:197
#, kde-format #, kde-format
msgctxt "@action:button As in 'go back'" msgctxt "@action:button As in 'go back'"
msgid "Back" msgid "Back"
msgstr "返回" msgstr "返回"
#: src/threepidbindhelper.cpp:177 #: src/threepidbindhelper.cpp:178
#, kde-format #, kde-format
msgid "" msgid ""
"%1. Please follow the instructions there and then click the button above" "%1. Please follow the instructions there and then click the button above"
msgstr "%1。請跟隨該訊息的指示後點擊上方的按鈕" msgstr "%1。請跟隨該訊息的指示後點擊上方的按鈕"
#: src/threepidbindhelper.cpp:183 #: src/threepidbindhelper.cpp:184
#, kde-format #, kde-format
msgid "" msgid ""
"The email has not been verified. Please go to the email and follow the " "The email has not been verified. Please go to the email and follow the "
"instructions there and then click the button above" "instructions there and then click the button above"
msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊上方的按鈕" msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊上方的按鈕"
#: src/threepidbindhelper.cpp:184 #: src/threepidbindhelper.cpp:185
#, kde-format #, kde-format
msgid "" msgid ""
"The phone number has not been verified. Please go to the text message and " "The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above" "follow the instructions there and then click the button above"
msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊上方的按鈕" msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊上方的按鈕"
#: src/timeline/BaseMessageComponentChooser.qml:249 #: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format #, kde-format
msgid "%1 started a user verification" msgid "%1 started a user verification"
msgstr "%1 開始了使用者驗證" msgstr "%1 開始了使用者驗證"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Confirm edit" msgid "Confirm edit"
msgstr "確認編輯" msgstr "確認編輯"
#: src/timeline/ChatBarComponent.qml:98 #: src/timeline/ChatBarComponent.qml:88
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Post message in thread" msgid "Post message in thread"
msgstr "在對話串中張貼訊息" msgstr "在對話串中張貼訊息"
#: src/timeline/CodeComponent.qml:164 #: src/timeline/CodeComponent.qml:159
#, kde-format #, kde-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "複製到剪貼簿" msgstr "複製到剪貼簿"
#: src/timeline/CodeComponent.qml:176 #: src/timeline/CodeComponent.qml:171
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"
#: src/timeline/EncryptedComponent.qml:21 #: src/timeline/EncryptedComponent.qml:18
#, kde-format #, kde-format
msgid "" msgid ""
"This message is encrypted and the sender has not shared the key with this " "This message is encrypted and the sender has not shared the key with this "
"device." "device."
msgstr "這個訊息已加密而傳送者並未與本裝置分享金鑰。" msgstr "這個訊息已加密而傳送者並未與本裝置分享金鑰。"
#: src/timeline/FetchButtonComponent.qml:41 #: src/timeline/FetchButtonComponent.qml:36
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Fetch More Events" msgid "Fetch More Events"
msgstr "取得更多事件" msgstr "取得更多事件"
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187 #: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to download its file" "tooltip for a button on a message; offers ability to download its file"
msgid "Download" msgid "Download"
msgstr "下載" msgstr "下載"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177 #: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded " "tooltip for a button on a message; offers ability to open its downloaded "
@@ -5976,13 +5976,13 @@ msgctxt ""
msgid "Open File" msgid "Open File"
msgstr "開啟檔案" msgstr "開啟檔案"
#: src/timeline/FileComponent.qml:135 #: src/timeline/FileComponent.qml:125
#, kde-format #, kde-format
msgctxt "file download progress" msgctxt "file download progress"
msgid "%1 / %2" msgid "%1 / %2"
msgstr "%1 / %2" msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140 #: src/timeline/FileComponent.qml:130
#, kde-format #, kde-format
msgctxt "" msgctxt ""
"tooltip for a button on a message; stops downloading the message's file" "tooltip for a button on a message; stops downloading the message's file"
@@ -6011,59 +6011,59 @@ msgstr "Check-in 時間:%1"
msgid "Check-out time: %1" msgid "Check-out time: %1"
msgstr "Check-out 時間:%1" msgstr "Check-out 時間:%1"
#: src/timeline/ImageComponent.qml:140 #: src/timeline/ImageComponent.qml:120
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Image" msgid "Show Image"
msgstr "設定影像" msgstr "設定影像"
#: src/timeline/ItineraryComponent.qml:57 #: src/timeline/ItineraryComponent.qml:54
#, kde-format #, kde-format
msgctxt "@action" msgctxt "@action"
msgid "Send to KDE Itinerary" msgid "Send to KDE Itinerary"
msgstr "傳送到 KDE 旅程計劃" msgstr "傳送到 KDE 旅程計劃"
#: src/timeline/LinkPreviewComponent.qml:136 #: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:79 #: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format #, kde-format
msgctxt "As in remove the link preview so it's no longer shown" msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview" msgid "Remove preview"
msgstr "移除預覽" msgstr "移除預覽"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Shrink preview" msgid "Shrink preview"
msgstr "收起預覽" msgstr "收起預覽"
#: src/timeline/LinkPreviewComponent.qml:154 #: src/timeline/LinkPreviewComponent.qml:149
#, kde-format #, kde-format
msgid "Expand preview" msgid "Expand preview"
msgstr "展開預覽" msgstr "展開預覽"
#: src/timeline/LinkPreviewLoadComponent.qml:68 #: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format #, kde-format
msgid "Loading URL preview" msgid "Loading URL preview"
msgstr "正在載入網址預覽" msgstr "正在載入網址預覽"
#: src/timeline/LocationComponent.qml:116 #: src/timeline/LocationComponent.qml:111
#, kde-format #, kde-format
msgctxt "@action:button Open the location in an external program" msgctxt "@action:button Open the location in an external program"
msgid "Open Externally" msgid "Open Externally"
msgstr "在外部開啟" msgstr "在外部開啟"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgid "Based on votes by %1 user" msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users" msgid_plural "Based on votes by %1 users"
msgstr[0] "基於 %1 個使用者的投票" msgstr[0] "基於 %1 個使用者的投票"
#: src/timeline/PollComponent.qml:80 #: src/timeline/PollComponent.qml:70
#, kde-format #, kde-format
msgctxt "as in 'this vote has ended'" msgctxt "as in 'this vote has ended'"
msgid "(Ended)" msgid "(Ended)"
msgstr "(已結束)" msgstr "(已結束)"
#: src/timeline/ReactionComponent.qml:97 #: src/timeline/ReactionComponent.qml:89
#, kde-format #, kde-format
msgctxt "@button" msgctxt "@button"
msgid "React" msgid "React"
@@ -6075,7 +6075,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1" msgid "Last read: %1"
msgstr "最後閱讀:%1" msgstr "最後閱讀:%1"
#: src/timeline/ReplyButtonComponent.qml:44 #: src/timeline/ReplyButtonComponent.qml:34
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Reply" msgid "Reply"
@@ -6094,24 +6094,24 @@ msgstr "這是此聊天的開頭。沒有比這更早的歷史訊息。"
msgid "Pl. %1" msgid "Pl. %1"
msgstr "第 %1 月台" msgstr "第 %1 月台"
#: src/timeline/VideoComponent.qml:217 #: src/timeline/VideoComponent.qml:197
#, kde-format #, kde-format
msgid "Video" msgid "Video"
msgstr "影片" msgstr "影片"
#: src/timeline/VideoComponent.qml:257 #: src/timeline/VideoComponent.qml:237
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Show Video" msgid "Show Video"
msgstr "顯示影片" msgstr "顯示影片"
#: src/timeline/VideoComponent.qml:298 #: src/timeline/VideoComponent.qml:278
#, kde-format #, kde-format
msgctxt "@action:button" msgctxt "@action:button"
msgid "Volume" msgid "Volume"
msgstr "音量" msgstr "音量"
#: src/timeline/VideoComponent.qml:382 #: src/timeline/VideoComponent.qml:362
#, kde-format #, kde-format
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"

View File

@@ -10,192 +10,192 @@ endif()
add_library(neochat STATIC add_library(neochat STATIC
controller.cpp controller.cpp
controller.h controller.h
models/emojimodel.cpp # models/emojimodel.cpp
models/emojimodel.h # models/emojimodel.h
emojitones.cpp # emojitones.cpp
emojitones.h # emojitones.h
models/customemojimodel.cpp # models/customemojimodel.cpp
models/customemojimodel.h # models/customemojimodel.h
clipboard.cpp # clipboard.cpp
clipboard.h # clipboard.h
models/timelinemessagemodel.cpp # models/timelinemessagemodel.cpp
models/timelinemessagemodel.h # models/timelinemessagemodel.h
models/messagefiltermodel.cpp # models/messagefiltermodel.cpp
models/messagefiltermodel.h # models/messagefiltermodel.h
models/roomlistmodel.cpp # models/roomlistmodel.cpp
models/roomlistmodel.h # models/roomlistmodel.h
models/sortfilterspacelistmodel.cpp # models/sortfilterspacelistmodel.cpp
models/sortfilterspacelistmodel.h # models/sortfilterspacelistmodel.h
models/accountemoticonmodel.cpp # models/accountemoticonmodel.cpp
models/accountemoticonmodel.h # models/accountemoticonmodel.h
spacehierarchycache.cpp # spacehierarchycache.cpp
spacehierarchycache.h # spacehierarchycache.h
roommanager.cpp # roommanager.cpp
roommanager.h # roommanager.h
neochatroom.cpp neochatroom.cpp
neochatroom.h neochatroom.h
models/userlistmodel.cpp models/userlistmodel.cpp
models/userlistmodel.h models/userlistmodel.h
models/userfiltermodel.cpp models/userfiltermodel.cpp
models/userfiltermodel.h models/userfiltermodel.h
models/publicroomlistmodel.cpp # models/publicroomlistmodel.cpp
models/publicroomlistmodel.h # models/publicroomlistmodel.h
models/spacechildrenmodel.cpp # models/spacechildrenmodel.cpp
models/spacechildrenmodel.h # models/spacechildrenmodel.h
models/spacechildsortfiltermodel.cpp # models/spacechildsortfiltermodel.cpp
models/spacechildsortfiltermodel.h # models/spacechildsortfiltermodel.h
models/spacetreeitem.cpp # models/spacetreeitem.cpp
models/spacetreeitem.h # models/spacetreeitem.h
models/userdirectorylistmodel.cpp # models/userdirectorylistmodel.cpp
models/userdirectorylistmodel.h # models/userdirectorylistmodel.h
models/pushrulemodel.cpp models/pushrulemodel.cpp
models/pushrulemodel.h models/pushrulemodel.h
models/emoticonfiltermodel.cpp # models/emoticonfiltermodel.cpp
models/emoticonfiltermodel.h # models/emoticonfiltermodel.h
notificationsmanager.cpp # notificationsmanager.cpp
notificationsmanager.h # notificationsmanager.h
models/sortfilterroomlistmodel.cpp # models/sortfilterroomlistmodel.cpp
models/sortfilterroomlistmodel.h # models/sortfilterroomlistmodel.h
models/roomtreemodel.cpp models/roomtreemodel.cpp
models/roomtreemodel.h models/roomtreemodel.h
chatdocumenthandler.cpp chatdocumenthandler.cpp
chatdocumenthandler.h chatdocumenthandler.h
models/devicesmodel.cpp # models/devicesmodel.cpp
models/devicesmodel.h # models/devicesmodel.h
models/devicesproxymodel.cpp # models/devicesproxymodel.cpp
filetype.cpp # filetype.cpp
filetype.h # filetype.h
login.cpp # login.cpp
login.h # login.h
models/webshortcutmodel.cpp # models/webshortcutmodel.cpp
models/webshortcutmodel.h # models/webshortcutmodel.h
blurhash.cpp blurhash.cpp
blurhash.h blurhash.h
blurhashimageprovider.cpp blurhashimageprovider.cpp
blurhashimageprovider.h blurhashimageprovider.h
models/mediamessagefiltermodel.cpp # models/mediamessagefiltermodel.cpp
models/mediamessagefiltermodel.h # models/mediamessagefiltermodel.h
urlhelper.cpp # urlhelper.cpp
urlhelper.h # urlhelper.h
windowcontroller.cpp windowcontroller.cpp
windowcontroller.h windowcontroller.h
linkpreviewer.cpp # linkpreviewer.cpp
linkpreviewer.h # linkpreviewer.h
models/completionmodel.cpp models/completionmodel.cpp
models/completionmodel.h models/completionmodel.h
models/completionproxymodel.cpp # models/completionproxymodel.cpp
models/completionproxymodel.h # models/completionproxymodel.h
models/actionsmodel.cpp # models/actionsmodel.cpp
models/actionsmodel.h # models/actionsmodel.h
models/serverlistmodel.cpp # models/serverlistmodel.cpp
models/serverlistmodel.h # models/serverlistmodel.h
models/statemodel.cpp # models/statemodel.cpp
models/statemodel.h # models/statemodel.h
models/statefiltermodel.cpp # models/statefiltermodel.cpp
models/statefiltermodel.h # models/statefiltermodel.h
filetransferpseudojob.cpp # filetransferpseudojob.cpp
filetransferpseudojob.h # filetransferpseudojob.h
models/searchmodel.cpp # models/searchmodel.cpp
models/searchmodel.h # models/searchmodel.h
texthandler.cpp # texthandler.cpp
texthandler.h # texthandler.h
logger.cpp logger.cpp
logger.h logger.h
models/stickermodel.cpp # models/stickermodel.cpp
models/stickermodel.h # models/stickermodel.h
models/imagepacksmodel.cpp # models/imagepacksmodel.cpp
models/imagepacksmodel.h # models/imagepacksmodel.h
events/imagepackevent.cpp # events/imagepackevent.cpp
events/imagepackevent.h # events/imagepackevent.h
models/reactionmodel.cpp # models/reactionmodel.cpp
models/reactionmodel.h # models/reactionmodel.h
delegatesizehelper.cpp delegatesizehelper.cpp
delegatesizehelper.h delegatesizehelper.h
models/livelocationsmodel.cpp # models/livelocationsmodel.cpp
models/livelocationsmodel.h # models/livelocationsmodel.h
models/locationsmodel.cpp # models/locationsmodel.cpp
models/locationsmodel.h # models/locationsmodel.h
locationhelper.cpp # locationhelper.cpp
locationhelper.h # locationhelper.h
events/pollevent.cpp # events/pollevent.cpp
pollhandler.cpp # pollhandler.cpp
utils.h utils.h
utils.cpp utils.cpp
registration.cpp # registration.cpp
neochatconnection.cpp neochatconnection.cpp
neochatconnection.h neochatconnection.h
jobs/neochatgetcommonroomsjob.cpp # jobs/neochatgetcommonroomsjob.cpp
jobs/neochatgetcommonroomsjob.h # jobs/neochatgetcommonroomsjob.h
mediasizehelper.cpp mediasizehelper.cpp
mediasizehelper.h mediasizehelper.h
eventhandler.cpp # eventhandler.cpp
enums/delegatetype.h # enums/delegatetype.h
roomlastmessageprovider.cpp # roomlastmessageprovider.cpp
roomlastmessageprovider.h # roomlastmessageprovider.h
chatbarcache.cpp chatbarcache.cpp
chatbarcache.h chatbarcache.h
colorschemer.cpp colorschemer.cpp
colorschemer.h colorschemer.h
models/notificationsmodel.cpp # models/notificationsmodel.cpp
models/notificationsmodel.h # models/notificationsmodel.h
models/timelinemodel.cpp # models/timelinemodel.cpp
models/timelinemodel.h # models/timelinemodel.h
enums/pushrule.h enums/pushrule.h
models/itinerarymodel.cpp # models/itinerarymodel.cpp
models/itinerarymodel.h # models/itinerarymodel.h
proxycontroller.cpp proxycontroller.cpp
proxycontroller.h proxycontroller.h
models/linemodel.cpp models/linemodel.cpp
models/linemodel.h models/linemodel.h
events/locationbeaconevent.h # events/locationbeaconevent.h
events/widgetevent.h # events/widgetevent.h
enums/messagecomponenttype.h # enums/messagecomponenttype.h
models/messagecontentmodel.cpp # models/messagecontentmodel.cpp
models/messagecontentmodel.h # models/messagecontentmodel.h
enums/neochatroomtype.h enums/neochatroomtype.h
models/sortfilterroomtreemodel.cpp models/sortfilterroomtreemodel.cpp
models/sortfilterroomtreemodel.h models/sortfilterroomtreemodel.h
mediamanager.cpp mediamanager.cpp
mediamanager.h mediamanager.h
models/statekeysmodel.cpp # models/statekeysmodel.cpp
models/statekeysmodel.h # models/statekeysmodel.h
sharehandler.cpp # sharehandler.cpp
sharehandler.h # sharehandler.h
models/roomtreeitem.cpp models/roomtreeitem.cpp
models/roomtreeitem.h models/roomtreeitem.h
foreigntypes.h foreigntypes.h
models/threepidmodel.cpp # models/threepidmodel.cpp
models/threepidmodel.h # models/threepidmodel.h
threepidaddhelper.cpp # threepidaddhelper.cpp
threepidaddhelper.h # threepidaddhelper.h
identityserverhelper.cpp # identityserverhelper.cpp
identityserverhelper.h # identityserverhelper.h
enums/powerlevel.cpp # enums/powerlevel.cpp
enums/powerlevel.h # enums/powerlevel.h
models/permissionsmodel.cpp # models/permissionsmodel.cpp
models/permissionsmodel.h # models/permissionsmodel.h
threepidbindhelper.cpp # threepidbindhelper.cpp
threepidbindhelper.h # threepidbindhelper.h
models/readmarkermodel.cpp # models/readmarkermodel.cpp
models/readmarkermodel.h # models/readmarkermodel.h
neochatroommember.cpp # neochatroommember.cpp
neochatroommember.h # neochatroommember.h
models/threadmodel.cpp # models/threadmodel.cpp
models/threadmodel.h # models/threadmodel.h
enums/messagetype.h # enums/messagetype.h
messagecomponent.h # messagecomponent.h
enums/roomsortparameter.cpp enums/roomsortparameter.cpp
enums/roomsortparameter.h enums/roomsortparameter.h
models/roomsortparametermodel.cpp # models/roomsortparametermodel.cpp
models/roomsortparametermodel.h # models/roomsortparametermodel.h
models/messagemodel.cpp # models/messagemodel.cpp
models/messagemodel.h # models/messagemodel.h
models/messagecontentfiltermodel.cpp # models/messagecontentfiltermodel.cpp
models/messagecontentfiltermodel.h # models/messagecontentfiltermodel.h
models/pinnedmessagemodel.cpp # models/pinnedmessagemodel.cpp
models/pinnedmessagemodel.h # models/pinnedmessagemodel.h
models/commonroomsmodel.cpp # models/commonroomsmodel.cpp
models/commonroomsmodel.h # models/commonroomsmodel.h
) )
set_source_files_properties(qml/OsmLocationPlugin.qml PROPERTIES set_source_files_properties(qml/OsmLocationPlugin.qml PROPERTIES
@@ -296,6 +296,9 @@ ecm_add_qml_module(neochat URI org.kde.neochat GENERATE_PLUGIN_SOURCE
qml/HoverLinkIndicator.qml qml/HoverLinkIndicator.qml
qml/AvatarNotification.qml qml/AvatarNotification.qml
qml/ReasonDialog.qml qml/ReasonDialog.qml
SOURCES
# messageattached.cpp
# messageattached.h
DEPENDENCIES DEPENDENCIES
QtCore QtCore
QtQuick QtQuick
@@ -395,10 +398,10 @@ endif()
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU) if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU)
target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER) target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER)
target_compile_definitions(neochat PUBLIC -DHAVE_X11=1) target_compile_definitions(neochat PUBLIC -DHAVE_X11=1)
target_sources(neochat PRIVATE runner.cpp) # target_sources(neochat PRIVATE runner.cpp)
if (TARGET KUnifiedPush) if (TARGET KUnifiedPush)
target_sources(neochat PRIVATE fakerunner.cpp) # target_sources(neochat PRIVATE fakerunner.cpp)
endif() endif()
else() else()
target_compile_definitions(neochat PUBLIC -DHAVE_X11=0) target_compile_definitions(neochat PUBLIC -DHAVE_X11=0)
@@ -424,7 +427,7 @@ target_link_libraries(neochat PUBLIC
KF6::IconThemes KF6::IconThemes
KF6::ColorScheme KF6::ColorScheme
KF6::ItemModels KF6::ItemModels
QuotientQt6 Integral
cmark::cmark cmark::cmark
QCoro::Core QCoro::Core
QCoro::Network QCoro::Network

View File

@@ -344,13 +344,13 @@ QQC2.Control {
Item { Item {
implicitWidth: replyComponent.implicitWidth implicitWidth: replyComponent.implicitWidth
implicitHeight: replyComponent.implicitHeight implicitHeight: replyComponent.implicitHeight
ReplyComponent { // ReplyComponent {
id: replyComponent // id: replyComponent
replyEventId: _private.chatBarCache.replyId // replyEventId: _private.chatBarCache.replyId
replyAuthor: _private.chatBarCache.relationAuthor // replyAuthor: _private.chatBarCache.relationAuthor
replyContentModel: _private.chatBarCache.relationEventContentModel // replyContentModel: _private.chatBarCache.relationEventContentModel
maxContentWidth: paneLoader.item.width // Message.maxContentWidth: paneLoader.item.width
} // }
QQC2.Button { QQC2.Button {
id: cancelButton id: cancelButton
@@ -498,23 +498,23 @@ QQC2.Control {
} }
} }
EmojiDialog { // EmojiDialog {
id: emojiDialog // id: emojiDialog
//
x: root.width - width // x: root.width - width
y: -implicitHeight // y: -implicitHeight
//
modal: false // modal: false
includeCustom: true // includeCustom: true
closeOnChosen: false // closeOnChosen: false
//
currentRoom: root.currentRoom // currentRoom: root.currentRoom
//
onChosen: emoji => insertText(emoji) // onChosen: emoji => insertText(emoji)
onClosed: if (emojiAction.checked) { // onClosed: if (emojiAction.checked) {
emojiAction.checked = false; // emojiAction.checked = false;
} // }
} // }
function insertText(text) { function insertText(text) {
let initialCursorPosition = textField.cursorPosition; let initialCursorPosition = textField.cursorPosition;

View File

@@ -2,14 +2,15 @@
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "chatbarcache.h" #include "chatbarcache.h"
#include "chatdocumenthandler.h"
#include <Quotient/roommember.h> #include <Quotient/roommember.h>
#include "chatdocumenthandler.h" // #include "chatdocumenthandler.h"
#include "eventhandler.h" // #include "eventhandler.h"
#include "models/actionsmodel.h" // #include "models/actionsmodel.h"
#include "neochatroom.h" #include "neochatroom.h"
#include "texthandler.h" // #include "texthandler.h"
using namespace Qt::StringLiterals; using namespace Qt::StringLiterals;
@@ -88,7 +89,7 @@ void ChatBarCache::setReplyId(const QString &replyId)
m_relationType = Reply; m_relationType = Reply;
} }
m_attachmentPath = QString(); m_attachmentPath = QString();
delete m_relationContentModel; // delete m_relationContentModel;
Q_EMIT relationIdChanged(oldEventId, m_relationId); Q_EMIT relationIdChanged(oldEventId, m_relationId);
Q_EMIT attachmentPathChanged(); Q_EMIT attachmentPathChanged();
} }
@@ -118,27 +119,27 @@ void ChatBarCache::setEditId(const QString &editId)
m_relationType = Edit; m_relationType = Edit;
} }
m_attachmentPath = QString(); m_attachmentPath = QString();
delete m_relationContentModel; // delete m_relationContentModel;
Q_EMIT relationIdChanged(oldEventId, m_relationId); Q_EMIT relationIdChanged(oldEventId, m_relationId);
Q_EMIT attachmentPathChanged(); Q_EMIT attachmentPathChanged();
} }
Quotient::RoomMember ChatBarCache::relationAuthor() const // Quotient::RoomMember ChatBarCache::relationAuthor() const
{ // {
if (parent() == nullptr) { // if (parent() == nullptr) {
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation."; // qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
return {}; // return {};
} // }
auto room = dynamic_cast<NeoChatRoom *>(parent()); // auto room = dynamic_cast<NeoChatRoom *>(parent());
if (room == nullptr) { // if (room == nullptr) {
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation."; // qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
return {}; // return {};
} // }
if (m_relationId.isEmpty()) { // if (m_relationId.isEmpty()) {
return room->member(QString()); // return room->member(QString());
} // }
return room->member((*room->findInTimeline(m_relationId))->senderId()); // return room->member((*room->findInTimeline(m_relationId))->senderId());
} // }
QString ChatBarCache::relationMessage() const QString ChatBarCache::relationMessage() const
{ {
@@ -155,33 +156,33 @@ QString ChatBarCache::relationMessage() const
return {}; return {};
} }
if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) { // if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
return EventHandler::markdownBody(&**event); // return EventHandler::markdownBody(&**event);
} // }
return {}; return {};
} }
MessageContentModel *ChatBarCache::relationEventContentModel() // MessageContentModel *ChatBarCache::relationEventContentModel()
{ // {
if (parent() == nullptr) { // if (parent() == nullptr) {
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation."; // qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
return nullptr; // return nullptr;
} // }
if (m_relationId.isEmpty()) { // if (m_relationId.isEmpty()) {
return nullptr; // return nullptr;
} // }
if (m_relationContentModel != nullptr) { // if (m_relationContentModel != nullptr) {
return m_relationContentModel; // return m_relationContentModel;
} // }
//
auto room = dynamic_cast<NeoChatRoom *>(parent()); // auto room = dynamic_cast<NeoChatRoom *>(parent());
if (room == nullptr) { // if (room == nullptr) {
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation."; // qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
return nullptr; // return nullptr;
} // }
m_relationContentModel = new MessageContentModel(room, m_relationId, true); // m_relationContentModel = new MessageContentModel(room, m_relationId, true);
return m_relationContentModel; // return m_relationContentModel;
} // }
bool ChatBarCache::isThreaded() const bool ChatBarCache::isThreaded() const
{ {
@@ -215,7 +216,7 @@ void ChatBarCache::setAttachmentPath(const QString &attachmentPath)
m_attachmentPath = attachmentPath; m_attachmentPath = attachmentPath;
m_relationType = None; m_relationType = None;
const auto oldEventId = std::exchange(m_relationId, QString()); const auto oldEventId = std::exchange(m_relationId, QString());
delete m_relationContentModel; // delete m_relationContentModel;
Q_EMIT attachmentPathChanged(); Q_EMIT attachmentPathChanged();
Q_EMIT relationIdChanged(oldEventId, m_relationId); Q_EMIT relationIdChanged(oldEventId, m_relationId);
} }
@@ -225,7 +226,7 @@ void ChatBarCache::clearRelations()
const auto oldEventId = std::exchange(m_relationId, QString()); const auto oldEventId = std::exchange(m_relationId, QString());
const auto oldThreadId = std::exchange(m_threadId, QString()); const auto oldThreadId = std::exchange(m_threadId, QString());
m_attachmentPath = QString(); m_attachmentPath = QString();
delete m_relationContentModel; // delete m_relationContentModel;
Q_EMIT relationIdChanged(oldEventId, m_relationId); Q_EMIT relationIdChanged(oldEventId, m_relationId);
Q_EMIT threadIdChanged(oldThreadId, m_threadId); Q_EMIT threadIdChanged(oldThreadId, m_threadId);
Q_EMIT attachmentPathChanged(); Q_EMIT attachmentPathChanged();
@@ -238,7 +239,7 @@ QList<Mention> *ChatBarCache::mentions()
void ChatBarCache::updateMentions(QQuickTextDocument *document, ChatDocumentHandler *documentHandler) void ChatBarCache::updateMentions(QQuickTextDocument *document, ChatDocumentHandler *documentHandler)
{ {
documentHandler->setDocument(document); // documentHandler->setDocument(document);
if (parent() == nullptr) { if (parent() == nullptr) {
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation."; qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
@@ -253,35 +254,35 @@ void ChatBarCache::updateMentions(QQuickTextDocument *document, ChatDocumentHand
return; return;
} }
if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) { // if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
if (const auto &roomMessageEvent = &*event->viewAs<Quotient::RoomMessageEvent>()) { // if (const auto &roomMessageEvent = &*event->viewAs<Quotient::RoomMessageEvent>()) {
// Replaces the mentions that are baked into the HTML but plaintext in the original markdown // // Replaces the mentions that are baked into the HTML but plaintext in the original markdown
const QRegularExpression re(uR"lit(<a\shref="https:\/\/matrix.to\/#\/([\S]*)"\s?>([\S]*)<\/a>)lit"_s); // const QRegularExpression re(uR"lit(<a\shref="https:\/\/matrix.to\/#\/([\S]*)"\s?>([\S]*)<\/a>)lit"_s);
//
m_mentions.clear(); // m_mentions.clear();
//
int linkSize = 0; // int linkSize = 0;
auto matches = re.globalMatch(EventHandler::rawMessageBody(*roomMessageEvent)); // auto matches = re.globalMatch(EventHandler::rawMessageBody(*roomMessageEvent));
while (matches.hasNext()) { // while (matches.hasNext()) {
const QRegularExpressionMatch match = matches.next(); // const QRegularExpressionMatch match = matches.next();
if (match.hasMatch()) { // if (match.hasMatch()) {
const QString id = match.captured(1); // const QString id = match.captured(1);
const QString name = match.captured(2); // const QString name = match.captured(2);
//
const int position = match.capturedStart(0) - linkSize; // const int position = match.capturedStart(0) - linkSize;
const int end = position + name.length(); // const int end = position + name.length();
linkSize += match.capturedLength(0) - name.length(); // linkSize += match.capturedLength(0) - name.length();
//
QTextCursor cursor(documentHandler->document()->textDocument()); // QTextCursor cursor(documentHandler->document()->textDocument());
cursor.setPosition(position); // cursor.setPosition(position);
cursor.setPosition(end, QTextCursor::KeepAnchor); // cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setKeepPositionOnInsert(true); // cursor.setKeepPositionOnInsert(true);
//
m_mentions.push_back(Mention{.cursor = cursor, .text = name, .start = position, .position = end, .id = id}); // m_mentions.push_back(Mention{.cursor = cursor, .text = name, .start = position, .position = end, .id = id});
} // }
} // }
} // }
} // }
} }
QString ChatBarCache::savedText() const QString ChatBarCache::savedText() const
@@ -308,37 +309,37 @@ void ChatBarCache::postMessage()
return; return;
} }
const auto result = ActionsModel::handleAction(room, this); // const auto result = ActionsModel::handleAction(room, this);
if (!result.second.has_value()) { // if (!result.second.has_value()) {
return; // return;
} // }
TextHandler textHandler; // TextHandler textHandler;
textHandler.setData(*std::get<std::optional<QString>>(result)); // textHandler.setData(*std::get<std::optional<QString>>(result));
const auto sendText = textHandler.handleSendText(); // const auto sendText = textHandler.handleSendText();
//
if (sendText.length() == 0) { // if (sendText.length() == 0) {
return; // return;
} // }
bool isReply = !replyId().isEmpty(); bool isReply = !replyId().isEmpty();
const auto replyIt = room->findInTimeline(replyId()); // const auto replyIt = room->findInTimeline(replyId());
if (replyIt == room->historyEdge()) { // if (replyIt == room->historyEdge()) {
isReply = false; // isReply = false;
} // }
auto content = std::make_unique<Quotient::EventContent::TextContent>(sendText, u"text/html"_s); // auto content = std::make_unique<Quotient::EventContent::TextContent>(sendText, u"text/html"_s);
std::optional<Quotient::EventRelation> relatesTo = std::nullopt; // std::optional<Quotient::EventRelation> relatesTo = std::nullopt;
//
// if (!threadId().isEmpty()) {
// relatesTo = Quotient::EventRelation::replyInThread(threadId(), !isReply, isReply ? replyId() : threadId());
// } else if (!editId().isEmpty()) {
// relatesTo = Quotient::EventRelation::replace(editId());
// } else if (isReply) {
// relatesTo = Quotient::EventRelation::replyTo(replyId());
// }
if (!threadId().isEmpty()) { // room->post<Quotient::RoomMessageEvent>(text(), *std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result), std::move(content), relatesTo);
relatesTo = Quotient::EventRelation::replyInThread(threadId(), !isReply, isReply ? replyId() : threadId());
} else if (!editId().isEmpty()) {
relatesTo = Quotient::EventRelation::replace(editId());
} else if (isReply) {
relatesTo = Quotient::EventRelation::replyTo(replyId());
}
room->post<Quotient::RoomMessageEvent>(text(), *std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result), std::move(content), relatesTo);
clearCache(); clearCache();
} }

View File

@@ -8,7 +8,7 @@
#include <QQuickTextDocument> #include <QQuickTextDocument>
#include <QTextCursor> #include <QTextCursor>
#include "models/messagecontentmodel.h" // #include "models/messagecontentmodel.h"
class ChatDocumentHandler; class ChatDocumentHandler;
@@ -102,7 +102,7 @@ class ChatBarCache : public QObject
* *
* @sa Quotient::RoomMember * @sa Quotient::RoomMember
*/ */
Q_PROPERTY(Quotient::RoomMember relationAuthor READ relationAuthor NOTIFY relationIdChanged) // Q_PROPERTY(Quotient::RoomMember relationAuthor READ relationAuthor NOTIFY relationIdChanged)
/** /**
* @brief The content of the related message. * @brief The content of the related message.
@@ -116,7 +116,7 @@ class ChatBarCache : public QObject
* *
* Will be nullptr if no related message. * Will be nullptr if no related message.
*/ */
Q_PROPERTY(MessageContentModel *relationEventContentModel READ relationEventContentModel NOTIFY relationIdChanged) // Q_PROPERTY(MessageContentModel *relationEventContentModel READ relationEventContentModel NOTIFY relationIdChanged)
/** /**
* @brief Whether the chat bar is replying in a thread. * @brief Whether the chat bar is replying in a thread.
@@ -164,10 +164,10 @@ public:
QString editId() const; QString editId() const;
void setEditId(const QString &editId); void setEditId(const QString &editId);
Quotient::RoomMember relationAuthor() const; // Quotient::RoomMember relationAuthor() const;
QString relationMessage() const; QString relationMessage() const;
MessageContentModel *relationEventContentModel(); // MessageContentModel *relationEventContentModel();
bool isThreaded() const; bool isThreaded() const;
QString threadId() const; QString threadId() const;
@@ -225,7 +225,7 @@ private:
QList<Mention> m_mentions; QList<Mention> m_mentions;
QString m_savedText; QString m_savedText;
QPointer<MessageContentModel> m_relationContentModel; // QPointer<MessageContentModel> m_relationContentModel;
void clearCache(); void clearCache();
}; };

View File

@@ -105,7 +105,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
, m_completionModel(new CompletionModel(this)) , m_completionModel(new CompletionModel(this))
{ {
connect(this, &ChatDocumentHandler::roomChanged, this, [this]() { connect(this, &ChatDocumentHandler::roomChanged, this, [this]() {
m_completionModel->setRoom(m_room); // m_completionModel->setRoom(m_room);
static QPointer<NeoChatRoom> previousRoom = nullptr; static QPointer<NeoChatRoom> previousRoom = nullptr;
if (previousRoom) { if (previousRoom) {
disconnect(m_chatBarCache, &ChatBarCache::textChanged, this, nullptr); disconnect(m_chatBarCache, &ChatBarCache::textChanged, this, nullptr);
@@ -113,7 +113,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
previousRoom = m_room; previousRoom = m_room;
connect(m_chatBarCache, &ChatBarCache::textChanged, this, [this]() { connect(m_chatBarCache, &ChatBarCache::textChanged, this, [this]() {
int start = completionStartIndex(); int start = completionStartIndex();
m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start)); // m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
}); });
}); });
connect(this, &ChatDocumentHandler::documentChanged, this, [this]() { connect(this, &ChatDocumentHandler::documentChanged, this, [this]() {
@@ -124,7 +124,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
return; return;
} }
int start = completionStartIndex(); int start = completionStartIndex();
m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start)); // m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
}); });
} }
@@ -217,58 +217,58 @@ void ChatDocumentHandler::complete(int index)
qCWarning(ChatDocumentHandling) << "complete called with m_document set to nullptr."; qCWarning(ChatDocumentHandling) << "complete called with m_document set to nullptr.";
return; return;
} }
if (m_completionModel->autoCompletionType() == CompletionModel::None) { // if (m_completionModel->autoCompletionType() == CompletionModel::None) {
qCWarning(ChatDocumentHandling) << "complete called with m_completionModel->autoCompletionType() == CompletionModel::None."; // qCWarning(ChatDocumentHandling) << "complete called with m_completionModel->autoCompletionType() == CompletionModel::None.";
return; // return;
} // }
// Ensure we only search for the beginning of the current completion identifier // Ensure we only search for the beginning of the current completion identifier
const auto fromIndex = qMax(completionStartIndex(), 0); const auto fromIndex = qMax(completionStartIndex(), 0);
if (m_completionModel->autoCompletionType() == CompletionModel::User) { // if (m_completionModel->autoCompletionType() == CompletionModel::User) {
auto name = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::DisplayNameRole).toString(); // auto name = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::DisplayNameRole).toString();
auto id = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString(); // auto id = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
auto text = getText(); // auto text = getText();
auto at = text.indexOf(QLatin1Char('@'), fromIndex); // auto at = text.indexOf(QLatin1Char('@'), fromIndex);
QTextCursor cursor(document()->textDocument()); // QTextCursor cursor(document()->textDocument());
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor); // cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
cursor.insertText(name + u" "_s); // cursor.insertText(name + u" "_s);
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursor.position() + name.size(), QTextCursor::KeepAnchor); // cursor.setPosition(cursor.position() + name.size(), QTextCursor::KeepAnchor);
cursor.setKeepPositionOnInsert(true); // cursor.setKeepPositionOnInsert(true);
pushMention({cursor, name, 0, 0, id}); // pushMention({cursor, name, 0, 0, id});
m_highlighter->rehighlight(); // m_highlighter->rehighlight();
} else if (m_completionModel->autoCompletionType() == CompletionModel::Command) { // } else if (m_completionModel->autoCompletionType() == CompletionModel::Command) {
auto command = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString(); // auto command = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
auto text = getText(); // auto text = getText();
auto at = text.indexOf(QLatin1Char('/'), fromIndex); // auto at = text.indexOf(QLatin1Char('/'), fromIndex);
QTextCursor cursor(document()->textDocument()); // QTextCursor cursor(document()->textDocument());
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor); // cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
cursor.insertText(u"/%1 "_s.arg(command)); // cursor.insertText(u"/%1 "_s.arg(command));
} else if (m_completionModel->autoCompletionType() == CompletionModel::Room) { // } else if (m_completionModel->autoCompletionType() == CompletionModel::Room) {
auto alias = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString(); // auto alias = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
auto text = getText(); // auto text = getText();
auto at = text.indexOf(QLatin1Char('#'), fromIndex); // auto at = text.indexOf(QLatin1Char('#'), fromIndex);
QTextCursor cursor(document()->textDocument()); // QTextCursor cursor(document()->textDocument());
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor); // cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
cursor.insertText(alias + u" "_s); // cursor.insertText(alias + u" "_s);
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursor.position() + alias.size(), QTextCursor::KeepAnchor); // cursor.setPosition(cursor.position() + alias.size(), QTextCursor::KeepAnchor);
cursor.setKeepPositionOnInsert(true); // cursor.setKeepPositionOnInsert(true);
pushMention({cursor, alias, 0, 0, alias}); // pushMention({cursor, alias, 0, 0, alias});
m_highlighter->rehighlight(); // m_highlighter->rehighlight();
} else if (m_completionModel->autoCompletionType() == CompletionModel::Emoji) { // } else if (m_completionModel->autoCompletionType() == CompletionModel::Emoji) {
auto shortcode = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString(); // auto shortcode = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
auto text = getText(); // auto text = getText();
auto at = text.indexOf(QLatin1Char(':'), fromIndex); // auto at = text.indexOf(QLatin1Char(':'), fromIndex);
QTextCursor cursor(document()->textDocument()); // QTextCursor cursor(document()->textDocument());
cursor.setPosition(at); // cursor.setPosition(at);
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor); // cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
cursor.insertText(shortcode); // cursor.insertText(shortcode);
} // }
} }
CompletionModel *ChatDocumentHandler::completionModel() const CompletionModel *ChatDocumentHandler::completionModel() const

View File

@@ -8,19 +8,16 @@
#include <KLocalizedString> #include <KLocalizedString>
#include <QFile>
#include <QGuiApplication> #include <QGuiApplication>
#include <QTimer> #include <QTimer>
#include <signal.h> #include <signal.h>
#include <Quotient/csapi/notifications.h>
#include <Quotient/qt_connection_util.h>
#include <Quotient/settings.h>
#include "neochatconfig.h" #include "neochatconfig.h"
#include "neochatconnection.h" #include "neochatconnection.h"
#include "neochatroom.h" // #include "neochatroom.h"
#include "notificationsmanager.h" // #include "notificationsmanager.h"
#include "proxycontroller.h" #include "proxycontroller.h"
#if defined(Q_OS_WIN) || defined(Q_OS_MAC) #if defined(Q_OS_WIN) || defined(Q_OS_MAC)
@@ -43,12 +40,13 @@
bool testMode = false; bool testMode = false;
using namespace Quotient; using namespace Integral;
using namespace Qt::Literals::StringLiterals;
Controller::Controller(QObject *parent) Controller::Controller(QObject *parent)
: QObject(parent) : QObject(parent)
{ {
Connection::setRoomType<NeoChatRoom>(); // Connection::setRoomType<NeoChatRoom>();
ProxyController::instance().setApplicationProxy(); ProxyController::instance().setApplicationProxy();
@@ -57,18 +55,18 @@ Controller::Controller(QObject *parent)
connect(NeoChatConfig::self(), &NeoChatConfig::SystemTrayChanged, this, &Controller::setQuitOnLastWindowClosed); connect(NeoChatConfig::self(), &NeoChatConfig::SystemTrayChanged, this, &Controller::setQuitOnLastWindowClosed);
#endif #endif
if (!testMode) { // if (!testMode) {
QTimer::singleShot(0, this, [this] { // QTimer::singleShot(0, this, [this] {
invokeLogin(); // invokeLogin();
}); // });
} else { // } else {
auto c = new NeoChatConnection(this); // auto c = new NeoChatConnection(this);
c->assumeIdentity(u"@user:localhost:1234"_s, u"device_1234"_s, u"token_1234"_s); // c->assumeIdentity(u"@user:localhost:1234"_s, u"device_1234"_s, u"token_1234"_s);
connect(c, &Connection::connected, this, [c, this]() { // connect(c, &Connection::connected, this, [c, this]() {
m_accountRegistry.add(c); // m_accountRegistry.add(c);
c->syncLoop(); // c->syncLoop();
}); // });
} // }
QObject::connect(QGuiApplication::instance(), &QCoreApplication::aboutToQuit, QGuiApplication::instance(), [this] { QObject::connect(QGuiApplication::instance(), &QCoreApplication::aboutToQuit, QGuiApplication::instance(), [this] {
delete m_trayIcon; delete m_trayIcon;
@@ -99,31 +97,31 @@ Controller::Controller(QObject *parent)
#endif #endif
static int oldAccountCount = 0; static int oldAccountCount = 0;
connect(&m_accountRegistry, &AccountRegistry::accountCountChanged, this, [this]() { // connect(&m_accountRegistry, &AccountRegistry::accountCountChanged, this, [this]() {
if (m_accountRegistry.size() > oldAccountCount) { // if (m_accountRegistry.size() > oldAccountCount) {
auto connection = dynamic_cast<NeoChatConnection *>(m_accountRegistry.accounts()[m_accountRegistry.size() - 1]); // auto connection = dynamic_cast<NeoChatConnection *>(m_accountRegistry.accounts()[m_accountRegistry.size() - 1]);
connect( // connect(
connection, // connection,
&NeoChatConnection::syncDone, // &NeoChatConnection::syncDone,
this, // this,
[this, connection] { // [this, connection] {
if (!m_endpoint.isEmpty()) { // if (!m_endpoint.isEmpty()) {
connection->setupPushNotifications(m_endpoint); // connection->setupPushNotifications(m_endpoint);
} // }
}, // },
Qt::SingleShotConnection); // Qt::SingleShotConnection);
} // }
oldAccountCount = m_accountRegistry.size(); // oldAccountCount = m_accountRegistry.size();
}); // });
#ifdef HAVE_KUNIFIEDPUSH #ifdef HAVE_KUNIFIEDPUSH
auto connector = new KUnifiedPush::Connector(u"org.kde.neochat"_s); auto connector = new KUnifiedPush::Connector(u"org.kde.neochat"_s);
connect(connector, &KUnifiedPush::Connector::endpointChanged, this, [this](const QString &endpoint) { connect(connector, &KUnifiedPush::Connector::endpointChanged, this, [this](const QString &endpoint) {
m_endpoint = endpoint; m_endpoint = endpoint;
for (auto &quotientConnection : m_accountRegistry) { // for (auto &quotientConnection : m_accountRegistry) {
auto connection = dynamic_cast<NeoChatConnection *>(quotientConnection); // auto connection = dynamic_cast<NeoChatConnection *>(quotientConnection);
connection->setupPushNotifications(endpoint); // connection->setupPushNotifications(endpoint);
} // }
}); });
connector->registerClient( connector->registerClient(
@@ -140,147 +138,6 @@ Controller &Controller::instance()
return _instance; return _instance;
} }
void Controller::addConnection(NeoChatConnection *c)
{
Q_ASSERT_X(c, __FUNCTION__, "Attempt to add a null connection");
m_accountRegistry.add(c);
c->setLazyLoading(true);
connect(c, &NeoChatConnection::syncDone, this, [c] {
c->sync(30000);
c->saveState();
});
connect(c, &NeoChatConnection::loggedOut, this, [this, c] {
if (accounts().count() > 1) {
// Only set the connection if the account being logged out is currently active
if (c == activeConnection()) {
setActiveConnection(dynamic_cast<NeoChatConnection *>(accounts().accounts()[0]));
}
} else {
setActiveConnection(nullptr);
}
dropConnection(c);
});
connect(c, &NeoChatConnection::badgeNotificationCountChanged, this, &Controller::updateBadgeNotificationCount);
connect(c, &NeoChatConnection::syncDone, this, [this, c]() {
m_notificationsManager.handleNotifications(c);
});
c->sync();
Q_EMIT connectionAdded(c);
}
void Controller::dropConnection(NeoChatConnection *c)
{
Q_ASSERT_X(c, __FUNCTION__, "Attempt to drop a null connection");
c->disconnect(this);
c->disconnect(&m_notificationsManager);
m_accountRegistry.drop(c);
Q_EMIT connectionDropped(c);
}
void Controller::invokeLogin()
{
const auto accounts = SettingsGroup("Accounts"_L1).childGroups();
for (const auto &accountId : accounts) {
AccountSettings account{accountId};
m_accountsLoading += accountId;
Q_EMIT accountsLoadingChanged();
if (!account.homeserver().isEmpty()) {
auto accessTokenLoadingJob = loadAccessTokenFromKeyChain(account.userId());
connect(accessTokenLoadingJob, &QKeychain::Job::finished, this, [accountId, this, accessTokenLoadingJob](QKeychain::Job *) {
AccountSettings account{accountId};
QString accessToken;
if (accessTokenLoadingJob->error() == QKeychain::Error::NoError) {
accessToken = QString::fromLatin1(accessTokenLoadingJob->binaryData());
} else {
return;
}
auto connection = new NeoChatConnection(account.homeserver());
m_connectionsLoading[accountId] = connection;
connect(connection, &NeoChatConnection::connected, this, [this, connection, accountId] {
connection->loadState();
if (connection->allRooms().size() == 0 || connection->allRooms()[0]->currentState().get<RoomCreateEvent>()) {
addConnection(connection);
m_accountsLoading.removeAll(connection->userId());
m_connectionsLoading.remove(accountId);
Q_EMIT accountsLoadingChanged();
} else {
connect(
connection->allRooms()[0],
&Room::baseStateLoaded,
this,
[this, connection, accountId]() {
addConnection(connection);
m_accountsLoading.removeAll(connection->userId());
m_connectionsLoading.remove(accountId);
Q_EMIT accountsLoadingChanged();
},
Qt::SingleShotConnection);
}
});
connection->assumeIdentity(account.userId(), account.deviceId(), accessToken);
});
}
}
}
QKeychain::ReadPasswordJob *Controller::loadAccessTokenFromKeyChain(const QString &userId)
{
qDebug() << "Reading access token from the keychain for" << userId;
auto job = new QKeychain::ReadPasswordJob(qAppName(), this);
job->setKey(userId);
// Handling of errors
connect(job, &QKeychain::Job::finished, this, [this, job]() {
if (job->error() == QKeychain::Error::NoError) {
return;
}
switch (job->error()) {
case QKeychain::EntryNotFound:
Q_EMIT errorOccured(i18n("Access token wasn't found: Maybe it was deleted?"));
break;
case QKeychain::AccessDeniedByUser:
case QKeychain::AccessDenied:
Q_EMIT errorOccured(i18n("Access to keychain was denied: Please allow NeoChat to read the access token"));
break;
case QKeychain::NoBackendAvailable:
Q_EMIT errorOccured(i18n("No keychain available: Please install a keychain, e.g. KWallet or GNOME keyring on Linux"));
break;
case QKeychain::OtherError:
Q_EMIT errorOccured(i18n("Unable to read access token: %1", job->errorString()));
break;
default:
break;
}
});
job->start();
return job;
}
void Controller::saveAccessTokenToKeyChain(const QString &userId, const QByteArray &accessToken)
{
qDebug() << "Save the access token to the keychain for " << userId;
auto job = new QKeychain::WritePasswordJob(qAppName());
job->setAutoDelete(true);
job->setKey(userId);
job->setBinaryData(accessToken);
connect(job, &QKeychain::WritePasswordJob::finished, this, [job]() {
if (job->error()) {
qWarning() << "Could not save access token to the keychain: " << qPrintable(job->errorString());
}
});
job->start();
}
bool Controller::supportSystemTray() const bool Controller::supportSystemTray() const
{ {
#ifdef Q_OS_ANDROID #ifdef Q_OS_ANDROID
@@ -322,7 +179,7 @@ void Controller::setActiveConnection(NeoChatConnection *connection)
if (m_connection != nullptr) { if (m_connection != nullptr) {
m_connection->disconnect(this); m_connection->disconnect(this);
m_connection->disconnect(&m_notificationsManager); // m_connection->disconnect(&m_notificationsManager);
} }
m_connection = connection; m_connection = connection;
@@ -331,7 +188,7 @@ void Controller::setActiveConnection(NeoChatConnection *connection)
m_connection->refreshBadgeNotificationCount(); m_connection->refreshBadgeNotificationCount();
updateBadgeNotificationCount(m_connection, m_connection->badgeNotificationCount()); updateBadgeNotificationCount(m_connection, m_connection->badgeNotificationCount());
connect(m_connection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured); // connect(m_connection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
} }
Q_EMIT activeConnectionChanged(m_connection); Q_EMIT activeConnectionChanged(m_connection);
@@ -346,7 +203,7 @@ void Controller::listenForNotifications()
connect(timer, &QTimer::timeout, qGuiApp, &QGuiApplication::quit); connect(timer, &QTimer::timeout, qGuiApp, &QGuiApplication::quit);
connect(connector, &KUnifiedPush::Connector::messageReceived, [timer](const QByteArray &data) { connect(connector, &KUnifiedPush::Connector::messageReceived, [timer](const QByteArray &data) {
instance().m_notificationsManager.postPushNotification(data); // instance().m_notificationsManager.postPushNotification(data);
timer->stop(); timer->stop();
}); });
@@ -360,7 +217,7 @@ void Controller::listenForNotifications()
void Controller::clearInvitationNotification(const QString &roomId) void Controller::clearInvitationNotification(const QString &roomId)
{ {
m_notificationsManager.clearInvitationNotification(roomId); // m_notificationsManager.clearInvitationNotification(roomId);
} }
void Controller::updateBadgeNotificationCount(NeoChatConnection *connection, int count) void Controller::updateBadgeNotificationCount(NeoChatConnection *connection, int count)
@@ -402,9 +259,9 @@ bool Controller::isFlatpak() const
#endif #endif
} }
AccountRegistry &Controller::accounts() Accounts &Controller::accounts()
{ {
return m_accountRegistry; return m_accounts;
} }
QString Controller::loadFileContent(const QString &path) const QString Controller::loadFileContent(const QString &path) const
@@ -420,20 +277,6 @@ void Controller::setTestMode(bool test)
testMode = test; testMode = test;
} }
void Controller::removeConnection(const QString &userId)
{
// When loadAccessTokenFromKeyChain() fails m_connectionsLoading won't have an
// entry for it so we need to check both separately.
if (m_accountsLoading.contains(userId)) {
m_accountsLoading.removeAll(userId);
Q_EMIT accountsLoadingChanged();
}
if (m_connectionsLoading.contains(userId) && m_connectionsLoading[userId]) {
auto connection = m_connectionsLoading[userId];
SettingsGroup("Accounts"_L1).remove(userId);
}
}
bool Controller::csSupported() const bool Controller::csSupported() const
{ {
return true; return true;

View File

@@ -7,8 +7,8 @@
#include <QQmlEngine> #include <QQmlEngine>
#include "neochatconnection.h" #include "neochatconnection.h"
#include "notificationsmanager.h" // #include "notificationsmanager.h"
#include <Quotient/accountregistry.h> #include <Integral/Accounts>
class TrayIcon; class TrayIcon;
@@ -63,21 +63,6 @@ public:
void setActiveConnection(NeoChatConnection *connection); void setActiveConnection(NeoChatConnection *connection);
[[nodiscard]] NeoChatConnection *activeConnection() const; [[nodiscard]] NeoChatConnection *activeConnection() const;
/**
* @brief Add a new connection to the account registry.
*/
void addConnection(NeoChatConnection *c);
/**
* @brief Drop a connection from the account registry.
*/
void dropConnection(NeoChatConnection *c);
/**
* @brief Save an access token to the keychain for the given account.
*/
void saveAccessTokenToKeyChain(const QString &userId, const QByteArray &accessToken);
[[nodiscard]] bool supportSystemTray() const; [[nodiscard]] bool supportSystemTray() const;
bool isFlatpak() const; bool isFlatpak() const;
@@ -97,12 +82,10 @@ public:
Q_INVOKABLE QString loadFileContent(const QString &path) const; Q_INVOKABLE QString loadFileContent(const QString &path) const;
Quotient::AccountRegistry &accounts(); Integral::Accounts &accounts();
static void setTestMode(bool testMode); static void setTestMode(bool testMode);
Q_INVOKABLE void removeConnection(const QString &userId);
bool csSupported() const; bool csSupported() const;
/** /**
@@ -122,18 +105,15 @@ private:
QPointer<NeoChatConnection> m_connection; QPointer<NeoChatConnection> m_connection;
TrayIcon *m_trayIcon = nullptr; TrayIcon *m_trayIcon = nullptr;
QKeychain::ReadPasswordJob *loadAccessTokenFromKeyChain(const QString &account); Integral::Accounts m_accounts;
Quotient::AccountRegistry m_accountRegistry;
QStringList m_accountsLoading; QStringList m_accountsLoading;
QMap<QString, QPointer<NeoChatConnection>> m_connectionsLoading; QMap<QString, QPointer<NeoChatConnection>> m_connectionsLoading;
QString m_endpoint; QString m_endpoint;
QStringList m_shownImages; QStringList m_shownImages;
NotificationsManager m_notificationsManager; // NotificationsManager m_notificationsManager;
private Q_SLOTS: private Q_SLOTS:
void invokeLogin();
void setQuitOnLastWindowClosed(); void setQuitOnLastWindowClosed();
void updateBadgeNotificationCount(NeoChatConnection *connection, int count); void updateBadgeNotificationCount(NeoChatConnection *connection, int count);

View File

@@ -4,12 +4,12 @@
#pragma once #pragma once
#include <QObject> #include <QObject>
#include <QQmlEngine>
#include "neochatroom.h"
#include <Quotient/quotient_common.h>
#include <KLocalizedString> #include <KLocalizedString>
#include <Integral/lib.rs.h>
using namespace Qt::StringLiterals; using namespace Qt::StringLiterals;
class NeoChatRoomType : public QObject class NeoChatRoomType : public QObject
@@ -22,7 +22,7 @@ public:
/** /**
* @brief Defines the room list categories a room can be assigned. * @brief Defines the room list categories a room can be assigned.
*/ */
enum Types { enum Type {
Invited, /**< The user has been invited to the room. */ Invited, /**< The user has been invited to the room. */
Favorite, /**< The room is set as a favourite. */ Favorite, /**< The room is set as a favourite. */
Direct, /**< The room is a direct chat. */ Direct, /**< The room is a direct chat. */
@@ -32,23 +32,23 @@ public:
AddDirect, /**< So we can show the add friend delegate. */ AddDirect, /**< So we can show the add friend delegate. */
TypesCount, /**< Number of different types (this should always be last). */ TypesCount, /**< Number of different types (this should always be last). */
}; };
Q_ENUM(Types); Q_ENUM(Type);
static NeoChatRoomType::Types typeForRoom(const NeoChatRoom *room) static NeoChatRoomType::Type typeForRoom(rust::Box<sdk::RoomListRoom> room)
{ {
if (room->isSpace()) { if (room->is_space()) {
return NeoChatRoomType::Space; return NeoChatRoomType::Space;
} }
if (room->joinState() == Quotient::JoinState::Invite) { if (room->state() == 2) {
return NeoChatRoomType::Invited; return NeoChatRoomType::Invited;
} }
if (room->isFavourite()) { if (room->is_favourite()) {
return NeoChatRoomType::Favorite; return NeoChatRoomType::Favorite;
} }
if (room->isLowPriority()) { if (room->is_low_priority()) {
return NeoChatRoomType::Deprioritized; return NeoChatRoomType::Deprioritized;
} }
if (room->isDirectChat()) { if (false /*room->isDirectChat()*/) {
return NeoChatRoomType::Direct; return NeoChatRoomType::Direct;
} }
return NeoChatRoomType::Normal; return NeoChatRoomType::Normal;

View File

@@ -1,3 +1,4 @@
// SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com> // SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com>
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
@@ -5,8 +6,8 @@
#include <algorithm> #include <algorithm>
#include "neochatconfig.h" // #include "neochatconfig.h"
#include "neochatroom.h" #include <Integral/Utils>
namespace namespace
{ {
@@ -56,27 +57,27 @@ QList<RoomSortParameter::Parameter> RoomSortParameter::allParameterList()
QList<RoomSortParameter::Parameter> RoomSortParameter::currentParameterList() QList<RoomSortParameter::Parameter> RoomSortParameter::currentParameterList()
{ {
QList<RoomSortParameter::Parameter> configParamList; QList<RoomSortParameter::Parameter> configParamList = activitySortPriorities;
switch (static_cast<NeoChatConfig::EnumSortOrder::type>(NeoChatConfig::sortOrder())) { // switch (static_cast<NeoChatConfig::EnumSortOrder::type>(NeoChatConfig::sortOrder())) {
case NeoChatConfig::EnumSortOrder::Activity: // case NeoChatConfig::EnumSortOrder::Activity:
configParamList = activitySortPriorities; // configParamList = activitySortPriorities;
break; // break;
case NeoChatConfig::EnumSortOrder::Alphabetical: // case NeoChatConfig::EnumSortOrder::Alphabetical:
configParamList = alphabeticalSortPriorities; // configParamList = alphabeticalSortPriorities;
break; // break;
case NeoChatConfig::EnumSortOrder::LastMessage: // case NeoChatConfig::EnumSortOrder::LastMessage:
configParamList = lastMessageSortPriorities; // configParamList = lastMessageSortPriorities;
break; // break;
case NeoChatConfig::EnumSortOrder::Custom: { // case NeoChatConfig::EnumSortOrder::Custom: {
const auto intList = NeoChatConfig::customSortOrder(); // const auto intList = NeoChatConfig::customSortOrder();
std::transform(intList.constBegin(), intList.constEnd(), std::back_inserter(configParamList), [](int param) { // std::transform(intList.constBegin(), intList.constEnd(), std::back_inserter(configParamList), [](int param) {
return static_cast<Parameter>(param); // return static_cast<Parameter>(param);
}); // });
break; // break;
} // }
default: // default:
break; // break;
} // }
if (configParamList.isEmpty()) { if (configParamList.isEmpty()) {
return activitySortPriorities; return activitySortPriorities;
@@ -90,73 +91,74 @@ void RoomSortParameter::saveNewParameterList(const QList<Parameter> &newList)
std::transform(newList.constBegin(), newList.constEnd(), std::back_inserter(intList), [](Parameter param) { std::transform(newList.constBegin(), newList.constEnd(), std::back_inserter(intList), [](Parameter param) {
return static_cast<int>(param); return static_cast<int>(param);
}); });
NeoChatConfig::setCustomSortOrder(intList); // NeoChatConfig::setCustomSortOrder(intList);
NeoChatConfig::setSortOrder(NeoChatConfig::EnumSortOrder::Custom); // NeoChatConfig::setSortOrder(NeoChatConfig::EnumSortOrder::Custom);
NeoChatConfig::self()->save(); // NeoChatConfig::self()->save();
} }
int RoomSortParameter::compareParameter(Parameter parameter, NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter(Parameter parameter, rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
switch (parameter) { switch (parameter) {
case AlphabeticalAscending: case AlphabeticalAscending:
return compareParameter<AlphabeticalAscending>(leftRoom, rightRoom); return compareParameter<AlphabeticalAscending>(leftRoom->box_me(), rightRoom->box_me());
case AlphabeticalDescending: case AlphabeticalDescending:
return compareParameter<AlphabeticalDescending>(leftRoom, rightRoom); return compareParameter<AlphabeticalDescending>(leftRoom->box_me(), rightRoom->box_me());
case HasUnread: case HasUnread:
return compareParameter<HasUnread>(leftRoom, rightRoom); return compareParameter<HasUnread>(leftRoom->box_me(), rightRoom->box_me());
case MostUnread: case MostUnread:
return compareParameter<MostUnread>(leftRoom, rightRoom); return compareParameter<MostUnread>(leftRoom->box_me(), rightRoom->box_me());
case HasHighlight: case HasHighlight:
return compareParameter<HasHighlight>(leftRoom, rightRoom); return compareParameter<HasHighlight>(leftRoom->box_me(), rightRoom->box_me());
case MostHighlights: case MostHighlights:
return compareParameter<MostHighlights>(leftRoom, rightRoom); return compareParameter<MostHighlights>(leftRoom->box_me(), rightRoom->box_me());
case LastActive: case LastActive:
return compareParameter<LastActive>(leftRoom, rightRoom); return compareParameter<LastActive>(leftRoom->box_me(), rightRoom->box_me());
default: default:
return 0; return 0;
} }
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return -typeCompare(leftRoom->displayName(), rightRoom->displayName()); return -typeCompare(stringFromRust(leftRoom->display_name()), stringFromRust(rightRoom->display_name()));
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(rust::Box<sdk::RoomListRoom> leftRoom,
rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return typeCompare(leftRoom->displayName(), rightRoom->displayName()); return typeCompare(stringFromRust(leftRoom->display_name()), stringFromRust(rightRoom->display_name()));
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return typeCompare(leftRoom->contextAwareNotificationCount() > 0, rightRoom->contextAwareNotificationCount() > 0); return typeCompare(leftRoom->num_unread_messages() > 0, rightRoom->num_unread_messages() > 0);
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return typeCompare(leftRoom->contextAwareNotificationCount(), rightRoom->contextAwareNotificationCount()); return typeCompare(leftRoom->num_unread_messages(), rightRoom->num_unread_messages());
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
const auto leftHighlight = leftRoom->highlightCount() > 0 && leftRoom->contextAwareNotificationCount() > 0; const auto leftHighlight = leftRoom->num_unread_mentions() > 0 && leftRoom->num_unread_messages() > 0;
const auto rightHighlight = rightRoom->highlightCount() > 0 && rightRoom->contextAwareNotificationCount() > 0; const auto rightHighlight = rightRoom->num_unread_mentions() > 0 && rightRoom->num_unread_messages() > 0;
return typeCompare(leftHighlight, rightHighlight); return typeCompare(leftHighlight, rightHighlight);
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return typeCompare(int(leftRoom->highlightCount()), int(rightRoom->highlightCount())); return typeCompare(int(leftRoom->num_unread_mentions()), int(rightRoom->num_unread_mentions()));
} }
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom) int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
{ {
return typeCompare(leftRoom->lastActiveTime(), rightRoom->lastActiveTime()); return 1;
} }

View File

@@ -8,7 +8,9 @@
#include <KLocalizedString> #include <KLocalizedString>
class NeoChatRoom; #include <Integral/lib.rs.h>
class Room;
/** /**
* @class RoomSortParameter * @class RoomSortParameter
@@ -116,27 +118,29 @@ public:
* *
* @sa Parameter * @sa Parameter
*/ */
static int compareParameter(Parameter parameter, NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); static int compareParameter(Parameter parameter, rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
private: private:
template<Parameter parameter> template<Parameter parameter>
static int compareParameter(NeoChatRoom *, NeoChatRoom *) static int compareParameter(rust::Box<sdk::RoomListRoom>, rust::Box<sdk::RoomListRoom>)
{ {
return false; return false;
} }
}; };
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(rust::Box<sdk::RoomListRoom> leftRoom,
rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(rust::Box<sdk::RoomListRoom> leftRoom,
rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
template<> template<>
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom); int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);

View File

@@ -5,44 +5,36 @@
#include <QQmlEngine> #include <QQmlEngine>
#include <Quotient/accountregistry.h> #include <Integral/Accounts>
#include <Quotient/e2ee/sssshandler.h> #include <Integral/Homeserver>
#include <Quotient/keyimport.h>
#include <Quotient/keyverificationsession.h>
#include <Quotient/roommember.h>
#include "controller.h" #include "controller.h"
#include "neochatconfig.h" #include "neochatconfig.h"
struct ForeignAccountRegistry { struct ForeignAccounts {
Q_GADGET Q_GADGET
QML_FOREIGN(Quotient::AccountRegistry) QML_ELEMENT
QML_NAMED_ELEMENT(AccountRegistry)
QML_SINGLETON QML_SINGLETON
public: QML_FOREIGN(Integral::Accounts)
static Quotient::AccountRegistry *create(QQmlEngine *, QJSEngine *) QML_NAMED_ELEMENT(Accounts)
static Integral::Accounts *create(QQmlEngine *, QJSEngine *)
{ {
QQmlEngine::setObjectOwnership(&Controller::instance().accounts(), QQmlEngine::CppOwnership); auto &accounts = Controller::instance().accounts();
return &Controller::instance().accounts(); QQmlEngine::setObjectOwnership(&accounts, QQmlEngine::CppOwnership);
return &accounts;
} }
}; };
struct ForeignKeyVerificationSession { struct ForeignHomeserver {
Q_GADGET Q_GADGET
QML_FOREIGN(Quotient::KeyVerificationSession) QML_ELEMENT
QML_NAMED_ELEMENT(KeyVerificationSession) QML_FOREIGN(Integral::Homeserver)
QML_UNCREATABLE("") QML_NAMED_ELEMENT(Homeserver)
}; };
struct ForeignSSSSHandler { struct ForeignConnection {
Q_GADGET Q_GADGET
QML_FOREIGN(Quotient::SSSSHandler) QML_ELEMENT
QML_NAMED_ELEMENT(SSSSHandler) QML_FOREIGN(Integral::Connection)
}; QML_NAMED_ELEMENT(Connection)
struct ForeignKeyImport {
Q_GADGET
QML_SINGLETON
QML_FOREIGN(Quotient::KeyImport)
QML_NAMED_ELEMENT(KeyImport)
}; };

View File

@@ -16,8 +16,15 @@ LoginStep {
onActiveFocusChanged: if (activeFocus) onActiveFocusChanged: if (activeFocus)
matrixIdField.forceActiveFocus() matrixIdField.forceActiveFocus()
Component.onCompleted: { property Homeserver homeserver
LoginHelper.matrixId = "";
Timer {
id: timer
interval: 500
repeat: false
onTriggered: if (matrixIdField.text.length > 0) {
root.homeserver.resolveFromMatrixId(matrixIdField.text)
}
} }
FormCard.FormTextFieldDelegate { FormCard.FormTextFieldDelegate {
@@ -26,7 +33,7 @@ LoginStep {
placeholderText: "@user:example.org" placeholderText: "@user:example.org"
Accessible.name: i18n("Matrix ID") Accessible.name: i18n("Matrix ID")
onTextChanged: { onTextChanged: {
LoginHelper.matrixId = text; timer.restart()
} }
Keys.onReturnPressed: { Keys.onReturnPressed: {
@@ -35,17 +42,17 @@ LoginStep {
} }
nextAction: Kirigami.Action { nextAction: Kirigami.Action {
text: LoginHelper.isLoggedIn ? i18n("Already logged in") : (LoginHelper.testing && matrixIdField.acceptableInput) ? i18n("Loading…") : i18nc("@action:button", "Continue") // text: LoginHelper.isLoggedIn ? i18n("Already logged in") : (LoginHelper.testing && matrixIdField.acceptableInput) ? i18n("Loading…") : i18nc("@action:button", "Continue")
onTriggered: { onTriggered: {
if (LoginHelper.supportsSso && LoginHelper.supportsPassword) { if (root.homeserver.ssoLoginSupported && root.homeserver.passwordLoginSupported) {
processed("LoginMethod"); processed("LoginMethod");
} else if (LoginHelper.supportsSso) { } else if (root.homeserver.ssoLoginSupported) {
processed("Sso"); processed("Sso");
} else { } else {
processed("Password"); processed("Password");
} }
} }
enabled: LoginHelper.homeserverReachable enabled: root.homeserver.loginFlowsLoaded
} }
previousAction: Kirigami.Action { previousAction: Kirigami.Action {
onTriggered: { onTriggered: {

View File

@@ -12,6 +12,8 @@ import org.kde.neochat
LoginStep { LoginStep {
id: root id: root
property Homeserver homeserver
Connections { Connections {
target: LoginHelper target: LoginHelper
function onConnected() { function onConnected() {
@@ -26,7 +28,6 @@ LoginStep {
id: passwordField id: passwordField
label: i18n("Password:") label: i18n("Password:")
onTextChanged: LoginHelper.password = text
enabled: !LoginHelper.isLoggingIn enabled: !LoginHelper.isLoggingIn
echoMode: TextInput.Password echoMode: TextInput.Password
Accessible.name: i18n("Password") Accessible.name: i18n("Password")
@@ -39,10 +40,10 @@ LoginStep {
nextAction: Kirigami.Action { nextAction: Kirigami.Action {
text: i18nc("@action:button", "Login") text: i18nc("@action:button", "Login")
enabled: passwordField.text.length > 0 && !LoginHelper.isLoggingIn // enabled: passwordField.text.length > 0 && !LoginHelper.isLoggingIn
onTriggered: { onTriggered: {
root.clearError(); root.clearError();
LoginHelper.login(); let pending = Accounts.loginWithPassword(root.homeserver.matrixId, passwordField.text)
} }
} }
previousAction: Kirigami.Action { previousAction: Kirigami.Action {

View File

@@ -27,6 +27,10 @@ Kirigami.Page {
title: i18n("Welcome") title: i18n("Welcome")
globalToolBarStyle: Kirigami.ApplicationHeaderStyle.None globalToolBarStyle: Kirigami.ApplicationHeaderStyle.None
Homeserver {
id: homeserver
}
header: QQC2.Control { header: QQC2.Control {
topPadding: 0 topPadding: 0
bottomPadding: 0 bottomPadding: 0
@@ -81,7 +85,7 @@ Kirigami.Page {
FormCard.FormHeader { FormCard.FormHeader {
id: existingAccountsHeader id: existingAccountsHeader
title: i18nc("@title", "Continue with an existing account") title: i18nc("@title", "Continue with an existing account")
visible: (loadedAccounts.count > 0 || loadingAccounts.count > 0) && root._showExisting // visible: (loadedAccounts.count > 0 || loadingAccounts.count > 0) && root._showExisting
maximumWidth: Kirigami.Units.gridUnit * 20 maximumWidth: Kirigami.Units.gridUnit * 20
} }
@@ -90,15 +94,21 @@ Kirigami.Page {
maximumWidth: Kirigami.Units.gridUnit * 20 maximumWidth: Kirigami.Units.gridUnit * 20
Repeater { Repeater {
id: loadedAccounts id: loadedAccounts
model: AccountRegistry model: Accounts
delegate: FormCard.FormButtonDelegate { delegate: FormCard.FormButtonDelegate {
id: delegate id: delegate
required property string userId required property string matrixId
required property NeoChatConnection connection required property string displayName
required property string avatarUrl
required property int index
required property bool ready
required property Connection connection
text: QmlUtils.escapeString(connection.localUser.displayName) enabled: ready
description: connection.localUser.id
text: QmlUtils.escapeString(delegate.displayName)
description: delegate.matrixId
leadingPadding: Kirigami.Units.largeSpacing leadingPadding: Kirigami.Units.largeSpacing
onClicked: { onClicked: {
@@ -109,62 +119,12 @@ Kirigami.Page {
id: avatar id: avatar
name: delegate.text name: delegate.text
// Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl. // Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl.
source: delegate.connection.localUser.avatarUrl.toString().length > 0 ? delegate.connection.makeMediaUrl(delegate.connection.localUser.avatarUrl) : "" source: delegate.avatarUrl
implicitWidth: Kirigami.Units.iconSizes.medium implicitWidth: Kirigami.Units.iconSizes.medium
implicitHeight: Kirigami.Units.iconSizes.medium implicitHeight: Kirigami.Units.iconSizes.medium
} }
} }
} }
Repeater {
id: loadingAccounts
model: Controller.accountsLoading
delegate: FormCard.AbstractFormDelegate {
id: loadingDelegate
topPadding: Kirigami.Units.smallSpacing
bottomPadding: Kirigami.Units.smallSpacing
background: null
contentItem: RowLayout {
spacing: 0
QQC2.Label {
Layout.fillWidth: true
text: i18nc("As in 'this account is still loading'", "%1 (loading)", modelData)
elide: Text.ElideRight
wrapMode: Text.Wrap
maximumLineCount: 2
color: Kirigami.Theme.disabledTextColor
Accessible.ignored: true // base class sets this text on root already
}
QQC2.ToolButton {
text: i18nc("@action:button", "Log out of this account")
icon.name: "im-kick-user"
onClicked: Controller.removeConnection(modelData)
display: QQC2.Button.IconOnly
QQC2.ToolTip.text: text
QQC2.ToolTip.visible: hovered
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
enabled: true
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
}
FormCard.FormArrow {
Layout.leftMargin: Kirigami.Units.smallSpacing
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
direction: Qt.RightArrow
visible: root.background.visible
}
}
}
onCountChanged: {
if (loadingAccounts.count === 0 && loadedAccounts.count === 1 && showExisting) {
Controller.activeConnection = AccountRegistry.data(AccountRegistry.index(0, 0), 257);
root.connectionChosen();
}
}
}
} }
FormCard.FormHeader { FormCard.FormHeader {
@@ -188,6 +148,7 @@ Kirigami.Page {
root.currentStepString = nextStep; root.currentStepString = nextStep;
headerMessage.text = ""; headerMessage.text = "";
headerMessage.visible = false; headerMessage.visible = false;
module.item.homeserver = homeserver
if (!module.item.noControls) { if (!module.item.noControls) {
module.item.forceActiveFocus(); module.item.forceActiveFocus();
} else { } else {
@@ -211,33 +172,33 @@ Kirigami.Page {
} }
} }
Connections { // Connections {
target: Registration // target: Registration
//
function onNextStepChanged() { // function onNextStepChanged() {
if (Registration.nextStep === "m.login.recaptcha") { // if (Registration.nextStep === "m.login.recaptcha") {
stepConnections.onProcessed("Captcha"); // stepConnections.onProcessed("Captcha");
} // }
if (Registration.nextStep === "m.login.terms") { // if (Registration.nextStep === "m.login.terms") {
stepConnections.onProcessed("Terms"); // stepConnections.onProcessed("Terms");
} // }
if (Registration.nextStep === "m.login.email.identity") { // if (Registration.nextStep === "m.login.email.identity") {
stepConnections.onProcessed("Email"); // stepConnections.onProcessed("Email");
} // }
if (Registration.nextStep === "loading") { // if (Registration.nextStep === "loading") {
stepConnections.onProcessed("Loading"); // stepConnections.onProcessed("Loading");
} // }
} // }
} // }
Connections { // Connections {
target: LoginHelper // target: LoginHelper
//
function onLoginErrorOccured(message) { // function onLoginErrorOccured(message) {
headerMessage.text = message; // headerMessage.text = message;
headerMessage.visible = message.length > 0; // headerMessage.visible = message.length > 0;
headerMessage.type = Kirigami.MessageType.Error; // headerMessage.type = Kirigami.MessageType.Error;
} // }
} // }
} }
FormCard.FormDelegateSeparator { FormCard.FormDelegateSeparator {
@@ -276,11 +237,11 @@ Kirigami.Page {
} }
} }
Component.onCompleted: { // Component.onCompleted: {
LoginHelper.init(); // LoginHelper.init();
module.item.forceActiveFocus(); // module.item.forceActiveFocus();
Registration.username = ""; // Registration.username = "";
Registration.password = ""; // Registration.password = "";
Registration.email = ""; // Registration.email = "";
} // }
} }

View File

@@ -13,7 +13,12 @@
#include <QQuickStyle> #include <QQuickStyle>
#include <QQuickWindow> #include <QQuickWindow>
#include <QtQml/QQmlExtensionPlugin> #include <QtQml/QQmlExtensionPlugin>
#include <Quotient/connection.h>
#include <Integral/Connection_p>
#include <Integral/NetworkAccessManager>
#include <Integral/PendingConnection>
// #include <Quotient/connection.h>
#ifdef Q_OS_ANDROID #ifdef Q_OS_ANDROID
#include <QGuiApplication> #include <QGuiApplication>
@@ -43,31 +48,35 @@
#include "neochat-version.h" #include "neochat-version.h"
#include <Quotient/networkaccessmanager.h> // #include <Quotient/networkaccessmanager.h>
#include "blurhashimageprovider.h" #include "blurhashimageprovider.h"
#include "colorschemer.h" #include "colorschemer.h"
#include "controller.h" // #include "controller.h"
#include "logger.h" #include "logger.h"
#include "roommanager.h" // #include "roommanager.h"
#include "sharehandler.h" // #include "sharehandler.h"
#include "neochatconnection.h"
#include "neochatroom.h"
#include "windowcontroller.h" #include "windowcontroller.h"
#ifdef HAVE_RUNNER #ifdef HAVE_RUNNER
#include "runner.h" // #include "runner.h"
#include <QDBusConnection> #include <QDBusConnection>
#include <QDBusMetaType> #include <QDBusMetaType>
#endif #endif
#if defined(HAVE_RUNNER) && defined(HAVE_KUNIFIEDPUSH) #if defined(HAVE_RUNNER) && defined(HAVE_KUNIFIEDPUSH)
#include "fakerunner.h" // #include "fakerunner.h"
#endif #endif
#ifdef Q_OS_WINDOWS #ifdef Q_OS_WINDOWS
#include <Windows.h> #include <Windows.h>
#endif #endif
using namespace Quotient; using namespace Qt::Literals::StringLiterals;
using namespace Integral;
void qml_register_types_org_kde_neochat(); void qml_register_types_org_kde_neochat();
@@ -158,14 +167,14 @@ int main(int argc, char *argv[])
about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
about.setOrganizationDomain("kde.org"); about.setOrganizationDomain("kde.org");
about.addComponent(u"libQuotient"_s, // about.addComponent(u"libQuotient"_s,
i18n("A Qt library to write cross-platform clients for Matrix"), // i18n("A Qt library to write cross-platform clients for Matrix"),
i18nc("<version number> (built against <possibly different version number>)", // i18nc("<version number> (built against <possibly different version number>)",
"%1 (built against %2)", // "%1 (built against %2)",
Quotient::versionString(), // Quotient::versionString(),
QStringLiteral(Quotient_VERSION_STRING)), // QStringLiteral(Quotient_VERSION_STRING)),
u"https://github.com/quotient-im/libquotient"_s, // u"https://github.com/quotient-im/libquotient"_s,
KAboutLicense::LGPL_V2_1); // KAboutLicense::LGPL_V2_1);
KAboutData::setApplicationData(about); KAboutData::setApplicationData(about);
QGuiApplication::setWindowIcon(QIcon::fromTheme(u"org.kde.neochat"_s)); QGuiApplication::setWindowIcon(QIcon::fromTheme(u"org.kde.neochat"_s));
@@ -174,10 +183,13 @@ int main(int argc, char *argv[])
KCrash::initialize(); KCrash::initialize();
#endif #endif
PendingConnection::setConnectionType<NeoChatConnection>();
Connection::setRoomType<NeoChatRoom>();
initLogging(); initLogging();
Connection::setEncryptionDefault(true); // Connection::setEncryptionDefault(true);
Connection::setDirectChatEncryptionDefault(true); // Connection::setDirectChatEncryptionDefault(true);
#ifdef NEOCHAT_FLATPAK #ifdef NEOCHAT_FLATPAK
// Copy over the included FontConfig configuration to the // Copy over the included FontConfig configuration to the
@@ -185,7 +197,7 @@ int main(int argc, char *argv[])
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); 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 #endif
ColorSchemer colorScheme; // ColorSchemer colorScheme;
QCommandLineParser parser; QCommandLineParser parser;
parser.setApplicationDescription(i18n("Client for the matrix communication protocol")); parser.setApplicationDescription(i18n("Client for the matrix communication protocol"));
@@ -208,7 +220,7 @@ int main(int argc, char *argv[])
about.setupCommandLine(&parser); about.setupCommandLine(&parser);
parser.process(app); parser.process(app);
about.processCommandLine(&parser); about.processCommandLine(&parser);
Controller::setTestMode(parser.isSet("test"_L1)); // Controller::setTestMode(parser.isSet("test"_L1));
#ifdef HAVE_KUNIFIEDPUSH #ifdef HAVE_KUNIFIEDPUSH
if (parser.isSet(dbusActivatedOption)) { if (parser.isSet(dbusActivatedOption)) {
@@ -220,10 +232,10 @@ int main(int argc, char *argv[])
// Because KRunner may call us on the D-Bus (under the same service name org.kde.neochat) then it may // Because KRunner may call us on the D-Bus (under the same service name org.kde.neochat) then it may
// accidentally activate us for push notifications instead. If this happens, then immediately quit if the fake // accidentally activate us for push notifications instead. If this happens, then immediately quit if the fake
// runner is called. // runner is called.
QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, new FakeRunner(), QDBusConnection::ExportScriptableContents); // QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, new FakeRunner(), QDBusConnection::ExportScriptableContents);
#endif #endif
Controller::listenForNotifications(); // Controller::listenForNotifications();
return QCoreApplication::exec(); return QCoreApplication::exec();
} }
#endif #endif
@@ -239,51 +251,51 @@ int main(int argc, char *argv[])
Q_IMPORT_QML_PLUGIN(org_kde_neochat_chatbarPlugin) Q_IMPORT_QML_PLUGIN(org_kde_neochat_chatbarPlugin)
qml_register_types_org_kde_neochat(); qml_register_types_org_kde_neochat();
qmlRegisterUncreatableMetaObject(Quotient::staticMetaObject, "Quotient", 1, 0, "JoinRule", u"Access to JoinRule enum only"_s); // qmlRegisterUncreatableMetaObject(Quotient::staticMetaObject, "Quotient", 1, 0, "JoinRule", u"Access to JoinRule enum only"_s);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
#ifdef HAVE_KDBUSADDONS // #ifdef HAVE_KDBUSADDONS
service.connect(&service, // service.connect(&service,
&KDBusService::activateRequested, // &KDBusService::activateRequested,
&RoomManager::instance(), // &RoomManager::instance(),
[&engine](const QStringList &arguments, const QString &workingDirectory) { // [&engine](const QStringList &arguments, const QString &workingDirectory) {
Q_UNUSED(workingDirectory); // Q_UNUSED(workingDirectory);
//
QWindow *window = windowFromEngine(&engine); // QWindow *window = windowFromEngine(&engine);
KWindowSystem::updateStartupId(window); // KWindowSystem::updateStartupId(window);
//
WindowController::instance().showAndRaiseWindow(QString()); // // WindowController::instance().showAndRaiseWindow(QString());
//
// Open matrix uri // // Open matrix uri
if (arguments.isEmpty()) { // if (arguments.isEmpty()) {
return; // return;
} // }
//
auto args = arguments; // auto args = arguments;
args.removeFirst(); // args.removeFirst();
if (args.length() == 2 && args[0] == "--share"_L1) { // if (args.length() == 2 && args[0] == "--share"_L1) {
ShareHandler::instance().setText(args[1]); // // ShareHandler::instance().setText(args[1]);
return; // return;
} // }
//
for (const auto &arg : args) { // for (const auto &arg : args) {
RoomManager::instance().resolveResource(arg); // // RoomManager::instance().resolveResource(arg);
} // }
}); // });
#endif // #endif
engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
engine.setNetworkAccessManagerFactory(new NetworkAccessManagerFactory()); engine.setNetworkAccessManagerFactory(new NetworkAccessManagerFactory());
if (parser.isSet("ignore-ssl-errors"_L1)) { if (parser.isSet("ignore-ssl-errors"_L1)) {
QObject::connect(NetworkAccessManager::instance(), &QNetworkAccessManager::sslErrors, NetworkAccessManager::instance(), [](QNetworkReply *reply) { // QObject::connect(NetworkAccessManager::instance(), &QNetworkAccessManager::sslErrors, NetworkAccessManager::instance(), [](QNetworkReply *reply) {
reply->ignoreSslErrors(); // reply->ignoreSslErrors();
}); // });
} }
if (parser.isSet("share"_L1)) { if (parser.isSet("share"_L1)) {
ShareHandler::instance().setText(parser.value(shareOption)); // ShareHandler::instance().setText(parser.value(shareOption));
} }
engine.addImageProvider(u"blurhash"_s, new BlurhashImageProvider); engine.addImageProvider(u"blurhash"_s, new BlurhashImageProvider);
@@ -294,12 +306,12 @@ int main(int argc, char *argv[])
} }
if (!parser.positionalArguments().isEmpty() && !parser.isSet("share"_L1)) { if (!parser.positionalArguments().isEmpty() && !parser.isSet("share"_L1)) {
RoomManager::instance().setUrlArgument(parser.positionalArguments()[0]); // RoomManager::instance().setUrlArgument(parser.positionalArguments()[0]);
} }
#ifdef HAVE_RUNNER #ifdef HAVE_RUNNER
auto runner = Runner::create(&engine, &engine); // auto runner = Runner::create(&engine, &engine);
QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, runner, QDBusConnection::ExportScriptableContents); // QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, runner, QDBusConnection::ExportScriptableContents);
#endif #endif
QWindow *window = windowFromEngine(&engine); QWindow *window = windowFromEngine(&engine);

126
src/messageattached.cpp Normal file
View File

@@ -0,0 +1,126 @@
// SPDX-FileCopyrightText: 2025 James Graham <james.h.graham@protonmail.com>
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "messageattached.h"
MessageAttached::MessageAttached(QObject *parent)
: QQuickAttachedPropertyPropagator(parent)
{
if (parent == nullptr) {
qWarning() << "Message must be attached to an Item" << parent;
return;
}
initialize();
}
MessageAttached *MessageAttached::qmlAttachedProperties(QObject *object)
{
return new MessageAttached(object);
}
NeoChatRoom *MessageAttached::room() const
{
return m_room;
}
void MessageAttached::setRoom(NeoChatRoom *room)
{
m_explicitRoom = true;
if (m_room == room) {
return;
}
m_room = room;
propagateMessage(this);
Q_EMIT roomChanged();
}
QQuickItem *MessageAttached::timeline() const
{
return m_timeline;
}
void MessageAttached::setTimeline(QQuickItem *timeline)
{
m_explicitTimeline = true;
if (m_timeline == timeline) {
return;
}
m_timeline = timeline;
propagateMessage(this);
Q_EMIT timelineChanged();
}
int MessageAttached::index() const
{
return m_index;
}
void MessageAttached::setIndex(int index)
{
m_explicitIndex = true;
if (m_index == index) {
return;
}
m_index = index;
propagateMessage(this);
Q_EMIT indexChanged();
}
qreal MessageAttached::maxContentWidth() const
{
return m_maxContentWidth;
}
void MessageAttached::setMaxContentWidth(qreal maxContentWidth)
{
m_explicitMaxContentWidth = true;
if (m_maxContentWidth == maxContentWidth) {
return;
}
m_maxContentWidth = maxContentWidth;
propagateMessage(this);
Q_EMIT maxContentWidthChanged();
}
void MessageAttached::propagateMessage(MessageAttached *message)
{
if (m_explicitRoom || m_room != message->room()) {
m_room = message->room();
Q_EMIT roomChanged();
}
if (m_explicitTimeline || m_timeline != message->timeline()) {
m_timeline = message->timeline();
Q_EMIT timelineChanged();
}
if (m_explicitIndex || m_index != message->index()) {
m_index = message->index();
Q_EMIT indexChanged();
}
if (m_explicitMaxContentWidth || m_maxContentWidth != message->maxContentWidth()) {
m_maxContentWidth = message->maxContentWidth();
Q_EMIT maxContentWidthChanged();
}
const auto styles = attachedChildren();
for (auto *child : attachedChildren()) {
MessageAttached *message = qobject_cast<MessageAttached *>(child);
if (message != nullptr) {
message->propagateMessage(this);
}
}
}
void MessageAttached::attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent)
{
Q_UNUSED(oldParent);
MessageAttached *attachedParent = qobject_cast<MessageAttached *>(newParent);
if (attachedParent) {
propagateMessage(attachedParent);
}
}
#include "moc_messageattached.cpp"

78
src/messageattached.h Normal file
View File

@@ -0,0 +1,78 @@
// SPDX-FileCopyrightText: 2025 James Graham <james.h.graham@protonmail.com>
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#pragma once
#include <QQmlEngine>
#include <QQuickAttachedPropertyPropagator>
#include <QQuickItem>
#include "neochatroom.h"
class MessageAttached : public QQuickAttachedPropertyPropagator
{
Q_OBJECT
QML_NAMED_ELEMENT(Message)
QML_ATTACHED(MessageAttached)
QML_UNCREATABLE("")
/**
* @brief The room that the message comes from.
*/
Q_PROPERTY(NeoChatRoom *room READ room WRITE setRoom NOTIFY roomChanged FINAL)
/**
* @brief The timeline for the current message.
*/
Q_PROPERTY(QQuickItem *timeline READ timeline WRITE setTimeline NOTIFY timelineChanged FINAL)
/**
* @brief The index of the message in the timeline
*/
Q_PROPERTY(int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
/**
* @brief The width available to the message content.
*/
Q_PROPERTY(qreal maxContentWidth READ maxContentWidth WRITE setMaxContentWidth NOTIFY maxContentWidthChanged FINAL)
public:
explicit MessageAttached(QObject *parent = nullptr);
static MessageAttached *qmlAttachedProperties(QObject *object);
NeoChatRoom *room() const;
void setRoom(NeoChatRoom *room);
QQuickItem *timeline() const;
void setTimeline(QQuickItem *timeline);
int index() const;
void setIndex(int index);
qreal maxContentWidth() const;
void setMaxContentWidth(qreal maxContentWidth);
Q_SIGNALS:
void roomChanged();
void timelineChanged();
void indexChanged();
void maxContentWidthChanged();
protected:
void propagateMessage(MessageAttached *message);
void attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent) override;
private:
QPointer<NeoChatRoom> m_room;
bool m_explicitRoom = false;
QPointer<QQuickItem> m_timeline;
bool m_explicitTimeline = false;
int m_index;
bool m_explicitIndex = false;
qreal m_maxContentWidth = -1;
bool m_explicitMaxContentWidth = false;
};

View File

@@ -4,23 +4,23 @@
#include "completionmodel.h" #include "completionmodel.h"
#include <QDebug> #include <QDebug>
#include "actionsmodel.h" // #include "actionsmodel.h"
#include "completionproxymodel.h" // #include "completionproxymodel.h"
#include "customemojimodel.h" // #include "customemojimodel.h"
#include "emojimodel.h" // #include "emojimodel.h"
#include "neochatroom.h" #include "neochatroom.h"
#include "roommanager.h" // #include "roommanager.h"
#include "userlistmodel.h" // #include "userlistmodel.h"
CompletionModel::CompletionModel(QObject *parent) CompletionModel::CompletionModel(QObject *parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
, m_filterModel(new CompletionProxyModel()) // , m_filterModel(new CompletionProxyModel())
, m_userListModel(RoomManager::instance().userListModel()) // , m_userListModel(RoomManager::instance().userListModel())
, m_emojiModel(new QConcatenateTablesProxyModel(this)) , m_emojiModel(new QConcatenateTablesProxyModel(this))
{ {
connect(this, &CompletionModel::textChanged, this, &CompletionModel::updateCompletion); connect(this, &CompletionModel::textChanged, this, &CompletionModel::updateCompletion);
m_emojiModel->addSourceModel(&CustomEmojiModel::instance()); // m_emojiModel->addSourceModel(&CustomEmojiModel::instance());
m_emojiModel->addSourceModel(&EmojiModel::instance()); // m_emojiModel->addSourceModel(&EmojiModel::instance());
} }
QString CompletionModel::text() const QString CompletionModel::text() const
@@ -41,67 +41,68 @@ int CompletionModel::rowCount(const QModelIndex &parent) const
if (m_autoCompletionType == None) { if (m_autoCompletionType == None) {
return 0; return 0;
} }
return m_filterModel->rowCount(); // return m_filterModel->rowCount();
return {};
} }
QVariant CompletionModel::data(const QModelIndex &index, int role) const QVariant CompletionModel::data(const QModelIndex &index, int role) const
{ {
if (index.row() < 0 || index.row() >= m_filterModel->rowCount()) { // if (index.row() < 0 || index.row() >= m_filterModel->rowCount()) {
return {}; // return {};
} // }
auto filterIndex = m_filterModel->index(index.row(), 0); // auto filterIndex = m_filterModel->index(index.row(), 0);
if (m_autoCompletionType == User) { // if (m_autoCompletionType == User) {
if (role == DisplayNameRole) { // if (role == DisplayNameRole) {
return m_filterModel->data(filterIndex, UserListModel::DisplayNameRole); // return m_filterModel->data(filterIndex, UserListModel::DisplayNameRole);
} // }
if (role == SubtitleRole) { // if (role == SubtitleRole) {
return m_filterModel->data(filterIndex, UserListModel::UserIdRole); // return m_filterModel->data(filterIndex, UserListModel::UserIdRole);
} // }
if (role == IconNameRole) { // if (role == IconNameRole) {
return m_filterModel->data(filterIndex, UserListModel::AvatarRole); // return m_filterModel->data(filterIndex, UserListModel::AvatarRole);
} // }
} // }
//
if (m_autoCompletionType == Command) { // if (m_autoCompletionType == Command) {
if (role == DisplayNameRole) { // if (role == DisplayNameRole) {
return u"%1 %2"_s.arg(m_filterModel->data(filterIndex, ActionsModel::Prefix).toString(), // return u"%1 %2"_s.arg(m_filterModel->data(filterIndex, ActionsModel::Prefix).toString(),
m_filterModel->data(filterIndex, ActionsModel::Parameters).toString()); // m_filterModel->data(filterIndex, ActionsModel::Parameters).toString());
} // }
if (role == SubtitleRole) { // if (role == SubtitleRole) {
return m_filterModel->data(filterIndex, ActionsModel::Description); // return m_filterModel->data(filterIndex, ActionsModel::Description);
} // }
if (role == IconNameRole) { // if (role == IconNameRole) {
return u"invalid"_s; // return u"invalid"_s;
} // }
if (role == ReplacedTextRole) { // if (role == ReplacedTextRole) {
return m_filterModel->data(filterIndex, ActionsModel::Prefix); // return m_filterModel->data(filterIndex, ActionsModel::Prefix);
} // }
} // }
if (m_autoCompletionType == Room) { // if (m_autoCompletionType == Room) {
if (role == DisplayNameRole) { // if (role == DisplayNameRole) {
return m_filterModel->data(filterIndex, RoomListModel::DisplayNameRole); // return m_filterModel->data(filterIndex, RoomListModel::DisplayNameRole);
} // }
if (role == SubtitleRole) { // if (role == SubtitleRole) {
return m_filterModel->data(filterIndex, RoomListModel::CanonicalAliasRole); // return m_filterModel->data(filterIndex, RoomListModel::CanonicalAliasRole);
} // }
if (role == IconNameRole) { // if (role == IconNameRole) {
return m_filterModel->data(filterIndex, RoomListModel::AvatarRole).toString(); // return m_filterModel->data(filterIndex, RoomListModel::AvatarRole).toString();
} // }
} // }
if (m_autoCompletionType == Emoji) { // if (m_autoCompletionType == Emoji) {
if (role == DisplayNameRole) { // if (role == DisplayNameRole) {
return m_filterModel->data(filterIndex, CustomEmojiModel::DisplayRole); // return m_filterModel->data(filterIndex, CustomEmojiModel::DisplayRole);
} // }
if (role == IconNameRole) { // if (role == IconNameRole) {
return m_filterModel->data(filterIndex, CustomEmojiModel::MxcUrl); // return m_filterModel->data(filterIndex, CustomEmojiModel::MxcUrl);
} // }
if (role == ReplacedTextRole) { // if (role == ReplacedTextRole) {
return m_filterModel->data(filterIndex, CustomEmojiModel::ReplacedTextRole); // return m_filterModel->data(filterIndex, CustomEmojiModel::ReplacedTextRole);
} // }
if (role == SubtitleRole) { // if (role == SubtitleRole) {
return m_filterModel->data(filterIndex, EmojiModel::DescriptionRole); // return m_filterModel->data(filterIndex, EmojiModel::DescriptionRole);
} // }
} // }
return {}; return {};
} }
@@ -118,50 +119,50 @@ QHash<int, QByteArray> CompletionModel::roleNames() const
void CompletionModel::updateCompletion() void CompletionModel::updateCompletion()
{ {
if (text().startsWith(QLatin1Char('@'))) { // if (text().startsWith(QLatin1Char('@'))) {
m_filterModel->setSourceModel(m_userListModel); // m_filterModel->setSourceModel(m_userListModel);
m_filterModel->setFilterRole(UserListModel::UserIdRole); // m_filterModel->setFilterRole(UserListModel::UserIdRole);
m_filterModel->setSecondaryFilterRole(UserListModel::DisplayNameRole); // m_filterModel->setSecondaryFilterRole(UserListModel::DisplayNameRole);
m_filterModel->setFullText(m_fullText); // m_filterModel->setFullText(m_fullText);
m_filterModel->setFilterText(m_text); // m_filterModel->setFilterText(m_text);
m_autoCompletionType = User; // m_autoCompletionType = User;
m_filterModel->invalidate(); // m_filterModel->invalidate();
} else if (text().startsWith(QLatin1Char('/'))) { // } else if (text().startsWith(QLatin1Char('/'))) {
m_filterModel->setSourceModel(&ActionsModel::instance()); // m_filterModel->setSourceModel(&ActionsModel::instance());
m_filterModel->setFilterRole(ActionsModel::Prefix); // m_filterModel->setFilterRole(ActionsModel::Prefix);
m_filterModel->setSecondaryFilterRole(-1); // m_filterModel->setSecondaryFilterRole(-1);
m_filterModel->setFullText(m_fullText); // m_filterModel->setFullText(m_fullText);
m_filterModel->setFilterText(m_text.mid(1)); // m_filterModel->setFilterText(m_text.mid(1));
m_autoCompletionType = Command; // m_autoCompletionType = Command;
m_filterModel->invalidate(); // m_filterModel->invalidate();
} else if (text().startsWith(QLatin1Char('#'))) { // } else if (text().startsWith(QLatin1Char('#'))) {
m_autoCompletionType = Room; // m_autoCompletionType = Room;
m_filterModel->setSourceModel(m_roomListModel); // m_filterModel->setSourceModel(m_roomListModel);
m_filterModel->setFilterRole(RoomListModel::CanonicalAliasRole); // m_filterModel->setFilterRole(RoomListModel::CanonicalAliasRole);
m_filterModel->setSecondaryFilterRole(RoomListModel::DisplayNameRole); // m_filterModel->setSecondaryFilterRole(RoomListModel::DisplayNameRole);
m_filterModel->setFullText(m_fullText); // m_filterModel->setFullText(m_fullText);
m_filterModel->setFilterText(m_text); // m_filterModel->setFilterText(m_text);
m_filterModel->invalidate(); // m_filterModel->invalidate();
} else if (text().startsWith(QLatin1Char(':')) && text().size() > 1 && !text()[1].isUpper() // } else if (text().startsWith(QLatin1Char(':')) && text().size() > 1 && !text()[1].isUpper()
&& (m_fullText.indexOf(QLatin1Char(':'), 1) == -1 // && (m_fullText.indexOf(QLatin1Char(':'), 1) == -1
|| (m_fullText.indexOf(QLatin1Char(' ')) != -1 && m_fullText.indexOf(QLatin1Char(':'), 1) > m_fullText.indexOf(QLatin1Char(' '), 1)))) { // || (m_fullText.indexOf(QLatin1Char(' ')) != -1 && m_fullText.indexOf(QLatin1Char(':'), 1) > m_fullText.indexOf(QLatin1Char(' '), 1)))) {
m_filterModel->setSourceModel(m_emojiModel); // m_filterModel->setSourceModel(m_emojiModel);
m_autoCompletionType = Emoji; // m_autoCompletionType = Emoji;
m_filterModel->setFilterRole(CustomEmojiModel::Name); // m_filterModel->setFilterRole(CustomEmojiModel::Name);
m_filterModel->setSecondaryFilterRole(EmojiModel::DescriptionRole); // m_filterModel->setSecondaryFilterRole(EmojiModel::DescriptionRole);
m_filterModel->setFullText(m_fullText); // m_filterModel->setFullText(m_fullText);
m_filterModel->setFilterText(m_text); // m_filterModel->setFilterText(m_text);
m_filterModel->invalidate(); // m_filterModel->invalidate();
} else { // } else {
m_autoCompletionType = None; // m_autoCompletionType = None;
} // }
beginResetModel(); beginResetModel();
endResetModel(); endResetModel();
} }
NeoChatRoom *CompletionModel::room() const NeoChatRoom *CompletionModel::room() const
{ {
return m_room; return m_room.get();
} }
void CompletionModel::setRoom(NeoChatRoom *room) void CompletionModel::setRoom(NeoChatRoom *room)

View File

@@ -7,7 +7,7 @@
#include <QQmlEngine> #include <QQmlEngine>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include "roomlistmodel.h" // #include "roomlistmodel.h"
class CompletionProxyModel; class CompletionProxyModel;
class UserListModel; class UserListModel;
@@ -47,7 +47,7 @@ class CompletionModel : public QAbstractListModel
/** /**
* @brief The RoomListModel to be used for room completions. * @brief The RoomListModel to be used for room completions.
*/ */
Q_PROPERTY(RoomListModel *roomListModel READ roomListModel WRITE setRoomListModel NOTIFY roomListModelChanged) // Q_PROPERTY(RoomListModel *roomListModel READ roomListModel WRITE setRoomListModel NOTIFY roomListModelChanged)
public: public:
/** /**

View File

@@ -5,10 +5,10 @@
#include <QDebug> #include <QDebug>
#include <Quotient/converters.h> // #include <Quotient/converters.h>
#include <Quotient/csapi/definitions/push_ruleset.h> // #include <Quotient/csapi/definitions/push_ruleset.h>
#include <Quotient/csapi/pushrules.h> // #include <Quotient/csapi/pushrules.h>
#include <Quotient/jobs/basejob.h> // #include <Quotient/jobs/basejob.h>
#include "neochatconfig.h" #include "neochatconfig.h"
@@ -74,18 +74,18 @@ void PushRuleModel::updateNotificationRules(const QString &type)
return; return;
} }
const QJsonObject ruleDataJson = m_connection->accountDataJson(u"m.push_rules"_s); // const QJsonObject ruleDataJson = m_connection->accountDataJson(u"m.push_rules"_s);
const Quotient::PushRuleset ruleData = Quotient::fromJson<Quotient::PushRuleset>(ruleDataJson["global"_L1].toObject()); // const Quotient::PushRuleset ruleData = Quotient::fromJson<Quotient::PushRuleset>(ruleDataJson["global"_L1].toObject());
beginResetModel(); beginResetModel();
m_rules.clear(); m_rules.clear();
// Doing this 5 times because PushRuleset is a struct. // Doing this 5 times because PushRuleset is a struct.
setRules(ruleData.override, PushRuleKind::Override); // setRules(ruleData.override, PushRuleKind::Override);
setRules(ruleData.content, PushRuleKind::Content); // setRules(ruleData.content, PushRuleKind::Content);
setRules(ruleData.room, PushRuleKind::Room); // setRules(ruleData.room, PushRuleKind::Room);
setRules(ruleData.sender, PushRuleKind::Sender); // setRules(ruleData.sender, PushRuleKind::Sender);
setRules(ruleData.underride, PushRuleKind::Underride); // setRules(ruleData.underride, PushRuleKind::Underride);
Q_EMIT globalNotificationsEnabledChanged(); Q_EMIT globalNotificationsEnabledChanged();
Q_EMIT globalNotificationsSetChanged(); Q_EMIT globalNotificationsSetChanged();
@@ -93,28 +93,28 @@ void PushRuleModel::updateNotificationRules(const QString &type)
endResetModel(); endResetModel();
} }
void PushRuleModel::setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind) // void PushRuleModel::setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind)
{ // {
for (const auto &rule : rules) { // for (const auto &rule : rules) {
QString roomId; // QString roomId;
if (rule.conditions.size() > 0) { // if (rule.conditions.size() > 0) {
for (const auto &condition : std::as_const(rule.conditions)) { // for (const auto &condition : std::as_const(rule.conditions)) {
if (condition.key == u"room_id"_s) { // if (condition.key == u"room_id"_s) {
roomId = condition.pattern; // roomId = condition.pattern;
} // }
} // }
} // }
//
m_rules.append(Rule{ // m_rules.append(Rule{
rule.ruleId, // rule.ruleId,
kind, // kind,
variantToAction(rule.actions, rule.enabled), // variantToAction(rule.actions, rule.enabled),
getSection(rule), // getSection(rule),
rule.enabled, // rule.enabled,
roomId, // roomId,
}); // });
} // }
} // }
int PushRuleModel::getRuleIndex(const QString &ruleId) const int PushRuleModel::getRuleIndex(const QString &ruleId) const
{ {
@@ -126,51 +126,51 @@ int PushRuleModel::getRuleIndex(const QString &ruleId) const
return -1; return -1;
} }
PushRuleSection::Section PushRuleModel::getSection(Quotient::PushRule rule) // PushRuleSection::Section PushRuleModel::getSection(Quotient::PushRule rule)
{ // {
auto ruleId = rule.ruleId; // auto ruleId = rule.ruleId;
//
if (defaultSections.contains(ruleId)) { // if (defaultSections.contains(ruleId)) {
return defaultSections.value(ruleId); // return defaultSections.value(ruleId);
} else { // } else {
if (rule.ruleId.startsWith(u'.')) { // if (rule.ruleId.startsWith(u'.')) {
return PushRuleSection::Unknown; // return PushRuleSection::Unknown;
} // }
/** // /**
* If the rule name resolves to a matrix id for a room that the user is part // * If the rule name resolves to a matrix id for a room that the user is part
* of it shouldn't appear in the global list as it's overriding the global // * of it shouldn't appear in the global list as it's overriding the global
* state for that room. // * state for that room.
* // *
* Rooms that the user hasn't joined shouldn't have a rule. // * Rooms that the user hasn't joined shouldn't have a rule.
*/ // */
if (m_connection->room(ruleId) != nullptr) { // if (m_connection->room(ruleId) != nullptr) {
return PushRuleSection::Undefined; // return PushRuleSection::Undefined;
} // }
/** // /**
* If the rule name resolves to a matrix id for a user it shouldn't appear // * If the rule name resolves to a matrix id for a user it shouldn't appear
* in the global list as it's a rule to block notifications from a user and // * in the global list as it's a rule to block notifications from a user and
* is handled elsewhere. // * is handled elsewhere.
*/ // */
auto testUserId = ruleId; // auto testUserId = ruleId;
// Rules for user matrix IDs often don't have the @ on the beginning so add // // Rules for user matrix IDs often don't have the @ on the beginning so add
// if not there to avoid malformed ID. // // if not there to avoid malformed ID.
if (!testUserId.startsWith(u'@')) { // if (!testUserId.startsWith(u'@')) {
testUserId.prepend(u'@'); // testUserId.prepend(u'@');
} // }
if (testUserId.startsWith(u'@') && !Quotient::serverPart(testUserId).isEmpty() && m_connection->user(testUserId) != nullptr) { // if (testUserId.startsWith(u'@') && !Quotient::serverPart(testUserId).isEmpty() && m_connection->user(testUserId) != nullptr) {
return PushRuleSection::Undefined; // return PushRuleSection::Undefined;
} // }
// If the rule has push conditions and one is a room ID it is a room only keyword. // // If the rule has push conditions and one is a room ID it is a room only keyword.
if (!rule.conditions.isEmpty()) { // if (!rule.conditions.isEmpty()) {
for (const auto &condition : std::as_const(rule.conditions)) { // for (const auto &condition : std::as_const(rule.conditions)) {
if (condition.key == u"room_id"_s) { // if (condition.key == u"room_id"_s) {
return PushRuleSection::RoomKeywords; // return PushRuleSection::RoomKeywords;
} // }
} // }
} // }
return PushRuleSection::Keywords; // return PushRuleSection::Keywords;
} // }
} // }
PushRuleAction::Action PushRuleModel::defaultState() const PushRuleAction::Action PushRuleModel::defaultState() const
{ {
@@ -294,33 +294,33 @@ void PushRuleModel::addKeyword(const QString &keyword, const QString &roomId)
{ {
PushRuleKind::Kind kind = PushRuleKind::Content; PushRuleKind::Kind kind = PushRuleKind::Content;
const QList<QVariant> actions = actionToVariant(m_defaultKeywordAction); const QList<QVariant> actions = actionToVariant(m_defaultKeywordAction);
QList<Quotient::PushCondition> pushConditions; // QList<Quotient::PushCondition> pushConditions;
if (!roomId.isEmpty()) { // if (!roomId.isEmpty()) {
kind = PushRuleKind::Override; // kind = PushRuleKind::Override;
//
Quotient::PushCondition roomCondition; // Quotient::PushCondition roomCondition;
roomCondition.kind = u"event_match"_s; // roomCondition.kind = u"event_match"_s;
roomCondition.key = u"room_id"_s; // roomCondition.key = u"room_id"_s;
roomCondition.pattern = roomId; // roomCondition.pattern = roomId;
pushConditions.append(roomCondition); // pushConditions.append(roomCondition);
//
Quotient::PushCondition keywordCondition; // Quotient::PushCondition keywordCondition;
keywordCondition.kind = u"event_match"_s; // keywordCondition.kind = u"event_match"_s;
keywordCondition.key = u"content.body"_s; // keywordCondition.key = u"content.body"_s;
keywordCondition.pattern = keyword; // keywordCondition.pattern = keyword;
pushConditions.append(keywordCondition); // pushConditions.append(keywordCondition);
} // }
//
auto job = m_connection->callApi<Quotient::SetPushRuleJob>(PushRuleKind::kindString(kind), // auto job = m_connection->callApi<Quotient::SetPushRuleJob>(PushRuleKind::kindString(kind),
keyword, // keyword,
actions, // actions,
QString(), // QString(),
QString(), // QString(),
pushConditions, // pushConditions,
roomId.isEmpty() ? keyword : QString()); // roomId.isEmpty() ? keyword : QString());
connect(job, &Quotient::BaseJob::failure, this, [job, keyword]() { // connect(job, &Quotient::BaseJob::failure, this, [job, keyword]() {
qWarning() << "Unable to set push rule for keyword %1: "_L1.arg(keyword) << job->errorString(); // qWarning() << "Unable to set push rule for keyword %1: "_L1.arg(keyword) << job->errorString();
}); // });
} }
/** /**
@@ -336,20 +336,20 @@ void PushRuleModel::removeKeyword(const QString &keyword)
} }
auto kind = PushRuleKind::kindString(m_rules[index].kind); auto kind = PushRuleKind::kindString(m_rules[index].kind);
auto job = m_connection->callApi<Quotient::DeletePushRuleJob>(kind, m_rules[index].id); // auto job = m_connection->callApi<Quotient::DeletePushRuleJob>(kind, m_rules[index].id);
connect(job, &Quotient::BaseJob::failure, this, [this, job, index]() { // connect(job, &Quotient::BaseJob::failure, this, [this, job, index]() {
qWarning() << "Unable to remove push rule for keyword %1: "_L1.arg(m_rules[index].id) << job->errorString(); // qWarning() << "Unable to remove push rule for keyword %1: "_L1.arg(m_rules[index].id) << job->errorString();
}); // });
} }
void PushRuleModel::setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled) void PushRuleModel::setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled)
{ {
auto job = m_connection->callApi<Quotient::IsPushRuleEnabledJob>(kind, ruleId); // auto job = m_connection->callApi<Quotient::IsPushRuleEnabledJob>(kind, ruleId);
connect(job, &Quotient::BaseJob::success, this, [job, kind, ruleId, enabled, this]() { // connect(job, &Quotient::BaseJob::success, this, [job, kind, ruleId, enabled, this]() {
if (job->enabled() != enabled) { // if (job->enabled() != enabled) {
m_connection->callApi<Quotient::SetPushRuleEnabledJob>(kind, ruleId, enabled); // m_connection->callApi<Quotient::SetPushRuleEnabledJob>(kind, ruleId, enabled);
} // }
}); // });
} }
void PushRuleModel::setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action) void PushRuleModel::setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action)
@@ -361,7 +361,7 @@ void PushRuleModel::setNotificationRuleActions(const QString &kind, const QStrin
actions = actionToVariant(action); actions = actionToVariant(action);
} }
m_connection->callApi<Quotient::SetPushRuleActionsJob>(kind, ruleId, actions); // m_connection->callApi<Quotient::SetPushRuleActionsJob>(kind, ruleId, actions);
} }
PushRuleAction::Action PushRuleModel::variantToAction(const QList<QVariant> &actions, bool enabled) PushRuleAction::Action PushRuleModel::variantToAction(const QList<QVariant> &actions, bool enabled)
@@ -378,14 +378,14 @@ PushRuleAction::Action PushRuleModel::variantToAction(const QList<QVariant> &act
continue; continue;
} }
QJsonObject action = i.toJsonObject(); // QJsonObject action = i.toJsonObject();
if (action["set_tweak"_L1].toString() == u"sound"_s) { // if (action["set_tweak"_L1].toString() == u"sound"_s) {
isNoisy = true; // isNoisy = true;
} else if (action["set_tweak"_L1].toString() == u"highlight"_s) { // } else if (action["set_tweak"_L1].toString() == u"highlight"_s) {
if (action["value"_L1].toString() != u"false"_s) { // if (action["value"_L1].toString() != u"false"_s) {
highlightEnabled = true; // highlightEnabled = true;
} // }
} // }
} }
if (!enabled) { if (!enabled) {
@@ -424,15 +424,15 @@ QList<QVariant> PushRuleModel::actionToVariant(PushRuleAction::Action action, co
actions.append(u"dont_notify"_s); actions.append(u"dont_notify"_s);
} }
if (action == PushRuleAction::Noisy || action == PushRuleAction::NoisyHighlight) { if (action == PushRuleAction::Noisy || action == PushRuleAction::NoisyHighlight) {
QJsonObject soundTweak; // QJsonObject soundTweak;
soundTweak.insert("set_tweak"_L1, u"sound"_s); // soundTweak.insert("set_tweak"_L1, u"sound"_s);
soundTweak.insert("value"_L1, sound); // soundTweak.insert("value"_L1, sound);
actions.append(soundTweak); // actions.append(soundTweak);
} }
if (action == PushRuleAction::Highlight || action == PushRuleAction::NoisyHighlight) { if (action == PushRuleAction::Highlight || action == PushRuleAction::NoisyHighlight) {
QJsonObject highlightTweak; // QJsonObject highlightTweak;
highlightTweak.insert("set_tweak"_L1, u"highlight"_s); // highlightTweak.insert("set_tweak"_L1, u"highlight"_s);
actions.append(highlightTweak); // actions.append(highlightTweak);
} }
return actions; return actions;
@@ -452,7 +452,7 @@ void PushRuleModel::setConnection(NeoChatConnection *connection)
Q_EMIT connectionChanged(); Q_EMIT connectionChanged();
if (m_connection) { if (m_connection) {
connect(m_connection, &NeoChatConnection::accountDataChanged, this, &PushRuleModel::updateNotificationRules); // connect(m_connection, &NeoChatConnection::accountDataChanged, this, &PushRuleModel::updateNotificationRules);
updateNotificationRules(u"m.push_rules"_s); updateNotificationRules(u"m.push_rules"_s);
} }
} }

View File

@@ -6,7 +6,7 @@
#include <QAbstractListModel> #include <QAbstractListModel>
#include <QQmlEngine> #include <QQmlEngine>
#include <Quotient/csapi/definitions/push_rule.h> // #include <Quotient/csapi/definitions/push_rule.h>
#include "enums/pushrule.h" #include "enums/pushrule.h"
#include "neochatconnection.h" #include "neochatconnection.h"
@@ -130,10 +130,10 @@ private:
QList<Rule> m_rules; QList<Rule> m_rules;
QPointer<NeoChatConnection> m_connection; QPointer<NeoChatConnection> m_connection;
void setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind); // void setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind);
int getRuleIndex(const QString &ruleId) const; int getRuleIndex(const QString &ruleId) const;
PushRuleSection::Section getSection(Quotient::PushRule rule); // PushRuleSection::Section getSection(Quotient::PushRule rule);
void setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled); void setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled);
void setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action); void setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action);

View File

@@ -12,11 +12,11 @@ RoomTreeItem::RoomTreeItem(TreeData data, RoomTreeItem *parent)
bool RoomTreeItem::operator==(const RoomTreeItem &other) const bool RoomTreeItem::operator==(const RoomTreeItem &other) const
{ {
if (std::holds_alternative<NeoChatRoomType::Types>(m_data) && std::holds_alternative<NeoChatRoomType::Types>(other.data())) { if (std::holds_alternative<NeoChatRoomType::Type>(m_data) && std::holds_alternative<NeoChatRoomType::Type>(other.data())) {
return std::get<NeoChatRoomType::Types>(m_data) == std::get<NeoChatRoomType::Types>(m_data); return std::get<NeoChatRoomType::Type>(m_data) == std::get<NeoChatRoomType::Type>(m_data);
} }
if (std::holds_alternative<NeoChatRoom *>(m_data) && std::holds_alternative<NeoChatRoom *>(other.data())) { if (std::holds_alternative<RoomWrapper *>(m_data) && std::holds_alternative<RoomWrapper *>(other.data())) {
return std::get<NeoChatRoom *>(m_data)->id() == std::get<NeoChatRoom *>(m_data)->id(); return (*std::get<RoomWrapper *>(m_data)->item)->id() == (*std::get<RoomWrapper *>(other.data())->item)->id();
} }
return false; return false;
} }
@@ -84,13 +84,13 @@ RoomTreeItem::TreeData RoomTreeItem::data() const
return m_data; return m_data;
} }
std::optional<int> RoomTreeItem::rowForRoom(Quotient::Room *room) const std::optional<int> RoomTreeItem::rowForRoom(rust::Box<sdk::RoomListRoom> room) const
{ {
Q_ASSERT_X(std::holds_alternative<NeoChatRoomType::Types>(m_data), __FUNCTION__, "rowForRoom only works items for rooms not categories"); Q_ASSERT_X(std::holds_alternative<NeoChatRoomType::Type>(m_data), __FUNCTION__, "rowForRoom only works items for rooms not categories");
int i = 0; int i = 0;
for (const auto &child : m_children) { for (const auto &child : m_children) {
if (std::get<NeoChatRoom *>(child->data()) == room) { if ((*std::get<RoomWrapper *>(child->data())->item)->id() == room->id()) {
return i; return i;
} }
i++; i++;

View File

@@ -1,27 +1,28 @@
// SPDX-FileCopyrightText: 2024 Carl Schwan <carl@carlschwan.eu> // SPDX-FileCopyrightText: 2024 Carl Schwan <carl@carlschwan.eu>
// SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com> // SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com>
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "enums/neochatroomtype.h" #include "neochatroomtype.h"
class NeoChatRoom; namespace sdk
{
struct RoomListRoom;
}
struct RoomWrapper {
std::optional<rust::Box<sdk::RoomListRoom>> item;
};
/** /**
* @class RoomTreeItem * @class RoomTreeItem
* *
* This class defines an item in the space tree hierarchy model. * This class defines an item in a room tree.
*
* @note This is separate from Quotient::Room and NeoChatRoom because we don't have
* full room information for any room/space the user hasn't joined and we
* don't want to create one for ever possible child in a space as that would
* be expensive.
*
* @sa Quotient::Room, NeoChatRoom
*/ */
class RoomTreeItem class RoomTreeItem
{ {
public: public:
using TreeData = std::variant<NeoChatRoom *, NeoChatRoomType::Types>; using TreeData = std::variant<RoomWrapper *, NeoChatRoomType::Type>;
explicit RoomTreeItem(TreeData data, RoomTreeItem *parent = nullptr); explicit RoomTreeItem(TreeData data, RoomTreeItem *parent = nullptr);
@@ -68,7 +69,7 @@ public:
*/ */
TreeData data() const; TreeData data() const;
std::optional<int> rowForRoom(Quotient::Room *room) const; std::optional<int> rowForRoom(rust::Box<sdk::RoomListRoom> room) const;
private: private:
std::vector<std::unique_ptr<RoomTreeItem>> m_children; std::vector<std::unique_ptr<RoomTreeItem>> m_children;

View File

@@ -1,23 +1,45 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org> // SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later // SPDX-License-Identifier: LGPL-2.0-or-later
#include "roomtreemodel.h" #include "roomtreemodel.h"
#include <Quotient/room.h>
#include "eventhandler.h"
#include "neochatconnection.h" #include "neochatconnection.h"
// #include "eventhandler.h"
#include "neochatroomtype.h" #include "neochatroomtype.h"
#include "spacehierarchycache.h" #include "rust/cxx.h"
#include <Integral/lib.rs.h>
// #include "spacehierarchycache.h"
#include <Integral/RoomStream>
#include <Integral/Utils>
using namespace Quotient; using namespace Integral;
class RoomTreeModel::Private
{
public:
QPointer<Integral::Connection> connection;
std::unique_ptr<RoomStream> roomStream = nullptr;
std::unique_ptr<RoomTreeItem> rootItem;
// Since the rooms are streamed as vector diffs we need to keep track of them
// for things like the index value of insert to make sense.
QList<QPersistentModelIndex> roomIndexes;
void roomsUpdate();
void resetTree();
RoomTreeModel *q = nullptr;
};
RoomTreeModel::RoomTreeModel(QObject *parent) RoomTreeModel::RoomTreeModel(QObject *parent)
: QAbstractItemModel(parent) : QAbstractItemModel(parent)
, m_rootItem(new RoomTreeItem(nullptr)) , d(std::make_unique<Private>())
{ {
d->q = this;
} }
RoomTreeModel::~RoomTreeModel() = default;
RoomTreeItem *RoomTreeModel::getItem(const QModelIndex &index) const RoomTreeItem *RoomTreeModel::getItem(const QModelIndex &index) const
{ {
if (index.isValid()) { if (index.isValid()) {
@@ -26,179 +48,226 @@ RoomTreeItem *RoomTreeModel::getItem(const QModelIndex &index) const
return item; return item;
} }
} }
return m_rootItem.get(); return d->rootItem.get();
} }
void RoomTreeModel::resetModel() void RoomTreeModel::resetModel()
{ {
if (m_connection == nullptr) { if (d->connection == nullptr) {
beginResetModel(); beginResetModel();
m_rootItem.reset(); d->rootItem.reset();
d->roomStream.reset();
endResetModel(); endResetModel();
return; return;
} }
beginResetModel(); beginResetModel();
m_rootItem.reset(new RoomTreeItem(nullptr)); d->resetTree();
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) { d->roomStream = d->connection->roomStream();
m_rootItem->insertChild(std::make_unique<RoomTreeItem>(NeoChatRoomType::Types(i), m_rootItem.get())); connect(d->roomStream.get(), &RoomStream::roomsUpdate, this, [this]() {
} d->roomsUpdate();
});
for (const auto &r : m_connection->allRooms()) { d->roomStream->startStream();
const auto room = dynamic_cast<NeoChatRoom *>(r);
const auto type = NeoChatRoomType::typeForRoom(room);
const auto categoryItem = m_rootItem->child(type);
if (categoryItem->insertChild(std::make_unique<RoomTreeItem>(room, categoryItem))) {
connectRoomSignals(room);
}
}
endResetModel(); endResetModel();
} }
void RoomTreeModel::setConnection(NeoChatConnection *connection) void RoomTreeModel::Private::resetTree()
{ {
if (m_connection == connection) { rootItem.reset(new RoomTreeItem(nullptr));
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
rootItem->insertChild(std::make_unique<RoomTreeItem>(NeoChatRoomType::Type(i), rootItem.get()));
}
}
void RoomTreeModel::setConnection(Connection *connection)
{
if (d->connection == connection) {
return; return;
} }
if (m_connection) { if (d->connection) {
disconnect(m_connection.get(), nullptr, this, nullptr); d->connection->disconnect(this);
} }
m_connection = connection; d->connection = connection;
resetModel(); resetModel();
connect(connection, &Connection::newRoom, this, &RoomTreeModel::newRoom);
connect(connection, &Connection::leftRoom, this, &RoomTreeModel::leftRoom);
connect(connection, &Connection::aboutToDeleteRoom, this, &RoomTreeModel::leftRoom);
Q_EMIT connectionChanged(); Q_EMIT connectionChanged();
} }
void RoomTreeModel::newRoom(Room *r) void RoomTreeModel::Private::roomsUpdate()
{ {
const auto room = dynamic_cast<NeoChatRoom *>(r); const auto diff = roomStream->next();
const auto type = NeoChatRoomType::typeForRoom(room);
// Check if the room is already in the model. switch (diff->op()) {
const auto checkRoomIndex = indexForRoom(room); case 0: { // Append
if (checkRoomIndex.isValid()) { for (const auto &it : diff->items_vec()) {
// If the room is in the wrong type category for whatever reason, move it. const auto type = NeoChatRoomType::typeForRoom(it.box_me());
if (checkRoomIndex.parent().row() != type) { const auto parentItem = rootItem->child(type);
moveRoom(room); q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{it.box_me()}, parentItem))) {
// connectRoomSignals(room);
}
q->endInsertRows();
roomIndexes.append(q->indexForRoom(it.box_me()));
} }
return; break;
} }
case 1: { // Clear
const auto parentItem = m_rootItem->child(type); q->beginResetModel();
beginInsertRows(index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount()); resetTree();
parentItem->insertChild(std::make_unique<RoomTreeItem>(room, parentItem)); roomIndexes.clear();
connectRoomSignals(room); q->endResetModel();
endInsertRows(); break;
}
void RoomTreeModel::leftRoom(Room *r)
{
const auto room = dynamic_cast<NeoChatRoom *>(r);
auto index = indexForRoom(room);
if (!index.isValid()) {
return;
} }
case 2: { // Push Front
const auto parentItem = getItem(index.parent()); const auto type = NeoChatRoomType::typeForRoom(diff->item());
Q_ASSERT(parentItem); const auto parentItem = rootItem->child(type);
q->beginInsertRows(q->index(parentItem->row(), 0), 0, 0);
beginRemoveRows(index.parent(), index.row(), index.row()); if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
parentItem->removeChild(index.row()); // connectRoomSignals(room);
room->disconnect(this);
endRemoveRows();
}
void RoomTreeModel::moveRoom(Quotient::Room *room)
{
// We can't assume the type as it has changed so currently the return of
// NeoChatRoomType::typeForRoom doesn't match it's current location. So find the room.
NeoChatRoomType::Types oldType;
int oldRow = -1;
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
const auto categoryItem = m_rootItem->child(i);
const auto row = categoryItem->rowForRoom(room);
if (row) {
oldType = static_cast<NeoChatRoomType::Types>(i);
oldRow = *row;
} }
q->endInsertRows();
roomIndexes.prepend(q->indexForRoom(diff->item()));
break;
} }
case 3: { // Push Back
if (oldRow == -1) { const auto type = NeoChatRoomType::typeForRoom(diff->item());
return; const auto parentItem = rootItem->child(type);
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
// connectRoomSignals(room);
}
q->endInsertRows();
roomIndexes.append(q->indexForRoom(diff->item()));
break;
} }
auto neochatRoom = dynamic_cast<NeoChatRoom *>(room); case 4: { // Pop Front
const auto newType = NeoChatRoomType::typeForRoom(neochatRoom); const auto index = roomIndexes.front();
if (newType == oldType) { q->beginRemoveRows(index.parent(), index.row(), index.row());
return; const auto parentItem = q->getItem(index.parent());
parentItem->removeChild(index.row());
roomIndexes.removeFirst();
q->endRemoveRows();
break;
} }
case 5: { // Pop Back
const auto index = roomIndexes.back();
q->beginRemoveRows(index.parent(), index.row(), index.row());
const auto parentItem = q->getItem(index.parent());
parentItem->removeChild(index.row());
roomIndexes.removeLast();
q->endRemoveRows();
break;
}
case 6: { // Insert
const auto type = NeoChatRoomType::typeForRoom(diff->item());
const auto parentItem = rootItem->child(type);
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
// connectRoomSignals(room);
}
q->endInsertRows();
roomIndexes.insert(diff->index(), q->indexForRoom(diff->item()));
break;
}
case 7: { // Set
const auto index = roomIndexes.at(diff->index());
q->beginRemoveRows(index.parent(), index.row(), index.row());
q->getItem(index.parent())->removeChild(index.row());
q->endRemoveRows();
const auto oldParent = index(oldType, 0, {}); const auto type = NeoChatRoomType::typeForRoom(diff->item());
auto oldParentItem = getItem(oldParent); const auto parentItem = rootItem->child(type);
Q_ASSERT(oldParentItem); q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
// connectRoomSignals(room);
}
q->endInsertRows();
roomIndexes[diff->index()] = q->indexForRoom(diff->item());
break;
}
case 8: { // Remove
const auto index = roomIndexes.at(diff->index());
q->beginRemoveRows(index.parent(), index.row(), index.row());
q->getItem(index.parent())->removeChild(index.row());
q->endRemoveRows();
roomIndexes.removeAt(diff->index());
break;
}
case 9: { // Truncate
for (int i = q->rowCount({}) - 1; i >= int(diff->index()); i--) {
const auto index = roomIndexes.at(i);
q->beginRemoveRows(index.parent(), index.row(), index.row());
q->getItem(index.parent())->removeChild(index.row());
q->endRemoveRows();
roomIndexes.removeAt(i);
}
break;
}
case 10: { // Reset
q->beginResetModel();
resetTree();
roomIndexes.clear();
q->endResetModel();
const auto newParent = index(newType, 0, {}); for (const auto &it : diff->items_vec()) {
auto newParentItem = getItem(newParent); const auto type = NeoChatRoomType::typeForRoom(it.box_me());
Q_ASSERT(newParentItem); const auto parentItem = rootItem->child(type);
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
// HACK: We're doing this as a remove then insert because moving doesn't work if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{it.box_me()}, parentItem))) {
// properly with DelegateChooser for whatever reason. // connectRoomSignals(room);
Q_ASSERT(checkIndex(index(oldRow, 0, oldParent), QAbstractItemModel::CheckIndexOption::IndexIsValid)); }
beginRemoveRows(oldParent, oldRow, oldRow); q->endInsertRows();
const bool success = oldParentItem->removeChild(oldRow); roomIndexes.append(q->indexForRoom(it.box_me()));
Q_ASSERT(success); }
endRemoveRows(); break;
beginInsertRows(newParent, newParentItem->childCount(), newParentItem->childCount()); }
newParentItem->insertChild(std::make_unique<RoomTreeItem>(neochatRoom, newParentItem)); }
endInsertRows();
} }
void RoomTreeModel::connectRoomSignals(NeoChatRoom *room) // void RoomTreeModel::connectRoomSignals(NeoChatRoom *room)
{ // {
connect(room, &Room::displaynameChanged, this, [this, room] { // connect(room, &Room::displaynameChanged, this, [this, room] {
refreshRoomRoles(room, {DisplayNameRole}); // refreshRoomRoles(room, {DisplayNameRole});
}); // });
connect(room, &Room::unreadStatsChanged, this, [this, room] { // connect(room, &Room::unreadStatsChanged, this, [this, room] {
refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole}); // refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
}); // });
connect(room, &Room::avatarChanged, this, [this, room] { // connect(room, &Room::avatarChanged, this, [this, room] {
refreshRoomRoles(room, {AvatarRole}); // refreshRoomRoles(room, {AvatarRole});
}); // });
connect(room, &Room::tagsChanged, this, [this, room] { // connect(room, &Room::tagsChanged, this, [this, room] {
moveRoom(room); // moveRoom(room);
}); // });
connect(room, &Room::joinStateChanged, this, [this, room] { // connect(room, &Room::joinStateChanged, this, [this, room] {
refreshRoomRoles(room); // refreshRoomRoles(room);
}); // });
connect(room, &Room::addedMessages, this, [this, room] { // connect(room, &Room::addedMessages, this, [this, room] {
refreshRoomRoles(room, {SubtitleTextRole}); // refreshRoomRoles(room, {SubtitleTextRole});
}); // });
connect(room, &Room::pendingEventMerged, this, [this, room] { // connect(room, &Room::pendingEventMerged, this, [this, room] {
refreshRoomRoles(room, {SubtitleTextRole}); // refreshRoomRoles(room, {SubtitleTextRole});
}); // });
connect(room, &NeoChatRoom::pushNotificationStateChanged, this, [this, room] { // connect(room, &NeoChatRoom::pushNotificationStateChanged, this, [this, room] {
refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole}); // refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
}); // });
} // }
void RoomTreeModel::refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles) // void RoomTreeModel::refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles)
{ // {
const auto index = indexForRoom(room); // const auto index = indexForRoom(room);
if (!index.isValid()) { // if (!index.isValid()) {
qCritical() << "Room" << room->id() << "not found in the room list"; // qCritical() << "Room" << room->id() << "not found in the room list";
return; // return;
} // }
Q_EMIT dataChanged(index, index, roles); // Q_EMIT dataChanged(index, index, roles);
} // }
NeoChatConnection *RoomTreeModel::connection() const Connection *RoomTreeModel::connection() const
{ {
return m_connection; return d->connection;
} }
int RoomTreeModel::columnCount(const QModelIndex &parent) const int RoomTreeModel::columnCount(const QModelIndex &parent) const
@@ -215,7 +284,7 @@ int RoomTreeModel::rowCount(const QModelIndex &parent) const
} }
if (!parent.isValid()) { if (!parent.isValid()) {
parentItem = m_rootItem.get(); parentItem = d->rootItem.get();
} else { } else {
parentItem = static_cast<RoomTreeItem *>(parent.internalPointer()); parentItem = static_cast<RoomTreeItem *>(parent.internalPointer());
} }
@@ -239,7 +308,7 @@ QModelIndex RoomTreeModel::parent(const QModelIndex &index) const
} }
RoomTreeItem *parentItem = childItem->parentItem(); RoomTreeItem *parentItem = childItem->parentItem();
if (parentItem == m_rootItem.get()) { if (parentItem == d->rootItem.get()) {
return QModelIndex(); return QModelIndex();
} }
@@ -295,7 +364,7 @@ QVariant RoomTreeModel::data(const QModelIndex &index, int role) const
} }
RoomTreeItem *child = getItem(index); RoomTreeItem *child = getItem(index);
if (std::holds_alternative<NeoChatRoomType::Types>(child->data())) { if (std::holds_alternative<NeoChatRoomType::Type>(child->data())) {
if (role == DisplayNameRole) { if (role == DisplayNameRole) {
return NeoChatRoomType::typeName(index.row()); return NeoChatRoomType::typeName(index.row());
} }
@@ -314,98 +383,91 @@ QVariant RoomTreeModel::data(const QModelIndex &index, int role) const
return {}; return {};
} }
const auto room = std::get<NeoChatRoom *>(child->data()); const auto room = std::get<RoomWrapper *>(child->data());
Q_ASSERT(room); Q_ASSERT(room);
if (role == DisplayNameRole) { if (role == DisplayNameRole) {
return room->displayName(); return stringFromRust((*room->item)->display_name()).toHtmlEscaped();
} }
if (role == AvatarRole) { if (role == AvatarRole) {
return room->avatarMediaUrl(); return u"%1?user_id=%2"_s.arg(stringFromRust((*room->item)->avatar_url()), d->connection->matrixId());
} }
if (role == CanonicalAliasRole) { if (role == CanonicalAliasRole) {
return room->canonicalAlias(); return stringFromRust((*room->item)->canonical_alias()).toHtmlEscaped();
} }
if (role == TopicRole) { if (role == TopicRole) {
return room->topic(); return stringFromRust((*room->item)->topic()).toHtmlEscaped();
} }
if (role == CategoryRole) { if (role == CategoryRole) {
return NeoChatRoomType::typeForRoom(room); return NeoChatRoomType::typeForRoom((*room->item)->box_me());
} }
if (role == ContextNotificationCountRole) { if (role == ContextNotificationCountRole) {
return int(room->contextAwareNotificationCount()); return int((*room->item)->num_unread_messages());
} }
if (role == HasHighlightNotificationsRole) { if (role == HasHighlightNotificationsRole) {
return room->highlightCount() > 0 && room->contextAwareNotificationCount() > 0; return (*room->item)->num_unread_mentions() > 0 && (*room->item)->num_unread_messages() > 0;
} }
if (role == JoinStateRole) { if (role == JoinStateRole) {
if (!room->successorId().isEmpty()) { if (!(*room->item)->tombstone()->replacement_room().empty()) {
return u"upgraded"_s; return u"upgraded"_s;
} }
return QVariant::fromValue(room->joinState()); return QVariant::fromValue((*room->item)->state());
} }
if (role == CurrentRoomRole) { if (role == CurrentRoomRole) {
return QVariant::fromValue(room); return {};
// return QVariant::fromValue(room);
} }
if (role == SubtitleTextRole) { if (role == SubtitleTextRole) {
if (room->isInvite()) { return {};
if (room->isDirectChat()) { // if (room->lastEvent() == nullptr || room->lastEventIsSpoiler()) {
return i18nc("@info:label", "Invited you to chat"); // return QString();
} // }
return i18nc("@info:label", "%1 invited you", room->member(room->invitingUserId()).displayName()); // return EventHandler::subtitleText(room, room->lastEvent());
}
if (room->lastEvent() == nullptr || room->lastEventIsSpoiler()) {
return QString();
}
return EventHandler::subtitleText(room, room->lastEvent());
} }
if (role == AvatarImageRole) { if (role == AvatarImageRole) {
return room->avatar(128); return {};
// return room->avatar(128);
} }
if (role == RoomIdRole) { if (role == RoomIdRole) {
return room->id(); return stringFromRust((*room->item)->id()).toHtmlEscaped();
} }
if (role == IsSpaceRole) { if (role == IsSpaceRole) {
return room->isSpace(); return (*room->item)->is_space();
} }
if (role == IsChildSpaceRole) { if (role == IsChildSpaceRole) {
return SpaceHierarchyCache::instance().isChild(room->id()); return false;
// return SpaceHierarchyCache::instance().isChild(room->id());
} }
if (role == ReplacementIdRole) { if (role == ReplacementIdRole) {
return room->successorId(); return stringFromRust((*room->item)->tombstone()->replacement_room()).toHtmlEscaped();
} }
if (role == IsDirectChat) { if (role == IsDirectChat) {
return room->isDirectChat(); return false;
// return room->isDirectChat();
} }
if (role == DelegateTypeRole) { if (role == DelegateTypeRole) {
return u"normal"_s; return u"normal"_s;
} }
if (role == RoomTypeRole) { if (role == RoomTypeRole) {
if (room->creation()) { return stringFromRust((*room->item)->room_type()).toHtmlEscaped();
return room->creation()->contentPart<QString>("type"_L1);
}
} }
return {}; return {};
} }
QModelIndex RoomTreeModel::indexForRoom(NeoChatRoom *room) const QModelIndex RoomTreeModel::indexForRoom(rust::Box<sdk::RoomListRoom> room) const
{ {
if (room == nullptr) {
return {};
}
// Try and find by checking type. // Try and find by checking type.
const auto type = NeoChatRoomType::typeForRoom(room); const auto type = NeoChatRoomType::typeForRoom(room->box_me());
const auto parentItem = m_rootItem->child(type); const auto parentItem = d->rootItem->child(type);
const auto row = parentItem->rowForRoom(room); const auto row = parentItem->rowForRoom(room->box_me());
if (row) { if (row) {
return index(*row, 0, index(type, 0)); return index(*row, 0, index(type, 0));
} }
// Double check that the room isn't in the wrong category. // Double check that the room isn't in the wrong category.
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) { for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
const auto parentItem = m_rootItem->child(i); const auto parentItem = d->rootItem->child(i);
const auto row = parentItem->rowForRoom(room); const auto row = parentItem->rowForRoom(room->box_me());
if (row) { if (row) {
return index(*row, 0, index(i, 0)); return index(*row, 0, index(i, 0));
} }
@@ -414,4 +476,13 @@ QModelIndex RoomTreeModel::indexForRoom(NeoChatRoom *room) const
return {}; return {};
} }
std::optional<rust::Box<sdk::RoomListRoom>> RoomTreeModel::roomForIndex(QModelIndex index) const
{
RoomTreeItem *child = getItem(index);
if (std::holds_alternative<NeoChatRoomType::Type>(child->data())) {
return std::nullopt;
}
return (*std::get<RoomWrapper *>(child->data())->item)->box_me();
}
#include "moc_roomtreemodel.cpp" #include "moc_roomtreemodel.cpp"

View File

@@ -1,3 +1,4 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org> // SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later // SPDX-License-Identifier: LGPL-2.0-or-later
@@ -6,23 +7,20 @@
#include <QAbstractItemModel> #include <QAbstractItemModel>
#include <QPointer> #include <QPointer>
#include "enums/neochatroomtype.h"
#include "roomtreeitem.h" #include "roomtreeitem.h"
namespace Quotient namespace Integral
{ {
class Connection;
class Room; class Room;
} }
class NeoChatConnection;
class NeoChatRoom;
class RoomTreeModel : public QAbstractItemModel class RoomTreeModel : public QAbstractItemModel
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT QML_ELEMENT
Q_PROPERTY(NeoChatConnection *connection READ connection WRITE setConnection NOTIFY connectionChanged) Q_PROPERTY(Integral::Connection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
public: public:
/** /**
@@ -51,9 +49,10 @@ public:
}; };
Q_ENUM(EventRoles) Q_ENUM(EventRoles)
explicit RoomTreeModel(QObject *parent = nullptr); explicit RoomTreeModel(QObject *parent = nullptr);
~RoomTreeModel();
void setConnection(NeoChatConnection *connection); void setConnection(Integral::Connection *connection);
NeoChatConnection *connection() const; Integral::Connection *connection() const;
/** /**
* @brief Get the given role value at the given index. * @brief Get the given role value at the given index.
@@ -75,23 +74,21 @@ public:
int columnCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override;
Q_INVOKABLE QModelIndex indexForRoom(NeoChatRoom *room) const; QModelIndex indexForRoom(rust::Box<sdk::RoomListRoom> room) const;
std::optional<rust::Box<sdk::RoomListRoom>> roomForIndex(QModelIndex index) const;
Q_SIGNALS: Q_SIGNALS:
void connectionChanged(); void connectionChanged();
private: private:
QPointer<NeoChatConnection> m_connection; class Private;
std::unique_ptr<RoomTreeItem> m_rootItem; std::unique_ptr<Private> d;
RoomTreeItem *getItem(const QModelIndex &index) const; RoomTreeItem *getItem(const QModelIndex &index) const;
void resetModel(); void resetModel();
void connectRoomSignals(NeoChatRoom *room);
void newRoom(Quotient::Room *room); // void connectRoomSignals(NeoChatRoom *room);
void leftRoom(Quotient::Room *room);
void moveRoom(Quotient::Room *room);
void refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles = {}); // void refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles = {});
}; };

View File

@@ -4,26 +4,26 @@
#include "sortfilterroomtreemodel.h" #include "sortfilterroomtreemodel.h"
#include "enums/roomsortparameter.h" #include "roomsortparameter.h"
#include "neochatconfig.h" // #include "neochatconfig.h"
#include "neochatconnection.h" #include "neochatconnection.h"
#include "neochatroom.h"
#include "neochatroomtype.h" #include "neochatroomtype.h"
#include "roommanager.h" #include <Integral/Room>
// #include "roommanager.h"
#include "roomtreemodel.h" #include "roomtreemodel.h"
#include "spacehierarchycache.h" // #include "spacehierarchycache.h"
SortFilterRoomTreeModel::SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QObject *parent) SortFilterRoomTreeModel::SortFilterRoomTreeModel(QObject *parent)
: QSortFilterProxyModel(parent) : QSortFilterProxyModel(parent)
{ {
Q_ASSERT(sourceModel); // Q_ASSERT(sourceModel);
setSourceModel(sourceModel); // setSourceModel(sourceModel);
setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder())); // setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
connect(NeoChatConfig::self(), &NeoChatConfig::SortOrderChanged, this, [this]() { // connect(NeoChatConfig::self(), &NeoChatConfig::SortOrderChanged, this, [this]() {
setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder())); // setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
invalidateFilter(); // invalidateFilter();
}); // });
setRecursiveFilteringEnabled(true); setRecursiveFilteringEnabled(true);
sort(0); sort(0);
@@ -34,13 +34,13 @@ SortFilterRoomTreeModel::SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QOb
connect(this->sourceModel(), &QAbstractItemModel::rowsRemoved, this, &SortFilterRoomTreeModel::invalidateFilter); connect(this->sourceModel(), &QAbstractItemModel::rowsRemoved, this, &SortFilterRoomTreeModel::invalidateFilter);
}); });
connect(NeoChatConfig::self(), &NeoChatConfig::CollapsedChanged, this, &SortFilterRoomTreeModel::invalidateFilter); // connect(NeoChatConfig::self(), &NeoChatConfig::CollapsedChanged, this, &SortFilterRoomTreeModel::invalidateFilter);
connect(NeoChatConfig::self(), &NeoChatConfig::AllRoomsInHomeChanged, this, [this]() { // connect(NeoChatConfig::self(), &NeoChatConfig::AllRoomsInHomeChanged, this, [this]() {
invalidateFilter(); // invalidateFilter();
if (NeoChatConfig::self()->allRoomsInHome()) { // if (NeoChatConfig::self()->allRoomsInHome()) {
RoomManager::instance().resetState(); // RoomManager::instance().resetState();
} // }
}); // });
} }
void SortFilterRoomTreeModel::setRoomSortOrder(SortFilterRoomTreeModel::RoomSortOrder sortOrder) void SortFilterRoomTreeModel::setRoomSortOrder(SortFilterRoomTreeModel::RoomSortOrder sortOrder)
@@ -78,14 +78,14 @@ bool SortFilterRoomTreeModel::lessThan(const QModelIndex &source_left, const QMo
return false; return false;
} }
const auto leftRoom = dynamic_cast<NeoChatRoom *>(treeModel->connection()->room(source_left.data(RoomTreeModel::RoomIdRole).toString())); const auto leftRoom = treeModel->roomForIndex(source_left);
const auto rightRoom = dynamic_cast<NeoChatRoom *>(treeModel->connection()->room(source_right.data(RoomTreeModel::RoomIdRole).toString())); const auto rightRoom = treeModel->roomForIndex(source_right);
if (leftRoom == nullptr || rightRoom == nullptr) { if (!leftRoom.has_value() || !rightRoom.has_value()) {
return false; return false;
} }
for (auto sortRole : RoomSortParameter::currentParameterList()) { for (auto sortRole : RoomSortParameter::currentParameterList()) {
auto result = RoomSortParameter::compareParameter(sortRole, leftRoom, rightRoom); auto result = RoomSortParameter::compareParameter(sortRole, leftRoom.value()->box_me(), rightRoom.value()->box_me());
if (result != 0) { if (result != 0) {
return result > 0; return result > 0;
@@ -141,20 +141,22 @@ bool SortFilterRoomTreeModel::filterAcceptsRow(int source_row, const QModelIndex
return false; return false;
} }
static auto config = NeoChatConfig::self(); return acceptRoom;
if (config->allRoomsInHome() && RoomManager::instance().currentSpace().isEmpty()) {
return acceptRoom;
}
if (m_activeSpaceId.isEmpty()) { // static auto config = NeoChatConfig::self();
if (!SpaceHierarchyCache::instance().isChild(sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString())) { // if (config->allRoomsInHome() && RoomManager::instance().currentSpace().isEmpty()) {
return acceptRoom; // return acceptRoom;
} // }
return false; //
} else { // if (m_activeSpaceId.isEmpty()) {
const auto &rooms = SpaceHierarchyCache::instance().getRoomListForSpace(m_activeSpaceId, false); // if (!SpaceHierarchyCache::instance().isChild(sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString())) {
return std::find(rooms.begin(), rooms.end(), sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString()) != rooms.end() && acceptRoom; // return acceptRoom;
} // }
// return false;
// } else {
// const auto &rooms = SpaceHierarchyCache::instance().getRoomListForSpace(m_activeSpaceId, false);
// return std::find(rooms.begin(), rooms.end(), sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString()) != rooms.end() && acceptRoom;
// }
} }
QString SortFilterRoomTreeModel::activeSpaceId() const QString SortFilterRoomTreeModel::activeSpaceId() const
@@ -192,7 +194,7 @@ QModelIndex SortFilterRoomTreeModel::currentRoomIndex() const
return {}; return {};
} }
return mapFromSource(roomModel->indexForRoom(RoomManager::instance().currentRoom())); return {}; // mapFromSource(roomModel->indexForRoom(RoomManager::instance().currentRoom()));
} }
#include "moc_sortfilterroomtreemodel.cpp" #include "moc_sortfilterroomtreemodel.cpp"

View File

@@ -32,7 +32,7 @@ class SortFilterRoomTreeModel : public QSortFilterProxyModel
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT QML_ELEMENT
QML_UNCREATABLE("") // QML_UNCREATABLE("")
/** /**
* @brief The text to use to filter room names. * @brief The text to use to filter room names.
@@ -64,7 +64,7 @@ public:
}; };
Q_ENUM(Mode) Q_ENUM(Mode)
explicit SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QObject *parent = nullptr); explicit SortFilterRoomTreeModel(QObject *parent = nullptr);
void setRoomSortOrder(RoomSortOrder sortOrder); void setRoomSortOrder(RoomSortOrder sortOrder);

View File

@@ -13,13 +13,35 @@
using namespace Qt::StringLiterals; using namespace Qt::StringLiterals;
ThreePIdModel::ThreePIdModel(NeoChatConnection *connection) ThreePIdModel::ThreePIdModel(QObject *parent)
: QAbstractListModel(connection) : QAbstractListModel(parent)
{ {
Q_ASSERT(connection); }
connect(connection, &NeoChatConnection::stateChanged, this, [this]() {
NeoChatConnection *ThreePIdModel::connection() const
{
return m_connection;
}
void ThreePIdModel::setConnection(NeoChatConnection *connection)
{
if (m_connection == connection) {
return;
}
if (m_connection != nullptr) {
m_connection->disconnect(this);
}
m_connection = connection;
if (m_connection) {
connect(m_connection, &NeoChatConnection::stateChanged, this, [this]() {
refreshModel();
});
refreshModel(); refreshModel();
}); }
Q_EMIT connectionChanged();
} }
QVariant ThreePIdModel::data(const QModelIndex &index, int role) const QVariant ThreePIdModel::data(const QModelIndex &index, int role) const
@@ -62,12 +84,14 @@ QHash<int, QByteArray> ThreePIdModel::roleNames() const
void ThreePIdModel::refreshModel() void ThreePIdModel::refreshModel()
{ {
const auto connection = dynamic_cast<NeoChatConnection *>(this->parent()); if (m_connection != nullptr && m_connection->isLoggedIn()) {
if (connection != nullptr && connection->isLoggedIn()) { if (m_job.isRunning()) {
const auto threePIdJob = connection->callApi<Quotient::GetAccount3PIDsJob>(); m_job.cancel();
connect(threePIdJob, &Quotient::BaseJob::success, this, [this, threePIdJob]() { }
m_job = m_connection->callApi<Quotient::GetAccount3PIDsJob>();
connect(m_job, &Quotient::BaseJob::success, this, [this]() {
beginResetModel(); beginResetModel();
m_threePIds = threePIdJob->threepids(); m_threePIds = m_job->threepids();
endResetModel(); endResetModel();
refreshBindStatus(); refreshBindStatus();
@@ -77,25 +101,24 @@ void ThreePIdModel::refreshModel()
void ThreePIdModel::refreshBindStatus() void ThreePIdModel::refreshBindStatus()
{ {
const auto connection = dynamic_cast<NeoChatConnection *>(this->parent()); if (m_connection == nullptr || !m_connection->hasIdentityServer()) {
if (connection == nullptr || !connection->hasIdentityServer()) {
return; return;
} }
const auto openIdJob = connection->callApi<Quotient::RequestOpenIdTokenJob>(connection->userId()); const auto openIdJob = m_connection->callApi<Quotient::RequestOpenIdTokenJob>(m_connection->userId());
connect(openIdJob, &Quotient::BaseJob::success, this, [this, connection, openIdJob]() { connect(openIdJob, &Quotient::BaseJob::success, this, [this, openIdJob]() {
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/account/register"_s); const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/account/register"_s);
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) { if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
return; return;
} }
QNetworkRequest request(requestUrl); QNetworkRequest request(requestUrl);
auto newRequest = Quotient::NetworkAccessManager::instance()->post(request, QJsonDocument(openIdJob->jsonData()).toJson()); auto newRequest = Quotient::NetworkAccessManager::instance()->post(request, QJsonDocument(openIdJob->jsonData()).toJson());
connect(newRequest, &QNetworkReply::finished, this, [this, connection, newRequest]() { connect(newRequest, &QNetworkReply::finished, this, [this, newRequest]() {
QJsonObject replyJson = QJsonDocument::fromJson(newRequest->readAll()).object(); QJsonObject replyJson = QJsonDocument::fromJson(newRequest->readAll()).object();
const auto identityServerToken = replyJson["token"_L1].toString(); const auto identityServerToken = replyJson["token"_L1].toString();
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/hash_details"_s); const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/hash_details"_s);
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) { if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
return; return;
} }
@@ -104,11 +127,11 @@ void ThreePIdModel::refreshBindStatus()
hashRequest.setRawHeader("Authorization", "Bearer " + identityServerToken.toLatin1()); hashRequest.setRawHeader("Authorization", "Bearer " + identityServerToken.toLatin1());
auto hashReply = Quotient::NetworkAccessManager::instance()->get(hashRequest); auto hashReply = Quotient::NetworkAccessManager::instance()->get(hashRequest);
connect(hashReply, &QNetworkReply::finished, this, [this, connection, identityServerToken, hashReply]() { connect(hashReply, &QNetworkReply::finished, this, [this, identityServerToken, hashReply]() {
QJsonObject replyJson = QJsonDocument::fromJson(hashReply->readAll()).object(); QJsonObject replyJson = QJsonDocument::fromJson(hashReply->readAll()).object();
const auto lookupPepper = replyJson["lookup_pepper"_L1].toString(); const auto lookupPepper = replyJson["lookup_pepper"_L1].toString();
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/lookup"_s); const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/lookup"_s);
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) { if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
return; return;
} }
@@ -127,13 +150,13 @@ void ThreePIdModel::refreshBindStatus()
requestData["addresses"_L1] = idLookups; requestData["addresses"_L1] = idLookups;
auto lookupReply = Quotient::NetworkAccessManager::instance()->post(lookupRequest, QJsonDocument(requestData).toJson(QJsonDocument::Compact)); auto lookupReply = Quotient::NetworkAccessManager::instance()->post(lookupRequest, QJsonDocument(requestData).toJson(QJsonDocument::Compact));
connect(lookupReply, &QNetworkReply::finished, this, [this, connection, lookupReply]() { connect(lookupReply, &QNetworkReply::finished, this, [this, lookupReply]() {
beginResetModel(); beginResetModel();
m_bindings.clear(); m_bindings.clear();
QJsonObject mappings = QJsonDocument::fromJson(lookupReply->readAll()).object()["mappings"_L1].toObject(); QJsonObject mappings = QJsonDocument::fromJson(lookupReply->readAll()).object()["mappings"_L1].toObject();
for (const auto &id : mappings.keys()) { for (const auto &id : mappings.keys()) {
if (mappings[id] == connection->userId()) { if (mappings[id] == m_connection->userId()) {
m_bindings += id.section(u' ', 0, 0); m_bindings += id.section(u' ', 0, 0);
} }
} }

View File

@@ -7,6 +7,7 @@
#include <QQmlEngine> #include <QQmlEngine>
#include <Quotient/csapi/administrative_contact.h> #include <Quotient/csapi/administrative_contact.h>
#include <Quotient/jobs/jobhandle.h>
class NeoChatConnection; class NeoChatConnection;
@@ -19,19 +20,27 @@ class ThreePIdModel : public QAbstractListModel
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT QML_ELEMENT
QML_UNCREATABLE("")
/**
* @brief The current connection for the model to use.
*/
Q_PROPERTY(NeoChatConnection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
public: public:
/** /**
* @brief Defines the model roles. * @brief Defines the model roles.
*/ */
enum EventRoles { enum Roles {
AddressRole = Qt::DisplayRole, /**< The third-party identifier address. */ AddressRole = Qt::DisplayRole, /**< The third-party identifier address. */
MediumRole, /**< The medium of the third-party identifier. One of: [email, msisdn]. */ MediumRole, /**< The medium of the third-party identifier. One of: [email, msisdn]. */
IsBoundRole, /**< Whether the 3PID is bound to the current identity server. */ IsBoundRole, /**< Whether the 3PID is bound to the current identity server. */
}; };
Q_ENUM(Roles)
explicit ThreePIdModel(NeoChatConnection *parent); explicit ThreePIdModel(QObject *parent = nullptr);
[[nodiscard]] NeoChatConnection *connection() const;
void setConnection(NeoChatConnection *connection);
/** /**
* @brief Get the given role value at the given index. * @brief Get the given role value at the given index.
@@ -56,9 +65,15 @@ public:
Q_INVOKABLE void refreshModel(); Q_INVOKABLE void refreshModel();
Q_SIGNALS:
void connectionChanged();
private: private:
QPointer<NeoChatConnection> m_connection;
QVector<Quotient::GetAccount3PIDsJob::ThirdPartyIdentifier> m_threePIds; QVector<Quotient::GetAccount3PIDsJob::ThirdPartyIdentifier> m_threePIds;
Quotient::JobHandle<Quotient::GetAccount3PIDsJob> m_job;
QList<QString> m_bindings; QList<QString> m_bindings;
void refreshBindStatus(); void refreshBindStatus();

View File

@@ -5,8 +5,8 @@
#include <QGuiApplication> #include <QGuiApplication>
#include <Quotient/avatar.h> // #include <Quotient/avatar.h>
#include <Quotient/events/roompowerlevelsevent.h> // #include <Quotient/events/roompowerlevelsevent.h>
#include "enums/powerlevel.h" #include "enums/powerlevel.h"
#include "neochatroom.h" #include "neochatroom.h"
@@ -30,7 +30,7 @@ void UserListModel::setRoom(NeoChatRoom *room)
// last room's objects before the room is actually changed // last room's objects before the room is actually changed
beginResetModel(); beginResetModel();
m_currentRoom->disconnect(this); m_currentRoom->disconnect(this);
m_currentRoom->connection()->disconnect(this); // m_currentRoom->connection()->disconnect(this);
m_currentRoom = nullptr; m_currentRoom = nullptr;
m_members.clear(); m_members.clear();
endResetModel(); endResetModel();
@@ -39,21 +39,21 @@ void UserListModel::setRoom(NeoChatRoom *room)
m_currentRoom = room; m_currentRoom = room;
if (m_currentRoom) { if (m_currentRoom) {
connect(m_currentRoom, &Room::memberJoined, this, &UserListModel::memberJoined); // connect(m_currentRoom, &Room::memberJoined, this, &UserListModel::memberJoined);
connect(m_currentRoom, &Room::memberLeft, this, &UserListModel::memberLeft); // connect(m_currentRoom, &Room::memberLeft, this, &UserListModel::memberLeft);
connect(m_currentRoom, &Room::memberNameUpdated, this, [this](RoomMember member) { // connect(m_currentRoom, &Room::memberNameUpdated, this, [this](RoomMember member) {
refreshMember(member, {DisplayNameRole}); // refreshMember(member, {DisplayNameRole});
}); // });
connect(m_currentRoom, &Room::memberAvatarUpdated, this, [this](RoomMember member) { // connect(m_currentRoom, &Room::memberAvatarUpdated, this, [this](RoomMember member) {
refreshMember(member, {AvatarRole}); // refreshMember(member, {AvatarRole});
}); // });
connect(m_currentRoom, &Room::memberListChanged, this, [this]() { // connect(m_currentRoom, &Room::memberListChanged, this, [this]() {
// this is slow // // this is slow
UserListModel::refreshAllMembers(); // UserListModel::refreshAllMembers();
}); // });
connect(m_currentRoom->connection(), &Connection::loggedOut, this, [this]() { // connect(m_currentRoom->connection(), &Connection::loggedOut, this, [this]() {
setRoom(nullptr); // setRoom(nullptr);
}); // });
} }
m_active = false; m_active = false;
@@ -80,40 +80,40 @@ QVariant UserListModel::data(const QModelIndex &index, int role) const
return {}; return {};
} }
auto memberId = m_members.at(index.row()); auto memberId = m_members.at(index.row());
if (role == DisplayNameRole) { // if (role == DisplayNameRole) {
return m_currentRoom->member(memberId).disambiguatedName(); // return m_currentRoom->member(memberId).disambiguatedName();
} // }
if (role == UserIdRole) { // if (role == UserIdRole) {
return memberId; // return memberId;
} // }
if (role == AvatarRole) { // if (role == AvatarRole) {
return m_currentRoom->member(memberId).avatarUrl(); // return m_currentRoom->member(memberId).avatarUrl();
} // }
if (role == ObjectRole) { // if (role == ObjectRole) {
return QVariant::fromValue(memberId); // return QVariant::fromValue(memberId);
} // }
if (role == PowerLevelRole) { // if (role == PowerLevelRole) {
auto plEvent = m_currentRoom->currentState().get<RoomPowerLevelsEvent>(); // auto plEvent = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
if (!plEvent) { // if (!plEvent) {
return 0; // return 0;
} // }
return plEvent->powerLevelForUser(memberId); // return plEvent->powerLevelForUser(memberId);
} // }
if (role == PowerLevelStringRole) { // if (role == PowerLevelStringRole) {
auto pl = m_currentRoom->currentState().get<RoomPowerLevelsEvent>(); // auto pl = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
// User might not in the room yet, in this case pl can be nullptr. // // User might not in the room yet, in this case pl can be nullptr.
// e.g. When invited but user not accepted or denied the invitation. // // e.g. When invited but user not accepted or denied the invitation.
if (!pl) { // if (!pl) {
return u"Not Available"_s; // return u"Not Available"_s;
} // }
//
auto userPl = pl->powerLevelForUser(memberId); // auto userPl = pl->powerLevelForUser(memberId);
//
return i18nc("%1 is the name of the power level, e.g. admin and %2 is the value that represents.", // return i18nc("%1 is the name of the power level, e.g. admin and %2 is the value that represents.",
"%1 (%2)", // "%1 (%2)",
PowerLevel::nameForLevel(PowerLevel::levelForValue(userPl)), // PowerLevel::nameForLevel(PowerLevel::levelForValue(userPl)),
userPl); // userPl);
} // }
return {}; return {};
} }
@@ -134,65 +134,65 @@ bool UserListModel::event(QEvent *event)
return QObject::event(event); return QObject::event(event);
} }
void UserListModel::memberJoined(const Quotient::RoomMember &member) // void UserListModel::memberJoined(const Quotient::RoomMember &member)
{ // {
auto pos = findUserPos(member); // auto pos = findUserPos(member);
beginInsertRows(QModelIndex(), pos, pos); // beginInsertRows(QModelIndex(), pos, pos);
m_members.insert(pos, member.id()); // m_members.insert(pos, member.id());
endInsertRows(); // endInsertRows();
} // }
//
void UserListModel::memberLeft(const Quotient::RoomMember &member) // void UserListModel::memberLeft(const Quotient::RoomMember &member)
{ // {
auto pos = findUserPos(member); // auto pos = findUserPos(member);
if (pos != m_members.size()) { // if (pos != m_members.size()) {
beginRemoveRows(QModelIndex(), pos, pos); // beginRemoveRows(QModelIndex(), pos, pos);
m_members.removeAt(pos); // m_members.removeAt(pos);
endRemoveRows(); // endRemoveRows();
} else { // } else {
qWarning() << "Trying to remove a room member not in the user list"; // qWarning() << "Trying to remove a room member not in the user list";
} // }
} // }
//
void UserListModel::refreshMember(const Quotient::RoomMember &member, const QList<int> &roles) // void UserListModel::refreshMember(const Quotient::RoomMember &member, const QList<int> &roles)
{ // {
auto pos = findUserPos(member); // auto pos = findUserPos(member);
if (pos != m_members.size()) { // if (pos != m_members.size()) {
// The update will have changed the state event so we need to insert the updated member object. // // The update will have changed the state event so we need to insert the updated member object.
m_members.insert(pos, member.id()); // m_members.insert(pos, member.id());
Q_EMIT dataChanged(index(pos), index(pos), roles); // Q_EMIT dataChanged(index(pos), index(pos), roles);
} else { // } else {
qWarning() << "Trying to access a room member not in the user list"; // qWarning() << "Trying to access a room member not in the user list";
} // }
} // }
void UserListModel::refreshAllMembers() void UserListModel::refreshAllMembers()
{ {
beginResetModel(); beginResetModel();
if (m_currentRoom != nullptr) { if (m_currentRoom != nullptr) {
m_members = m_currentRoom->joinedMemberIds(); // m_members = m_currentRoom->joinedMemberIds();
MemberSorter sorter; // MemberSorter sorter;
std::sort(m_members.begin(), m_members.end(), [&sorter, this](const auto &left, const auto &right) { // std::sort(m_members.begin(), m_members.end(), [&sorter, this](const auto &left, const auto &right) {
const auto leftPl = m_currentRoom->memberEffectivePowerLevel(left); // const auto leftPl = m_currentRoom->memberEffectivePowerLevel(left);
const auto rightPl = m_currentRoom->memberEffectivePowerLevel(right); // const auto rightPl = m_currentRoom->memberEffectivePowerLevel(right);
if (leftPl > rightPl) { // if (leftPl > rightPl) {
return true; // return true;
} else if (rightPl > leftPl) { // } else if (rightPl > leftPl) {
return false; // return false;
} // }
//
return sorter(m_currentRoom->member(left), m_currentRoom->member(right)); // return sorter(m_currentRoom->member(left), m_currentRoom->member(right));
}); // });
} }
endResetModel(); endResetModel();
Q_EMIT usersRefreshed(); Q_EMIT usersRefreshed();
} }
int UserListModel::findUserPos(const RoomMember &member) const // int UserListModel::findUserPos(const RoomMember &member) const
{ // {
return findUserPos(member.id()); // return findUserPos(member.id());
} // }
int UserListModel::findUserPos(const QString &userId) const int UserListModel::findUserPos(const QString &userId) const
{ {

View File

@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <Quotient/room.h> #include <Integral/Room>
#include <QAbstractListModel> #include <QAbstractListModel>
#include <QObject> #include <QObject>
@@ -87,9 +87,9 @@ protected:
bool event(QEvent *event) override; bool event(QEvent *event) override;
private Q_SLOTS: private Q_SLOTS:
void memberJoined(const Quotient::RoomMember &member); // void memberJoined(const Quotient::RoomMember &member);
void memberLeft(const Quotient::RoomMember &member); // void memberLeft(const Quotient::RoomMember &member);
void refreshMember(const Quotient::RoomMember &member, const QList<int> &roles = {}); // void refreshMember(const Quotient::RoomMember &member, const QList<int> &roles = {});
void refreshAllMembers(); void refreshAllMembers();
private: private:
@@ -98,6 +98,6 @@ private:
bool m_active = false; bool m_active = false;
int findUserPos(const Quotient::RoomMember &member) const; // int findUserPos(const Quotient::RoomMember &member) const;
[[nodiscard]] int findUserPos(const QString &username) const; [[nodiscard]] int findUserPos(const QString &username) const;
}; };

View File

@@ -6,149 +6,142 @@
#include <QImageReader> #include <QImageReader>
#include <QJsonDocument> #include <QJsonDocument>
#include "neochatconfig.h" // #include "neochatconfig.h"
#include "neochatroom.h" // #include "neochatroom.h"
#include "spacehierarchycache.h" // #include "spacehierarchycache.h"
#include <Quotient/jobs/basejob.h> // #include <Quotient/jobs/basejob.h>
#include <Quotient/quotient_common.h> // #include <Quotient/quotient_common.h>
#include <qt6keychain/keychain.h> #include <qt6keychain/keychain.h>
#include <KLocalizedString> #include <KLocalizedString>
#include <Quotient/csapi/content-repo.h> // #include <Quotient/csapi/content-repo.h>
#include <Quotient/csapi/profile.h> // #include <Quotient/csapi/profile.h>
#include <Quotient/csapi/registration.h> // #include <Quotient/csapi/registration.h>
#include <Quotient/csapi/versions.h> // #include <Quotient/csapi/versions.h>
#include <Quotient/jobs/downloadfilejob.h> // #include <Quotient/jobs/downloadfilejob.h>
#include <Quotient/qt_connection_util.h> // #include <Quotient/qt_connection_util.h>
#include <Quotient/room.h> // #include <Quotient/room.h>
#include <Quotient/settings.h> // #include <Quotient/settings.h>
#include <Quotient/user.h> // #include <Quotient/user.h>
#ifdef HAVE_KUNIFIEDPUSH // #ifdef HAVE_KUNIFIEDPUSH
#include <QCoroNetwork> // #include <QCoroNetwork>
#include <Quotient/csapi/pusher.h> // #include <Quotient/csapi/pusher.h>
#include <Quotient/networkaccessmanager.h> // #include <Quotient/networkaccessmanager.h>
#endif // #endif
using namespace Quotient; #include <Integral/Connection_p>
using namespace Integral;
using namespace Qt::StringLiterals; using namespace Qt::StringLiterals;
NeoChatConnection::NeoChatConnection(QObject *parent) NeoChatConnection::NeoChatConnection(std::unique_ptr<Connection::Private> d)
: Connection(parent) : Connection(std::move(d))
, m_threePIdModel(new ThreePIdModel(this))
{ {
m_linkPreviewers.setMaxCost(20); // m_linkPreviewers.setMaxCost(20);
connectSignals();
}
NeoChatConnection::NeoChatConnection(const QUrl &server, QObject *parent)
: Connection(server, parent)
, m_threePIdModel(new ThreePIdModel(this))
{
m_linkPreviewers.setMaxCost(20);
connectSignals(); connectSignals();
} }
void NeoChatConnection::connectSignals() void NeoChatConnection::connectSignals()
{ {
connect(this, &NeoChatConnection::accountDataChanged, this, [this](const QString &type) { // connect(this, &NeoChatConnection::accountDataChanged, this, [this](const QString &type) {
if (type == u"org.kde.neochat.account_label"_s) { // if (type == u"org.kde.neochat.account_label"_s) {
Q_EMIT labelChanged(); // Q_EMIT labelChanged();
} // }
if (type == u"m.identity_server"_s) { // if (type == u"m.identity_server"_s) {
Q_EMIT identityServerChanged(); // Q_EMIT identityServerChanged();
} // }
}); // });
connect(this, &NeoChatConnection::syncDone, this, [this] { // connect(this, &NeoChatConnection::syncDone, this, [this] {
setIsOnline(true); // setIsOnline(true);
}); // });
connect(this, &NeoChatConnection::networkError, this, [this]() { // connect(this, &NeoChatConnection::networkError, this, [this]() {
setIsOnline(false); // setIsOnline(false);
}); // });
connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) { // connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
if (job->error() == BaseJob::UserConsentRequired) { // if (job->error() == BaseJob::UserConsentRequired) {
Q_EMIT userConsentRequired(job->errorUrl()); // Q_EMIT userConsentRequired(job->errorUrl());
} // }
}); // });
connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) { // connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
if (dynamic_cast<DownloadFileJob *>(job) && job->jsonData()["errcode"_L1].toString() == "M_TOO_LARGE"_L1) { // if (dynamic_cast<DownloadFileJob *>(job) && job->jsonData()["errcode"_L1].toString() == "M_TOO_LARGE"_L1) {
Q_EMIT showMessage(MessageType::Warning, i18n("File too large to download.<br />Contact your matrix server administrator for support.")); // Q_EMIT showMessage(MessageType::Warning, i18n("File too large to download.<br />Contact your matrix server administrator for support."));
} // }
}); // });
connect(this, &NeoChatConnection::directChatsListChanged, this, [this](DirectChatsMap additions, DirectChatsMap removals) { // connect(this, &NeoChatConnection::directChatsListChanged, this, [this](DirectChatsMap additions, DirectChatsMap removals) {
Q_EMIT directChatInvitesChanged(); // Q_EMIT directChatInvitesChanged();
for (const auto &chatId : additions) { // for (const auto &chatId : additions) {
if (const auto chat = room(chatId)) { // if (const auto chat = room(chatId)) {
connect(chat, &Room::unreadStatsChanged, this, [this]() { // connect(chat, &Room::unreadStatsChanged, this, [this]() {
refreshBadgeNotificationCount(); // refreshBadgeNotificationCount();
Q_EMIT directChatNotificationsChanged(); // Q_EMIT directChatNotificationsChanged();
Q_EMIT directChatsHaveHighlightNotificationsChanged(); // Q_EMIT directChatsHaveHighlightNotificationsChanged();
}); // });
} // }
} // }
for (const auto &chatId : removals) { // for (const auto &chatId : removals) {
if (const auto chat = room(chatId)) { // if (const auto chat = room(chatId)) {
disconnect(chat, &Room::unreadStatsChanged, this, nullptr); // disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
} // }
} // }
}); // });
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) { // connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
if (room->isDirectChat()) { // if (room->isDirectChat()) {
connect(room, &Room::unreadStatsChanged, this, [this]() { // connect(room, &Room::unreadStatsChanged, this, [this]() {
Q_EMIT directChatNotificationsChanged(); // Q_EMIT directChatNotificationsChanged();
Q_EMIT directChatsHaveHighlightNotificationsChanged(); // Q_EMIT directChatsHaveHighlightNotificationsChanged();
}); // });
} // }
connect(room, &Room::unreadStatsChanged, this, [this]() { // connect(room, &Room::unreadStatsChanged, this, [this]() {
refreshBadgeNotificationCount(); // refreshBadgeNotificationCount();
Q_EMIT homeNotificationsChanged(); // Q_EMIT homeNotificationsChanged();
Q_EMIT homeHaveHighlightNotificationsChanged(); // Q_EMIT homeHaveHighlightNotificationsChanged();
}); // });
}); // });
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) { // connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
Q_UNUSED(room) // Q_UNUSED(room)
if (prev && prev->isDirectChat()) { // if (prev && prev->isDirectChat()) {
Q_EMIT directChatInvitesChanged(); // Q_EMIT directChatInvitesChanged();
Q_EMIT directChatNotificationsChanged(); // Q_EMIT directChatNotificationsChanged();
Q_EMIT directChatsHaveHighlightNotificationsChanged(); // Q_EMIT directChatsHaveHighlightNotificationsChanged();
} // }
refreshBadgeNotificationCount(); // refreshBadgeNotificationCount();
Q_EMIT homeNotificationsChanged(); // Q_EMIT homeNotificationsChanged();
Q_EMIT homeHaveHighlightNotificationsChanged(); // Q_EMIT homeHaveHighlightNotificationsChanged();
}); // });
//
connect(&SpaceHierarchyCache::instance(), &SpaceHierarchyCache::spaceHierarchyChanged, this, [this]() { // connect(&SpaceHierarchyCache::instance(), &SpaceHierarchyCache::spaceHierarchyChanged, this, [this]() {
refreshBadgeNotificationCount(); // refreshBadgeNotificationCount();
Q_EMIT homeNotificationsChanged(); // Q_EMIT homeNotificationsChanged();
Q_EMIT homeHaveHighlightNotificationsChanged(); // Q_EMIT homeHaveHighlightNotificationsChanged();
}); // });
//
// Fetch unstable features // // Fetch unstable features
// TODO: Expose unstableFeatures() in libQuotient // // TODO: Expose unstableFeatures() in libQuotient
connect( // connect(
this, // this,
&Connection::connected, // &Connection::connected,
this, // this,
[this] { // [this] {
auto job = callApi<GetVersionsJob>(BackgroundRequest); // auto job = callApi<GetVersionsJob>(BackgroundRequest);
connect(job, &GetVersionsJob::success, this, [this, job] { // connect(job, &GetVersionsJob::success, this, [this, job] {
m_canCheckMutualRooms = job->unstableFeatures().contains("uk.half-shot.msc2666.query_mutual_rooms"_L1); // m_canCheckMutualRooms = job->unstableFeatures().contains("uk.half-shot.msc2666.query_mutual_rooms"_L1);
Q_EMIT canCheckMutualRoomsChanged(); // Q_EMIT canCheckMutualRoomsChanged();
m_canEraseData = job->unstableFeatures().contains("org.matrix.msc4025"_L1) || job->versions().count("v1.10"_L1); // m_canEraseData = job->unstableFeatures().contains("org.matrix.msc4025"_L1) || job->versions().count("v1.10"_L1);
Q_EMIT canEraseDataChanged(); // Q_EMIT canEraseDataChanged();
}); // });
}, // },
Qt::SingleShotConnection); // Qt::SingleShotConnection);
setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption()); // setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
connect(NeoChatConfig::self(), &NeoChatConfig::PreferUsingEncryptionChanged, this, [] { // connect(NeoChatConfig::self(), &NeoChatConfig::PreferUsingEncryptionChanged, this, [] {
setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption()); // setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
}); // });
setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview()); // setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
connect(NeoChatConfig::self(), &NeoChatConfig::ShowLinkPreviewChanged, this, [this]() { // connect(NeoChatConfig::self(), &NeoChatConfig::ShowLinkPreviewChanged, this, [this]() {
setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview()); // setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
}); // });
} }
int NeoChatConnection::badgeNotificationCount() const int NeoChatConnection::badgeNotificationCount() const
@@ -159,11 +152,11 @@ int NeoChatConnection::badgeNotificationCount() const
void NeoChatConnection::refreshBadgeNotificationCount() void NeoChatConnection::refreshBadgeNotificationCount()
{ {
int count = 0; int count = 0;
for (const auto &r : allRooms()) { // for (const auto &r : allRooms()) {
if (const auto room = static_cast<NeoChatRoom *>(r)) { // if (const auto room = static_cast<NeoChatRoom *>(r)) {
count += room->contextAwareNotificationCount(); // count += room->contextAwareNotificationCount();
} // }
} // }
if (count != m_badgeNotificationCount) { if (count != m_badgeNotificationCount) {
m_badgeNotificationCount = count; m_badgeNotificationCount = count;
@@ -184,56 +177,58 @@ void NeoChatConnection::setGlobalUrlPreviewEnabled(bool newState)
m_globalUrlPreviewEnabled = newState; m_globalUrlPreviewEnabled = newState;
if (!m_globalUrlPreviewEnabled) { if (!m_globalUrlPreviewEnabled) {
m_linkPreviewers.clear(); // m_linkPreviewers.clear();
} }
NeoChatConfig::setShowLinkPreview(m_globalUrlPreviewEnabled); // NeoChatConfig::setShowLinkPreview(m_globalUrlPreviewEnabled);
Q_EMIT globalUrlPreviewEnabledChanged(); Q_EMIT globalUrlPreviewEnabledChanged();
} }
void NeoChatConnection::logout(bool serverSideLogout) void NeoChatConnection::logout(bool serverSideLogout)
{ {
SettingsGroup(u"Accounts"_s).remove(userId()); // SettingsGroup(u"Accounts"_s).remove(userId());
//
QKeychain::DeletePasswordJob job(qAppName()); // QKeychain::DeletePasswordJob job(qAppName());
job.setAutoDelete(true); // job.setAutoDelete(true);
job.setKey(userId()); // job.setKey(userId());
QEventLoop loop; // QEventLoop loop;
QKeychain::DeletePasswordJob::connect(&job, &QKeychain::Job::finished, &loop, &QEventLoop::quit); // QKeychain::DeletePasswordJob::connect(&job, &QKeychain::Job::finished, &loop, &QEventLoop::quit);
job.start(); // job.start();
loop.exec(); // loop.exec();
//
if (!serverSideLogout) { // if (!serverSideLogout) {
return; // return;
} // }
Connection::logout(); // Connection::logout();
} }
bool NeoChatConnection::setAvatar(const QUrl &avatarSource) bool NeoChatConnection::setAvatar(const QUrl &avatarSource)
{ {
QString decoded = avatarSource.path(); // QString decoded = avatarSource.path();
if (decoded.isEmpty()) { // if (decoded.isEmpty()) {
callApi<SetAvatarUrlJob>(user()->id(), avatarSource); // callApi<SetAvatarUrlJob>(user()->id(), avatarSource);
return true; // return true;
} // }
if (QImageReader(decoded).read().isNull()) { // if (QImageReader(decoded).read().isNull()) {
return false; // return false;
} else { // } else {
return user()->setAvatar(decoded); // return user()->setAvatar(decoded);
} // }
return {};
} }
QVariantList NeoChatConnection::getSupportedRoomVersions() const QVariantList NeoChatConnection::getSupportedRoomVersions() const
{ {
const auto &roomVersions = availableRoomVersions(); // const auto &roomVersions = availableRoomVersions();
QVariantList supportedRoomVersions; // QVariantList supportedRoomVersions;
for (const auto &v : roomVersions) { // for (const auto &v : roomVersions) {
QVariantMap roomVersionMap; // QVariantMap roomVersionMap;
roomVersionMap.insert("id"_L1, v.id); // roomVersionMap.insert("id"_L1, v.id);
roomVersionMap.insert("status"_L1, v.status); // roomVersionMap.insert("status"_L1, v.status);
roomVersionMap.insert("isStable"_L1, v.isStable()); // roomVersionMap.insert("isStable"_L1, v.isStable());
supportedRoomVersions.append(roomVersionMap); // supportedRoomVersions.append(roomVersionMap);
} // }
return supportedRoomVersions; // return supportedRoomVersions;
return {};
} }
bool NeoChatConnection::canCheckMutualRooms() const bool NeoChatConnection::canCheckMutualRooms() const
@@ -243,90 +238,86 @@ bool NeoChatConnection::canCheckMutualRooms() const
void NeoChatConnection::changePassword(const QString &currentPassword, const QString &newPassword) void NeoChatConnection::changePassword(const QString &currentPassword, const QString &newPassword)
{ {
auto job = callApi<ChangePasswordJob>(newPassword, false); // auto job = callApi<ChangePasswordJob>(newPassword, false);
connect(job, &BaseJob::result, this, [this, job, currentPassword, newPassword] { // connect(job, &BaseJob::result, this, [this, job, currentPassword, newPassword] {
if (job->error() == 103) { // if (job->error() == 103) {
QJsonObject replyData = job->jsonData(); // QJsonObject replyData = job->jsonData();
AuthenticationData authData; // AuthenticationData authData;
authData.session = replyData["session"_L1].toString(); // authData.session = replyData["session"_L1].toString();
authData.type = "m.login.password"_L1; // authData.type = "m.login.password"_L1;
authData.authInfo["password"_L1] = currentPassword; // authData.authInfo["password"_L1] = currentPassword;
authData.authInfo["user"_L1] = user()->id(); // authData.authInfo["user"_L1] = user()->id();
authData.authInfo["identifier"_L1] = QJsonObject{{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}}; // authData.authInfo["identifier"_L1] = QJsonObject{{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
auto innerJob = callApi<ChangePasswordJob>(newPassword, false, authData); // auto innerJob = callApi<ChangePasswordJob>(newPassword, false, authData);
connect(innerJob, &BaseJob::success, this, [this]() { // connect(innerJob, &BaseJob::success, this, [this]() {
Q_EMIT passwordStatus(PasswordStatus::Success); // Q_EMIT passwordStatus(PasswordStatus::Success);
}); // });
connect(innerJob, &BaseJob::failure, this, [innerJob, this]() { // connect(innerJob, &BaseJob::failure, this, [innerJob, this]() {
Q_EMIT passwordStatus(innerJob->jsonData()["errcode"_L1] == "M_FORBIDDEN"_L1 ? PasswordStatus::Wrong : PasswordStatus::Other); // Q_EMIT passwordStatus(innerJob->jsonData()["errcode"_L1] == "M_FORBIDDEN"_L1 ? PasswordStatus::Wrong : PasswordStatus::Other);
}); // });
} // }
}); // });
} }
void NeoChatConnection::setLabel(const QString &label) void NeoChatConnection::setLabel(const QString &label)
{ {
QJsonObject json{ // QJsonObject json{
{"account_label"_L1, label}, // {"account_label"_L1, label},
}; // };
setAccountData("org.kde.neochat.account_label"_L1, json); // setAccountData("org.kde.neochat.account_label"_L1, json);
Q_EMIT labelChanged(); // Q_EMIT labelChanged();
} }
QString NeoChatConnection::label() const QString NeoChatConnection::label() const
{ {
return accountDataJson("org.kde.neochat.account_label"_L1)["account_label"_L1].toString(); // return accountDataJson("org.kde.neochat.account_label"_L1)["account_label"_L1].toString();
return {};
} }
void NeoChatConnection::deactivateAccount(const QString &password, const bool erase) void NeoChatConnection::deactivateAccount(const QString &password, const bool erase)
{ {
auto job = callApi<DeactivateAccountJob>(); // auto job = callApi<DeactivateAccountJob>();
connect(job, &BaseJob::result, this, [this, job, password, erase] { // connect(job, &BaseJob::result, this, [this, job, password, erase] {
if (job->error() == 103) { // if (job->error() == 103) {
QJsonObject replyData = job->jsonData(); // QJsonObject replyData = job->jsonData();
AuthenticationData authData; // AuthenticationData authData;
authData.session = replyData["session"_L1].toString(); // authData.session = replyData["session"_L1].toString();
authData.authInfo["password"_L1] = password; // authData.authInfo["password"_L1] = password;
authData.type = "m.login.password"_L1; // authData.type = "m.login.password"_L1;
authData.authInfo["user"_L1] = user()->id(); // authData.authInfo["user"_L1] = user()->id();
QJsonObject identifier = {{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}}; // QJsonObject identifier = {{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
authData.authInfo["identifier"_L1] = identifier; // authData.authInfo["identifier"_L1] = identifier;
auto innerJob = callApi<DeactivateAccountJob>(authData, QString{}, erase); // auto innerJob = callApi<DeactivateAccountJob>(authData, QString{}, erase);
connect(innerJob, &BaseJob::success, this, [this]() { // connect(innerJob, &BaseJob::success, this, [this]() {
logout(false); // logout(false);
}); // });
} // }
}); // });
}
ThreePIdModel *NeoChatConnection::threePIdModel() const
{
return m_threePIdModel;
} }
bool NeoChatConnection::hasIdentityServer() const bool NeoChatConnection::hasIdentityServer() const
{ {
if (!hasAccountData(u"m.identity_server"_s)) { // if (!hasAccountData(u"m.identity_server"_s)) {
return false; // return false;
} // }
const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1); // const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
if (!url.isEmpty()) { // if (!url.isEmpty()) {
return true; // return true;
} // }
return false; return false;
} }
QUrl NeoChatConnection::identityServer() const QUrl NeoChatConnection::identityServer() const
{ {
if (!hasAccountData(u"m.identity_server"_s)) { // if (!hasAccountData(u"m.identity_server"_s)) {
return {}; // return {};
} // }
const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1); // const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
if (!url.isEmpty()) { // if (!url.isEmpty()) {
return url; // return url;
} // }
return {}; return {};
} }
@@ -341,92 +332,93 @@ QString NeoChatConnection::identityServerUIString() const
void NeoChatConnection::createRoom(const QString &name, const QString &topic, const QString &parent, bool setChildParent) void NeoChatConnection::createRoom(const QString &name, const QString &topic, const QString &parent, bool setChildParent)
{ {
QList<CreateRoomJob::StateEvent> initialStateEvents; // QList<CreateRoomJob::StateEvent> initialStateEvents;
if (!parent.isEmpty()) { // if (!parent.isEmpty()) {
initialStateEvents.append(CreateRoomJob::StateEvent{ // initialStateEvents.append(CreateRoomJob::StateEvent{
"m.space.parent"_L1, // "m.space.parent"_L1,
QJsonObject{ // QJsonObject{
{"canonical"_L1, true}, // {"canonical"_L1, true},
{"via"_L1, QJsonArray{domain()}}, // {"via"_L1, QJsonArray{domain()}},
}, // },
parent, // parent,
}); // });
} // }
//
const auto job = Connection::createRoom(Connection::PublishRoom, QString(), name, topic, QStringList(), {}, {}, {}, initialStateEvents); // const auto job = Connection::createRoom(Connection::PublishRoom, QString(), name, topic, QStringList(), {}, {}, {}, initialStateEvents);
if (!parent.isEmpty()) { // if (!parent.isEmpty()) {
connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() { // connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
if (setChildParent) { // if (setChildParent) {
if (auto parentRoom = room(parent)) { // if (auto parentRoom = room(parent)) {
parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}}); // parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
} // }
} // }
}); // });
} // }
connect(job, &CreateRoomJob::failure, this, [this, job] { // connect(job, &CreateRoomJob::failure, this, [this, job] {
Q_EMIT errorOccured(i18n("Room creation failed: %1", job->errorString())); // Q_EMIT errorOccured(i18n("Room creation failed: %1", job->errorString()));
}); // });
} }
void NeoChatConnection::createSpace(const QString &name, const QString &topic, const QString &parent, bool setChildParent) void NeoChatConnection::createSpace(const QString &name, const QString &topic, const QString &parent, bool setChildParent)
{ {
QList<CreateRoomJob::StateEvent> initialStateEvents; // QList<CreateRoomJob::StateEvent> initialStateEvents;
if (!parent.isEmpty()) { // if (!parent.isEmpty()) {
initialStateEvents.append(CreateRoomJob::StateEvent{ // initialStateEvents.append(CreateRoomJob::StateEvent{
"m.space.parent"_L1, // "m.space.parent"_L1,
QJsonObject{ // QJsonObject{
{"canonical"_L1, true}, // {"canonical"_L1, true},
{"via"_L1, QJsonArray{domain()}}, // {"via"_L1, QJsonArray{domain()}},
}, // },
parent, // parent,
}); // });
} // }
//
const auto job = // const auto job =
Connection::createRoom(Connection::UnpublishRoom, {}, name, topic, {}, {}, {}, false, initialStateEvents, {}, QJsonObject{{"type"_L1, "m.space"_L1}}); // Connection::createRoom(Connection::UnpublishRoom, {}, name, topic, {}, {}, {}, false, initialStateEvents, {}, QJsonObject{{"type"_L1,
if (!parent.isEmpty()) { // "m.space"_L1}});
connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() { // if (!parent.isEmpty()) {
if (setChildParent) { // connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
if (auto parentRoom = room(parent)) { // if (setChildParent) {
parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}}); // if (auto parentRoom = room(parent)) {
} // parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
} // }
}); // }
} // });
connect(job, &CreateRoomJob::failure, this, [this, job] { // }
Q_EMIT errorOccured(i18n("Space creation failed: %1", job->errorString())); // connect(job, &CreateRoomJob::failure, this, [this, job] {
}); // Q_EMIT errorOccured(i18n("Space creation failed: %1", job->errorString()));
// });
} }
bool NeoChatConnection::directChatExists(Quotient::User *user) // bool NeoChatConnection::directChatExists(Quotient::User *user)
{ // {
return directChats().contains(user); // return directChats().contains(user);
} // }
qsizetype NeoChatConnection::directChatNotifications() const qsizetype NeoChatConnection::directChatNotifications() const
{ {
qsizetype notifications = 0; qsizetype notifications = 0;
QStringList added; // The same ID can be in the list multiple times. QStringList added; // The same ID can be in the list multiple times.
for (const auto &chatId : directChats()) { // for (const auto &chatId : directChats()) {
if (!added.contains(chatId)) { // if (!added.contains(chatId)) {
if (const auto chat = room(chatId)) { // if (const auto chat = room(chatId)) {
notifications += dynamic_cast<NeoChatRoom *>(chat)->contextAwareNotificationCount(); // notifications += dynamic_cast<NeoChatRoom *>(chat)->contextAwareNotificationCount();
added += chatId; // added += chatId;
} // }
} // }
} // }
return notifications; return notifications;
} }
bool NeoChatConnection::directChatsHaveHighlightNotifications() const bool NeoChatConnection::directChatsHaveHighlightNotifications() const
{ {
for (const auto &childId : directChats()) { // for (const auto &childId : directChats()) {
if (const auto child = static_cast<NeoChatRoom *>(room(childId))) { // if (const auto child = static_cast<NeoChatRoom *>(room(childId))) {
if (child->highlightCount() > 0) { // if (child->highlightCount() > 0) {
return true; // return true;
} // }
} // }
} // }
return false; return false;
} }
@@ -434,78 +426,78 @@ qsizetype NeoChatConnection::homeNotifications() const
{ {
qsizetype notifications = 0; qsizetype notifications = 0;
QStringList added; QStringList added;
const auto &spaceHierarchyCache = SpaceHierarchyCache::instance(); // const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
for (const auto &r : allRooms()) { // for (const auto &r : allRooms()) {
if (const auto room = static_cast<NeoChatRoom *>(r)) { // if (const auto room = static_cast<NeoChatRoom *>(r)) {
if (!added.contains(room->id()) && !room->isDirectChat() && !spaceHierarchyCache.isChild(room->id())) { // if (!added.contains(room->id()) && !room->isDirectChat() && !spaceHierarchyCache.isChild(room->id())) {
notifications += dynamic_cast<NeoChatRoom *>(room)->contextAwareNotificationCount(); // notifications += dynamic_cast<NeoChatRoom *>(room)->contextAwareNotificationCount();
added += room->id(); // added += room->id();
} // }
} // }
} // }
return notifications; return notifications;
} }
bool NeoChatConnection::homeHaveHighlightNotifications() const bool NeoChatConnection::homeHaveHighlightNotifications() const
{ {
const auto &spaceHierarchyCache = SpaceHierarchyCache::instance(); // const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
for (const auto &r : allRooms()) { // for (const auto &r : allRooms()) {
if (const auto room = static_cast<NeoChatRoom *>(r)) { // if (const auto room = static_cast<NeoChatRoom *>(r)) {
if (!room->isDirectChat() && !spaceHierarchyCache.isChild(room->id()) && room->highlightCount() > 0) { // if (!room->isDirectChat() && !spaceHierarchyCache.isChild(room->id()) && room->highlightCount() > 0) {
return true; // return true;
} // }
} // }
} // }
return false; return false;
} }
bool NeoChatConnection::directChatInvites() const bool NeoChatConnection::directChatInvites() const
{ {
auto inviteRooms = rooms(JoinState::Invite); // auto inviteRooms = rooms(JoinState::Invite);
for (const auto inviteRoom : inviteRooms) { // for (const auto inviteRoom : inviteRooms) {
if (inviteRoom->isDirectChat()) { // if (inviteRoom->isDirectChat()) {
return true; // return true;
} // }
} // }
return false; return false;
} }
QCoro::Task<void> NeoChatConnection::setupPushNotifications(QString endpoint) // QCoro::Task<void> NeoChatConnection::setupPushNotifications(QString endpoint)
{ // {
#ifdef HAVE_KUNIFIEDPUSH // #ifdef HAVE_KUNIFIEDPUSH
QUrl gatewayEndpoint(endpoint); // QUrl gatewayEndpoint(endpoint);
gatewayEndpoint.setPath(u"/_matrix/push/v1/notify"_s); // gatewayEndpoint.setPath(u"/_matrix/push/v1/notify"_s);
//
QNetworkRequest checkGateway(gatewayEndpoint); // QNetworkRequest checkGateway(gatewayEndpoint);
auto reply = co_await NetworkAccessManager::instance()->get(checkGateway); // auto reply = co_await NetworkAccessManager::instance()->get(checkGateway);
//
// We want to check if this UnifiedPush server has a Matrix gateway // // We want to check if this UnifiedPush server has a Matrix gateway
// This is because Matrix does not natively support UnifiedPush // // This is because Matrix does not natively support UnifiedPush
const auto &replyJson = QJsonDocument::fromJson(reply->readAll()).object(); // const auto &replyJson = QJsonDocument::fromJson(reply->readAll()).object();
//
if (replyJson["unifiedpush"_L1]["gateway"_L1].toString() == u"matrix"_s) { // if (replyJson["unifiedpush"_L1]["gateway"_L1].toString() == u"matrix"_s) {
callApi<PostPusherJob>(endpoint, // callApi<PostPusherJob>(endpoint,
u"http"_s, // u"http"_s,
u"org.kde.neochat"_s, // u"org.kde.neochat"_s,
u"NeoChat"_s, // u"NeoChat"_s,
deviceId(), // deviceId(),
QString(), // profileTag is intentionally left empty for now, it's optional // QString(), // profileTag is intentionally left empty for now, it's optional
u"en-US"_s, // u"en-US"_s,
PostPusherJob::PusherData{QUrl::fromUserInput(gatewayEndpoint.toString()), u" "_s}, // PostPusherJob::PusherData{QUrl::fromUserInput(gatewayEndpoint.toString()), u" "_s},
false); // false);
//
qInfo() << "Registered for push notifications"; // qInfo() << "Registered for push notifications";
m_pushNotificationsEnabled = true; // m_pushNotificationsEnabled = true;
} else { // } else {
qWarning() << "There's no gateway, not setting up push notifications."; // qWarning() << "There's no gateway, not setting up push notifications.";
m_pushNotificationsEnabled = false; // m_pushNotificationsEnabled = false;
} // }
Q_EMIT enablePushNotificationsChanged(); // Q_EMIT enablePushNotificationsChanged();
#else // #else
Q_UNUSED(endpoint) // Q_UNUSED(endpoint)
co_return; // co_return;
#endif // #endif
} // }
bool NeoChatConnection::isOnline() const bool NeoChatConnection::isOnline() const
{ {
@@ -523,39 +515,39 @@ void NeoChatConnection::setIsOnline(bool isOnline)
QString NeoChatConnection::accountDataJsonString(const QString &type) const QString NeoChatConnection::accountDataJsonString(const QString &type) const
{ {
return QString::fromUtf8(QJsonDocument(accountDataJson(type)).toJson()); return {}; // QString::fromUtf8(QJsonDocument(accountDataJson(type)).toJson());
} }
LinkPreviewer *NeoChatConnection::previewerForLink(const QUrl &link) // LinkPreviewer *NeoChatConnection::previewerForLink(const QUrl &link)
{ // {
if (!m_globalUrlPreviewEnabled) { // if (!m_globalUrlPreviewEnabled) {
return nullptr; // return nullptr;
} // }
//
// auto previewer = m_linkPreviewers.object(link);
// if (previewer != nullptr) {
// return previewer;
// }
//
// previewer = new LinkPreviewer(link, this);
// m_linkPreviewers.insert(link, previewer);
// return previewer;
// }
auto previewer = m_linkPreviewers.object(link); // KeyImport::Error NeoChatConnection::exportMegolmSessions(const QString &passphrase, const QString &path)
if (previewer != nullptr) { // {
return previewer; // KeyImport keyImport;
} // auto result = keyImport.exportKeys(passphrase, this);
// if (!result.has_value()) {
previewer = new LinkPreviewer(link, this); // return result.error();
m_linkPreviewers.insert(link, previewer); // }
return previewer; // QUrl url(path);
} // QFile file(url.toLocalFile());
// file.open(QFile::WriteOnly);
KeyImport::Error NeoChatConnection::exportMegolmSessions(const QString &passphrase, const QString &path) // file.write(result.value());
{ // file.close();
KeyImport keyImport; // return KeyImport::Success;
auto result = keyImport.exportKeys(passphrase, this); // }
if (!result.has_value()) {
return result.error();
}
QUrl url(path);
QFile file(url.toLocalFile());
file.open(QFile::WriteOnly);
file.write(result.value());
file.close();
return KeyImport::Success;
}
bool NeoChatConnection::canEraseData() const bool NeoChatConnection::canEraseData() const
{ {

View File

@@ -7,16 +7,16 @@
#include <QObject> #include <QObject>
#include <QQmlEngine> #include <QQmlEngine>
#include <Integral/Connection>
#include <QCoroTask> #include <QCoroTask>
#include <Quotient/connection.h>
#include <Quotient/keyimport.h> // #include <Quotient/keyimport.h>
#include "enums/messagetype.h" // #include "enums/messagetype.h"
#include "linkpreviewer.h" // #include "linkpreviewer.h"
#include "models/threepidmodel.h" // #include "models/threepidmodel.h"
class NeoChatConnection : public Quotient::Connection class NeoChatConnection : public Integral::Connection
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT QML_ELEMENT
@@ -37,11 +37,6 @@ class NeoChatConnection : public Quotient::Connection
*/ */
Q_PROPERTY(bool globalUrlPreviewEnabled READ globalUrlPreviewEnabled WRITE setGlobalUrlPreviewEnabled NOTIFY globalUrlPreviewEnabledChanged) Q_PROPERTY(bool globalUrlPreviewEnabled READ globalUrlPreviewEnabled WRITE setGlobalUrlPreviewEnabled NOTIFY globalUrlPreviewEnabledChanged)
/**
* @brief The model with the account's 3PIDs.
*/
Q_PROPERTY(ThreePIdModel *threePIdModel READ threePIdModel CONSTANT)
/** /**
* @brief Whether an identity server is configured. * @brief Whether an identity server is configured.
*/ */
@@ -116,8 +111,7 @@ public:
}; };
Q_ENUM(PasswordStatus) Q_ENUM(PasswordStatus)
NeoChatConnection(QObject *parent = nullptr); NeoChatConnection(std::unique_ptr<Integral::Connection::Private> d);
NeoChatConnection(const QUrl &server, QObject *parent = nullptr);
Q_INVOKABLE void logout(bool serverSideLogout); Q_INVOKABLE void logout(bool serverSideLogout);
Q_INVOKABLE QVariantList getSupportedRoomVersions() const; Q_INVOKABLE QVariantList getSupportedRoomVersions() const;
@@ -144,8 +138,6 @@ public:
Q_INVOKABLE void deactivateAccount(const QString &password, bool erase); Q_INVOKABLE void deactivateAccount(const QString &password, bool erase);
ThreePIdModel *threePIdModel() const;
bool hasIdentityServer() const; bool hasIdentityServer() const;
/** /**
@@ -170,14 +162,14 @@ public:
/** /**
* @brief Whether a direct chat with the user exists. * @brief Whether a direct chat with the user exists.
*/ */
Q_INVOKABLE bool directChatExists(Quotient::User *user); // Q_INVOKABLE bool directChatExists(Quotient::User *user);
/** /**
* @brief Get the account data with \param type as a formatted JSON string. * @brief Get the account data with \param type as a formatted JSON string.
*/ */
Q_INVOKABLE QString accountDataJsonString(const QString &type) const; Q_INVOKABLE QString accountDataJsonString(const QString &type) const;
Q_INVOKABLE Quotient::KeyImport::Error exportMegolmSessions(const QString &passphrase, const QString &path); // Q_INVOKABLE Quotient::KeyImport::Error exportMegolmSessions(const QString &passphrase, const QString &path);
qsizetype directChatNotifications() const; qsizetype directChatNotifications() const;
bool directChatsHaveHighlightNotifications() const; bool directChatsHaveHighlightNotifications() const;
@@ -194,14 +186,14 @@ public:
// note: this is intentionally a copied QString because // note: this is intentionally a copied QString because
// the reference could be destroyed before the task is finished // the reference could be destroyed before the task is finished
QCoro::Task<void> setupPushNotifications(QString endpoint); // QCoro::Task<void> setupPushNotifications(QString endpoint);
bool pushNotificationsAvailable() const; bool pushNotificationsAvailable() const;
bool enablePushNotifications() const; bool enablePushNotifications() const;
bool isOnline() const; bool isOnline() const;
LinkPreviewer *previewerForLink(const QUrl &link); // LinkPreviewer *previewerForLink(const QUrl &link);
Q_SIGNALS: Q_SIGNALS:
void globalUrlPreviewEnabledChanged(); void globalUrlPreviewEnabledChanged();
@@ -223,7 +215,7 @@ Q_SIGNALS:
/** /**
* @brief Request a message be shown to the user of the given type. * @brief Request a message be shown to the user of the given type.
*/ */
void showMessage(MessageType::Type messageType, const QString &message); // void showMessage(MessageType::Type messageType, const QString &message);
/** /**
* @brief Request a error message be shown to the user. * @brief Request a error message be shown to the user.
@@ -234,14 +226,12 @@ private:
bool m_isOnline = true; bool m_isOnline = true;
void setIsOnline(bool isOnline); void setIsOnline(bool isOnline);
ThreePIdModel *m_threePIdModel;
void connectSignals(); void connectSignals();
int m_badgeNotificationCount = 0; int m_badgeNotificationCount = 0;
bool m_globalUrlPreviewEnabled = true; bool m_globalUrlPreviewEnabled = true;
QCache<QUrl, LinkPreviewer> m_linkPreviewers; // QCache<QUrl, LinkPreviewer> m_linkPreviewers;
bool m_canCheckMutualRooms = false; bool m_canCheckMutualRooms = false;
bool m_canEraseData = false; bool m_canEraseData = false;

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,9 @@
#pragma once #pragma once
#include <Quotient/events/roomevent.h> // #include <Quotient/events/roomevent.h>
#include <Quotient/room.h> // #include <Quotient/room.h>
#include <Integral/Room>
#include <QCache> #include <QCache>
#include <QObject> #include <QObject>
@@ -13,12 +14,12 @@
#include <QCoroTask> #include <QCoroTask>
#include <Quotient/roommember.h> #include <Quotient/roommember.h>
#include "enums/messagetype.h"
#include "enums/pushrule.h" #include "enums/pushrule.h"
#include "models/messagecontentmodel.h" // #include "enums/messagetype.h"
#include "models/threadmodel.h" // #include "models/messagecontentmodel.h"
#include "neochatroommember.h" // #include "models/threadmodel.h"
#include "pollhandler.h" // #include "neochatroommember.h"
// #include "pollhandler.h"
namespace Quotient namespace Quotient
{ {
@@ -39,7 +40,7 @@ class ChatBarCache;
* *
* @sa Quotient::Room * @sa Quotient::Room
*/ */
class NeoChatRoom : public Quotient::Room class NeoChatRoom : public Integral::Room
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT QML_ELEMENT
@@ -79,7 +80,7 @@ class NeoChatRoom : public Quotient::Room
/** /**
* @brief Get a RoomMember object for the other person in a direct chat. * @brief Get a RoomMember object for the other person in a direct chat.
*/ */
Q_PROPERTY(NeochatRoomMember *directChatRemoteMember READ directChatRemoteMember CONSTANT) // Q_PROPERTY(NeochatRoomMember *directChatRemoteMember READ directChatRemoteMember CONSTANT)
/** /**
* @brief The Matrix IDs of this room's parents. * @brief The Matrix IDs of this room's parents.
@@ -183,20 +184,20 @@ class NeoChatRoom : public Quotient::Room
/** /**
* @brief The cache for the main chat bar in the room. * @brief The cache for the main chat bar in the room.
*/ */
Q_PROPERTY(ChatBarCache *mainCache READ mainCache CONSTANT) // Q_PROPERTY(ChatBarCache *mainCache READ mainCache CONSTANT)
/** /**
* @brief The cache for the edit chat bar in the room. * @brief The cache for the edit chat bar in the room.
*/ */
Q_PROPERTY(ChatBarCache *editCache READ editCache CONSTANT) // Q_PROPERTY(ChatBarCache *editCache READ editCache CONSTANT)
/** /**
* @brief The cache for the thread chat bar in the room. * @brief The cache for the thread chat bar in the room.
*/ */
Q_PROPERTY(ChatBarCache *threadCache READ threadCache CONSTANT) // Q_PROPERTY(ChatBarCache *threadCache READ threadCache CONSTANT)
public: public:
explicit NeoChatRoom(Quotient::Connection *connection, QString roomId, Quotient::JoinState joinState = {}); explicit NeoChatRoom(std::unique_ptr<Private> d, QObject *parent = nullptr);
bool visible() const; bool visible() const;
void setVisible(bool visible); void setVisible(bool visible);
@@ -212,7 +213,7 @@ public:
* @warning This function can return an empty pointer if the room does not have * @warning This function can return an empty pointer if the room does not have
* any RoomMessageEvents loaded. * any RoomMessageEvents loaded.
*/ */
[[nodiscard]] const Quotient::RoomEvent *lastEvent() const; // [[nodiscard]] const Quotient::RoomEvent *lastEvent() const;
/** /**
* @brief Convenient way to check if the last event looks like it has spoilers. * @brief Convenient way to check if the last event looks like it has spoilers.
@@ -259,7 +260,7 @@ public:
* An event is highlighted if it contains the local user's id but was not sent by the * An event is highlighted if it contains the local user's id but was not sent by the
* local user. * local user.
*/ */
bool isEventHighlighted(const Quotient::RoomEvent *e) const; // bool isEventHighlighted(const Quotient::RoomEvent *e) const;
/** /**
* @brief Convenience function to find out if the room contains the given user. * @brief Convenience function to find out if the room contains the given user.
@@ -312,7 +313,7 @@ public:
[[nodiscard]] QUrl avatarMediaUrl() const; [[nodiscard]] QUrl avatarMediaUrl() const;
NeochatRoomMember *directChatRemoteMember(); // NeochatRoomMember *directChatRemoteMember();
/** /**
* @brief Whether this room has one or more parent spaces set. * @brief Whether this room has one or more parent spaces set.
@@ -501,14 +502,14 @@ public:
* *
* @sa PollHandler * @sa PollHandler
*/ */
PollHandler *poll(const QString &eventId) const; // PollHandler *poll(const QString &eventId) const;
/** /**
* @brief Create a PollHandler object for the given event. * @brief Create a PollHandler object for the given event.
* *
* @sa PollHandler * @sa PollHandler
*/ */
void createPollHandler(const Quotient::PollStartEvent *event); // void createPollHandler(const Quotient::PollStartEvent *event);
/** /**
* @brief Get the full Json data for a given room account data event. * @brief Get the full Json data for a given room account data event.
@@ -533,12 +534,12 @@ public:
* *
* The result will be nullptr if not found so needs to be managed. * The result will be nullptr if not found so needs to be managed.
*/ */
std::pair<const Quotient::RoomEvent *, bool> getEvent(const QString &eventId) const; // std::pair<const Quotient::RoomEvent *, bool> getEvent(const QString &eventId) const;
/** /**
* @brief Returns the event that is being replied to. This includes events that were manually loaded using NeoChatRoom::loadReply. * @brief Returns the event that is being replied to. This includes events that were manually loaded using NeoChatRoom::loadReply.
*/ */
const Quotient::RoomEvent *getReplyForEvent(const Quotient::RoomEvent &event) const; // const Quotient::RoomEvent *getReplyForEvent(const Quotient::RoomEvent &event) const;
/** /**
* If we're invited to this room, the user that invited us. Undefined in other cases. * If we're invited to this room, the user that invited us. Undefined in other cases.
@@ -551,7 +552,7 @@ public:
* If we downloaded the file previously, return a struct with Completed status * If we downloaded the file previously, return a struct with Completed status
* and the local file path stored in KSharedCOnfig * and the local file path stored in KSharedCOnfig
*/ */
Quotient::FileTransferInfo cachedFileTransferInfo(const Quotient::RoomEvent *event) const; // Quotient::FileTransferInfo cachedFileTransferInfo(const Quotient::RoomEvent *event) const;
/** /**
* @brief Return a NeochatRoomMember object for the given user ID. * @brief Return a NeochatRoomMember object for the given user ID.
@@ -562,7 +563,7 @@ public:
* responsibility of the caller to ensure that they only ask for objects * responsibility of the caller to ensure that they only ask for objects
* for real senders. * for real senders.
*/ */
NeochatRoomMember *qmlSafeMember(const QString &memberId); // NeochatRoomMember *qmlSafeMember(const QString &memberId);
/** /**
* @brief Returns the content model for the given event ID. * @brief Returns the content model for the given event ID.
@@ -576,7 +577,7 @@ public:
* *
* @warning Do NOT use for pending events as this function has no way to differentiate. * @warning Do NOT use for pending events as this function has no way to differentiate.
*/ */
MessageContentModel *contentModelForEvent(const QString &evtOrTxnId); // MessageContentModel *contentModelForEvent(const QString &evtOrTxnId);
/** /**
* @brief Returns the content model for the given event. * @brief Returns the content model for the given event.
@@ -591,7 +592,7 @@ public:
* *
* @note This version must be used for pending events as it can differentiate. * @note This version must be used for pending events as it can differentiate.
*/ */
MessageContentModel *contentModelForEvent(const Quotient::RoomEvent *event); // MessageContentModel *contentModelForEvent(const Quotient::RoomEvent *event);
/** /**
* @brief Returns the thread model for the given thread root event ID. * @brief Returns the thread model for the given thread root event ID.
@@ -599,7 +600,7 @@ public:
* A model is created is one doesn't exist. Will return nullptr if threadRootId * A model is created is one doesn't exist. Will return nullptr if threadRootId
* is empty. * is empty.
*/ */
Q_INVOKABLE ThreadModel *modelForThread(const QString &threadRootId); // Q_INVOKABLE ThreadModel *modelForThread(const QString &threadRootId);
/** /**
* @brief Pin a message in the room. * @brief Pin a message in the room.
@@ -621,7 +622,7 @@ public:
private: private:
bool m_visible = false; bool m_visible = false;
QSet<const Quotient::RoomEvent *> highlights; // QSet<const Quotient::RoomEvent *> highlights;
bool m_hasFileUploading = false; bool m_hasFileUploading = false;
int m_fileUploadingProgress = 0; int m_fileUploadingProgress = 0;
@@ -629,29 +630,29 @@ private:
PushNotificationState::State m_currentPushNotificationState = PushNotificationState::Unknown; PushNotificationState::State m_currentPushNotificationState = PushNotificationState::Unknown;
bool m_pushNotificationStateUpdating = false; bool m_pushNotificationStateUpdating = false;
void checkForHighlights(const Quotient::TimelineItem &ti); // void checkForHighlights(const Quotient::TimelineItem &ti);
void onAddNewTimelineEvents(timeline_iter_t from) override; // void onAddNewTimelineEvents(timeline_iter_t from) override;
void onAddHistoricalTimelineEvents(rev_iter_t from) override; // void onAddHistoricalTimelineEvents(rev_iter_t from) override;
void onRedaction(const Quotient::RoomEvent &prevEvent, const Quotient::RoomEvent &after) override; // void onRedaction(const Quotient::RoomEvent &prevEvent, const Quotient::RoomEvent &after) override;
QCoro::Task<void> doDeleteMessagesByUser(const QString &user, QString reason); // QCoro::Task<void> doDeleteMessagesByUser(const QString &user, QString reason);
QCoro::Task<void> doUploadFile(QUrl url, QString body = QString()); QCoro::Task<void> doUploadFile(QUrl url, QString body = QString());
std::unique_ptr<Quotient::RoomEvent> m_cachedEvent; // std::unique_ptr<Quotient::RoomEvent> m_cachedEvent;
ChatBarCache *m_mainCache; ChatBarCache *m_mainCache;
ChatBarCache *m_editCache; ChatBarCache *m_editCache;
ChatBarCache *m_threadCache; ChatBarCache *m_threadCache;
QCache<QString, PollHandler> m_polls; // QCache<QString, PollHandler> m_polls;
std::vector<Quotient::event_ptr_tt<Quotient::RoomEvent>> m_extraEvents; // std::vector<Quotient::event_ptr_tt<Quotient::RoomEvent>> m_extraEvents;
void cleanupExtraEventRange(Quotient::RoomEventsRange events); // void cleanupExtraEventRange(Quotient::RoomEventsRange events);
void cleanupExtraEvent(const QString &eventId); void cleanupExtraEvent(const QString &eventId);
std::unordered_map<QString, std::unique_ptr<NeochatRoomMember>> m_memberObjects; // std::unordered_map<QString, std::unique_ptr<NeochatRoomMember>> m_memberObjects;
std::unordered_map<QString, std::unique_ptr<MessageContentModel>> m_eventContentModels; // std::unordered_map<QString, std::unique_ptr<MessageContentModel>> m_eventContentModels;
std::unordered_map<QString, std::unique_ptr<ThreadModel>> m_threadModels; // std::unordered_map<QString, std::unique_ptr<ThreadModel>> m_threadModels;
private Q_SLOTS: private Q_SLOTS:
void updatePushNotificationState(QString type); void updatePushNotificationState(QString type);
@@ -681,11 +682,12 @@ Q_SIGNALS:
void maxRoomVersionChanged(); void maxRoomVersionChanged();
void extraEventLoaded(const QString &eventId); void extraEventLoaded(const QString &eventId);
void extraEventNotFound(const QString &eventId); void extraEventNotFound(const QString &eventId);
void avatarChanged();
/** /**
* @brief Request a message be shown to the user of the given type. * @brief Request a message be shown to the user of the given type.
*/ */
void showMessage(MessageType::Type messageType, const QString &message); // void showMessage(MessageType::Type messageType, const QString &message);
public Q_SLOTS: public Q_SLOTS:
/** /**

View File

@@ -75,7 +75,7 @@ Kirigami.Dialog {
} }
} }
clip: true clip: true
model: AccountRegistry model: Accounts
keyNavigationEnabled: false keyNavigationEnabled: false
Keys.onDownPressed: { Keys.onDownPressed: {

View File

@@ -23,8 +23,8 @@ Kirigami.ApplicationWindow {
title: { title: {
if (NeoChatConfig.windowTitleFocus) { if (NeoChatConfig.windowTitleFocus) {
return activeFocusItem + " " + (activeFocusItem ? activeFocusItem.Accessible.name : ""); return activeFocusItem + " " + (activeFocusItem ? activeFocusItem.Accessible.name : "");
} else if (RoomManager.currentRoom) { // } else if (RoomManager.currentRoom) {
return RoomManager.currentRoom.displayName; // return RoomManager.currentRoom.displayName;
} else { } else {
return Application.displayName; return Application.displayName;
} }
@@ -49,20 +49,20 @@ Kirigami.ApplicationWindow {
} }
onConnectionChanged: { onConnectionChanged: {
CustomEmojiModel.connection = root.connection; // CustomEmojiModel.connection = root.connection;
SpaceHierarchyCache.connection = root.connection; // SpaceHierarchyCache.connection = root.connection;
NeoChatSettingsView.connection = root.connection; NeoChatSettingsView.connection = root.connection;
if (ShareHandler.text && root.connection) { // if (ShareHandler.text && root.connection) {
root.handleShare(); // root.handleShare();
} // }
} }
Connections { // Connections {
target: LoginHelper // target: LoginHelper
function onLoaded() { // function onLoaded() {
root.load(); // root.load();
} // }
} // }
Connections { Connections {
target: root.quitAction target: root.quitAction
@@ -83,64 +83,64 @@ Kirigami.ApplicationWindow {
configGroupName: "MainWindow" configGroupName: "MainWindow"
} }
QuickSwitcher { // QuickSwitcher {
id: quickSwitcher // id: quickSwitcher
connection: root.connection // connection: root.connection
} // }
Connections {
target: RoomManager
function onCurrentRoomChanged() {
if (RoomManager.currentRoom && pageStack.depth <= 1 && root.initialized && Kirigami.Settings.isMobile) {
let roomPage = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'RoomPage'), {
connection: root.connection
});
roomPage.backRequested.connect(event => {
RoomManager.clearCurrentRoom();
});
}
}
function onAskJoinRoom(room) {
Qt.createComponent("org.kde.neochat", "JoinRoomDialog").createObject(root, {
room: room,
connection: root.connection
}).open();
}
function onShowUserDetail(user, room) {
root.showUserDetail(user, room);
}
function goToEvent(event) {
if (event.length > 0) {
roomItem.goToEvent(event);
}
roomItem.forceActiveFocus();
}
function onAskDirectChatConfirmation(user) {
Qt.createComponent("org.kde.neochat", "AskDirectChatConfirmation").createObject(this, {
user: user
}).open();
}
function onExternalUrl(url) {
let dialog = Qt.createComponent("org.kde.neochat", "ConfirmUrlDialog").createObject(this);
dialog.link = url;
dialog.open();
}
}
function pushReplaceLayer(page, args) {
if (pageStack.layers.depth === 2) {
pageStack.layers.replace(page, args);
} else {
pageStack.layers.push(page, args);
}
}
// Connections {
// target: RoomManager
//
// function onCurrentRoomChanged() {
// if (RoomManager.currentRoom && pageStack.depth <= 1 && root.initialized && Kirigami.Settings.isMobile) {
// let roomPage = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'RoomPage'), {
// connection: root.connection
// });
// roomPage.backRequested.connect(event => {
// RoomManager.clearCurrentRoom();
// });
// }
// }
//
// function onAskJoinRoom(room) {
// Qt.createComponent("org.kde.neochat", "JoinRoomDialog").createObject(root, {
// room: room,
// connection: root.connection
// }).open();
// }
//
// function onShowUserDetail(user, room) {
// root.showUserDetail(user, room);
// }
//
// function goToEvent(event) {
// if (event.length > 0) {
// roomItem.goToEvent(event);
// }
// roomItem.forceActiveFocus();
// }
//
// function onAskDirectChatConfirmation(user) {
// Qt.createComponent("org.kde.neochat", "AskDirectChatConfirmation").createObject(this, {
// user: user
// }).open();
// }
//
// function onExternalUrl(url) {
// let dialog = Qt.createComponent("org.kde.neochat", "ConfirmUrlDialog").createObject(this);
// dialog.link = url;
// dialog.open();
// }
// }
//
// function pushReplaceLayer(page, args) {
// if (pageStack.layers.depth === 2) {
// pageStack.layers.replace(page, args);
// } else {
// pageStack.layers.push(page, args);
// }
// }
//
function openRoomDrawer() { function openRoomDrawer() {
pageStack.push(Qt.createComponent('org.kde.neochat', 'RoomDrawerPage'), { pageStack.push(Qt.createComponent('org.kde.neochat', 'RoomDrawerPage'), {
connection: root.connection connection: root.connection
@@ -183,15 +183,15 @@ Kirigami.ApplicationWindow {
} }
Component.onCompleted: { Component.onCompleted: {
CustomEmojiModel.connection = root.connection; // CustomEmojiModel.connection = root.connection;
SpaceHierarchyCache.connection = root.connection; // SpaceHierarchyCache.connection = root.connection;
RoomSettingsView.window = root; // RoomSettingsView.window = root;
NeoChatSettingsView.window = root; NeoChatSettingsView.window = root;
NeoChatSettingsView.connection = root.connection; NeoChatSettingsView.connection = root.connection;
WindowController.setBlur(pageStack, NeoChatConfig.blur && !NeoChatConfig.compactLayout); WindowController.setBlur(pageStack, NeoChatConfig.blur && !NeoChatConfig.compactLayout);
if (ShareHandler.text && root.connection) { // if (ShareHandler.text && root.connection) {
root.handleShare() // root.handleShare()
} // }
const hasSystemTray = Controller.supportSystemTray && NeoChatConfig.systemTray; const hasSystemTray = Controller.supportSystemTray && NeoChatConfig.systemTray;
if (Kirigami.Settings.isMobile || !(hasSystemTray && NeoChatConfig.minimizeToSystemTrayOnStartup)) { if (Kirigami.Settings.isMobile || !(hasSystemTray && NeoChatConfig.minimizeToSystemTrayOnStartup)) {
visible = true; visible = true;
@@ -210,7 +210,7 @@ Kirigami.ApplicationWindow {
// blur effect // blur effect
color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? "transparent" : Kirigami.Theme.backgroundColor color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? "transparent" : Kirigami.Theme.backgroundColor
// we need to apply the translucency effect separately on top of the color // // we need to apply the translucency effect separately on top of the color
background: Rectangle { background: Rectangle {
color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 1 - NeoChatConfig.transparency) : "transparent" color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 1 - NeoChatConfig.transparency) : "transparent"
} }
@@ -220,7 +220,7 @@ Kirigami.ApplicationWindow {
RoomListPage { RoomListPage {
id: roomList id: roomList
onSearch: quickSwitcher.open() // onSearch: quickSwitcher.open()
connection: root.connection connection: root.connection
@@ -255,9 +255,9 @@ Kirigami.ApplicationWindow {
} }
Connections { Connections {
target: AccountRegistry target: Accounts
function onRowsRemoved() { function onRowsRemoved() {
if (AccountRegistry.rowCount() === 0) { if (Accounts.rowCount() === 0) {
pageStack.clear(); pageStack.clear();
pageStack.push(Qt.createComponent('org.kde.neochat.login', 'WelcomePage')); pageStack.push(Qt.createComponent('org.kde.neochat.login', 'WelcomePage'));
} }
@@ -272,22 +272,22 @@ Kirigami.ApplicationWindow {
} }
} }
Connections { // Connections {
target: root.connection // target: root.connection
//
function onNewKeyVerificationSession(session) { // function onNewKeyVerificationSession(session) {
root.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "KeyVerificationDialog"), { // root.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "KeyVerificationDialog"), {
session: session // session: session
}, { // }, {
title: i18nc("@title:window", "Session Verification") // title: i18nc("@title:window", "Session Verification")
}); // });
} // }
function onUserConsentRequired(url) { // function onUserConsentRequired(url) {
Qt.createComponent("org.kde.neochat", "ConsentDialog").createObject(this, { // Qt.createComponent("org.kde.neochat", "ConsentDialog").createObject(this, {
url: url // url: url
}).open(); // }).open();
} // }
} // }
HoverLinkIndicator { HoverLinkIndicator {
id: linkIndicator id: linkIndicator
@@ -303,36 +303,36 @@ Kirigami.ApplicationWindow {
} }
} }
Connections { // Connections {
target: ShareHandler // target: ShareHandler
function onTextChanged(): void { // function onTextChanged(): void {
if (root.connection && ShareHandler.text.length > 0) { // if (root.connection && ShareHandler.text.length > 0) {
root.handleShare(); // root.handleShare();
} // }
} // }
} // }
function handleShare(): void { // function handleShare(): void {
const dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), { // const dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), {
connection: root.connection // connection: root.connection
}, { // }, {
title: i18nc("@title", "Share"), // title: i18nc("@title", "Share"),
width: Kirigami.Units.gridUnit * 25 // width: Kirigami.Units.gridUnit * 25
}) // })
dialog.chosen.connect(function(targetRoomId) { // dialog.chosen.connect(function(targetRoomId) {
RoomManager.resolveResource(targetRoomId) // RoomManager.resolveResource(targetRoomId)
ShareHandler.room = targetRoomId // ShareHandler.room = targetRoomId
dialog.closeDialog() // dialog.closeDialog()
}) // })
} // }
function showUserDetail(user, room) { // function showUserDetail(user, room) {
const dialog = Qt.createComponent("org.kde.neochat", "UserDetailDialog").createObject(root, { // const dialog = Qt.createComponent("org.kde.neochat", "UserDetailDialog").createObject(root, {
room: room, // room: room,
user: user, // user: user,
connection: root.connection, // connection: root.connection,
}); // });
dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again // dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again
dialog.open(); // dialog.open();
} // }
function load() { function load() {
pageStack.replace(roomListComponent); pageStack.replace(roomListComponent);

View File

@@ -19,7 +19,7 @@ Delegates.RoundedItemDelegate {
required property int index required property int index
required property int contextNotificationCount required property int contextNotificationCount
required property bool hasHighlightNotifications required property bool hasHighlightNotifications
required property NeoChatRoom currentRoom required property string roomId
required property NeoChatConnection connection required property NeoChatConnection connection
required property url avatar required property url avatar
required property string subtitleText required property string subtitleText
@@ -37,11 +37,13 @@ Delegates.RoundedItemDelegate {
onClicked: { onClicked: {
if (root.openOnClick) { if (root.openOnClick) {
RoomManager.resolveResource(currentRoom.id); root.connection.open(root.roomId)
pageStack.currentIndex = 1; pageStack.currentIndex = 1;
} }
} }
onPressAndHold: createRoomListContextMenu()
Keys.onSpacePressed: clicked() Keys.onSpacePressed: clicked()
Keys.onEnterPressed: clicked() Keys.onEnterPressed: clicked()
Keys.onReturnPressed: clicked() Keys.onReturnPressed: clicked()
@@ -52,19 +54,14 @@ Delegates.RoundedItemDelegate {
onTapped: (eventPoint, button) => root.createRoomListContextMenu() onTapped: (eventPoint, button) => root.createRoomListContextMenu()
} }
TapHandler {
acceptedDevices: PointerDevice.TouchScreen
onLongPressed: root.createRoomListContextMenu()
}
contentItem: RowLayout { contentItem: RowLayout {
spacing: Kirigami.Units.largeSpacing spacing: Kirigami.Units.largeSpacing
AvatarNotification { AvatarNotification {
source: root.avatar source: root.avatar
name: root.displayName name: root.displayName
visible: NeoChatConfig.showAvatarInRoomDrawer // visible: NeoChatConfig.showAvatarInRoomDrawer
implicitHeight: Kirigami.Units.gridUnit + (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2) implicitHeight: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2 // (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2)
implicitWidth: visible ? implicitHeight : 0 implicitWidth: visible ? implicitHeight : 0
notificationCount: root.contextNotificationCount notificationCount: root.contextNotificationCount
@@ -101,7 +98,7 @@ Delegates.RoundedItemDelegate {
elide: Text.ElideRight elide: Text.ElideRight
font: Kirigami.Theme.smallFont font: Kirigami.Theme.smallFont
opacity: root.hasNotifications ? 0.9 : 0.7 opacity: root.hasNotifications ? 0.9 : 0.7
visible: !NeoChatConfig.compactRoomList && text.length > 0 // visible: !NeoChatConfig.compactRoomList && text.length > 0
textFormat: Text.PlainText textFormat: Text.PlainText
Layout.fillWidth: true Layout.fillWidth: true
@@ -147,7 +144,7 @@ Delegates.RoundedItemDelegate {
QQC2.Button { QQC2.Button {
id: configButton id: configButton
visible: root.hovered && !Kirigami.Settings.isMobile && !NeoChatConfig.compactRoomList && !root.collapsed && root.showConfigure visible: root.hovered && !Kirigami.Settings.isMobile /*&& !NeoChatConfig.compactRoomList*/ && !root.collapsed && root.showConfigure
text: i18n("Configure room") text: i18n("Configure room")
display: QQC2.Button.IconOnly display: QQC2.Button.IconOnly

View File

@@ -1,295 +1,117 @@
// SPDX-FileCopyrightText: 2019 Black Hat <bhat@encom.eu.org> // SPDX-FileCopyrightText: 2025 Tobias Fella <tobias.fella@kde.org>
// SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu> // SPDX-License-Identifier: GPL-2.0-or-later
// SPDX-License-Identifier: GPL-3.0-only
pragma ComponentBehavior: Bound
import QtQuick import QtQuick
import QtQuick.Controls as QQC2 import QtQuick.Controls as QQC2
import QtQuick.Layouts import QtQuick.Layouts
import QtQml.Models
import Qt.labs.qmlmodels import Qt.labs.qmlmodels
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.components as KirigamiComponents import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.kirigamiaddons.delegates as Delegates import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat import org.kde.neochat
Kirigami.ScrollablePage {
Kirigami.Page {
id: root id: root
/** title: i18nc("@title", "Rooms")
* @brief The current width of the room list.
*
* @note Other objects can access the value but the private function makes sure
* that only the internal members can modify it.
*/
readonly property int currentWidth: _private.currentWidth + spaceDrawer.width + 1
required property NeoChatConnection connection required property NeoChatConnection connection
readonly property bool collapsed: NeoChatConfig.collapsed actions: [
Kirigami.Action {
signal search text: i18nc("@action:button", "Log out")
onTriggered: root.connection.logout()
onCurrentWidthChanged: pageStack.defaultColumnWidth = root.currentWidth },
Component.onCompleted: pageStack.defaultColumnWidth = root.currentWidth Kirigami.Action {
text: i18nc("@action:button", "Create Room")
onTriggered: root.connection.createRoom("Hello", "World", "")
onCollapsedChanged: {
if (collapsed) {
RoomManager.sortFilterRoomTreeModel.filterText = "";
} }
} ]
function goToNextRoomFiltered(condition) { Connections {
let index = treeView.rowAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex()); target: root.connection
while (index++ < treeView.rows) { function onOpenRoom(): void {
let item = treeView.itemAtIndex(treeView.index(index, 0)) room => pageStack.push(Qt.createComponent("org.kde.neochat", "RoomPage"), {
if (condition(item)) { room: room,
RoomManager.resolveResource(item.currentRoom.id) connection: connection,
return; });
}
} }
} }
function goToPreviousRoomFiltered(condition) {
let index = treeView.rowAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex());
while (index-- > 0) {
let item = treeView.itemAtIndex(treeView.index(index, 0))
if (condition(item)) {
RoomManager.resolveResource(item.currentRoom.id)
return;
}
}
}
function goToNextRoom() {
goToNextRoomFiltered(item => (item && item instanceof RoomDelegate));
}
function goToPreviousRoom() {
goToPreviousRoomFiltered(item => (item && item instanceof RoomDelegate));
}
function goToNextUnreadRoom() {
goToNextRoomFiltered(item => (item && item instanceof RoomDelegate && item.hasUnread));
}
function goToPreviousUnreadRoom() {
goToPreviousRoomFiltered(item => (item && item instanceof RoomDelegate && item.hasUnread));
}
titleDelegate: Loader { titleDelegate: Loader {
Layout.fillWidth: true Layout.fillWidth: true
sourceComponent: Kirigami.Settings.isMobile ? userInfo : exploreComponent sourceComponent: Kirigami.Settings.isMobile ? userInfo : exploreComponent
} }
padding: 0
Connections {
target: RoomManager
function onCurrentSpaceChanged() {
treeView.expandRecursively();
}
function onCurrentRoomChanged() {
treeView.positionViewAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex(), TableView.AlignVCenter)
}
}
RowLayout {
anchors.fill: parent
spacing: 0
SpaceDrawer {
id: spaceDrawer
Layout.preferredWidth: Kirigami.Units.gridUnit * 3
Layout.fillHeight: true
connection: root.connection
}
Kirigami.Separator {
Layout.fillHeight: true
Layout.preferredWidth: 1
}
QQC2.ScrollView {
id: scrollView
Layout.fillWidth: true
Layout.fillHeight: true
background: Rectangle {
color: Kirigami.Theme.backgroundColor
Kirigami.Theme.colorSet: Kirigami.Theme.View
}
Keys.onDownPressed: ; // Do not delete 🫠
Keys.onUpPressed: ; // These make sure the scrollview doesn't also scroll while going through the roomlist using the arrow keys
contentItem: TreeView {
id: treeView
topMargin: Math.round(Kirigami.Units.smallSpacing / 2)
clip: true
reuseItems: false
model: RoomManager.sortFilterRoomTreeModel
selectionModel: ItemSelectionModel {}
delegate: DelegateChooser {
role: "delegateType"
DelegateChoice {
roleValue: "section"
delegate: RoomTreeSection {
collapsed: root.collapsed
}
}
DelegateChoice {
roleValue: "normal"
delegate: RoomDelegate {
id: roomDelegate
required property int row
required property TreeView treeView
required property bool current
onCurrentChanged: if (current) {
forceActiveFocus(Qt.TabFocusReason);
}
implicitWidth: treeView.width
connection: root.connection
collapsed: root.collapsed
highlighted: RoomManager.currentRoom === currentRoom
}
}
DelegateChoice {
roleValue: "addDirect"
delegate: Delegates.RoundedItemDelegate {
text: i18n("Find your friends")
icon.name: "list-add-user"
icon.width: Kirigami.Units.gridUnit * 2
icon.height: Kirigami.Units.gridUnit * 2
onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
connection: root.connection
}, {
title: i18nc("@title", "Find your friends")
})
}
}
}
}
}
}
Kirigami.PlaceholderMessage {
anchors.centerIn: parent
anchors.horizontalCenterOffset: (spaceDrawer.width + 1) / 2
width: scrollView.width - Kirigami.Units.largeSpacing * 4
visible: treeView.rows == 0
text: if (RoomManager.sortFilterRoomTreeModel.filterText.length > 0) {
return spaceDrawer.showDirectChats ? i18n("No friends found") : i18n("No rooms found");
} else {
return spaceDrawer.showDirectChats ? i18n("You haven't added any of your friends yet, click below to search for them.") : i18n("Join some rooms to get started");
}
helpfulAction: spaceDrawer.showDirectChats ? userSearchAction : exploreRoomAction
Kirigami.Action {
id: exploreRoomAction
icon.name: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? "search" : "list-add"
text: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? i18n("Search in room directory") : i18n("Explore rooms")
onTriggered: {
let dialog = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'ExploreRoomsPage'), {
connection: root.connection,
keyword: RoomManager.sortFilterRoomTreeModel.filterText
}, {
title: i18nc("@title", "Explore Rooms")
});
dialog.roomSelected.connect((roomId, displayName, avatarUrl, alias, topic, memberCount, isJoined) => {
RoomManager.resolveResource(roomId.length > 0 ? roomId : alias, isJoined ? "" : "join");
});
}
}
Kirigami.Action {
id: userSearchAction
icon.name: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? "search" : "list-add"
text: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? i18n("Search in friend directory") : i18n("Find your friends")
onTriggered: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
connection: root.connection
}, {
title: i18nc("@title", "Find your friends")
})
}
}
footer: Loader { footer: Loader {
width: parent.width width: parent.width
sourceComponent: Kirigami.Settings.isMobile ? exploreComponentMobile : userInfoDesktop sourceComponent: Kirigami.Settings.isMobile ? exploreComponentMobile : userInfoDesktop
} }
MouseArea { TreeView {
anchors.top: parent.top id: treeView
anchors.bottom: parent.bottom topMargin: Math.round(Kirigami.Units.smallSpacing / 2)
parent: applicationWindow().overlay.parent
x: root.currentWidth - width / 2 clip: true
width: Kirigami.Units.smallSpacing * 2 reuseItems: false
z: root.z + 1
enabled: RoomManager.hasOpenRoom && applicationWindow().width >= Kirigami.Units.gridUnit * 35
visible: enabled
cursorShape: Qt.SplitHCursor
property int _lastX model: SortFilterRoomTreeModel {
sourceModel: RoomTreeModel {
onPressed: mouse => { connection: root.connection
_lastX = mouse.x;
}
onPositionChanged: mouse => {
if (_lastX == -1) {
return;
} }
if (mouse.x > _lastX) { }
// we moved to the right
if (_private.currentWidth < _private.collapseWidth && _private.currentWidth + (mouse.x - _lastX) >= _private.collapseWidth) { selectionModel: ItemSelectionModel {}
// Here we get back directly to a more wide mode.
_private.currentWidth = _private.defaultWidth; delegate: DelegateChooser {
NeoChatConfig.collapsed = false; role: "delegateType"
} else if (_private.currentWidth >= _private.collapseWidth) {
// Increase page width DelegateChoice {
_private.currentWidth = Math.min(_private.defaultWidth, _private.currentWidth + (mouse.x - _lastX)); roleValue: "section"
delegate: RoomTreeSection {
collapsed: root.collapsed
} }
} else if (mouse.x < _lastX) { }
const tmpWidth = _private.currentWidth - (_lastX - mouse.x);
if (tmpWidth < _private.collapseWidth) { DelegateChoice {
_private.currentWidth = Qt.binding(() => _private.collapsedSize); roleValue: "normal"
NeoChatConfig.collapsed = true; delegate: RoomDelegate {
} else { id: roomDelegate
_private.currentWidth = tmpWidth; required property int row
required property TreeView treeView
required property bool current
onCurrentChanged: if (current) {
forceActiveFocus(Qt.TabFocusReason);
}
implicitWidth: treeView.width
connection: root.connection
collapsed: root.collapsed
highlighted: RoomManager.currentRoom === currentRoom
}
}
DelegateChoice {
roleValue: "addDirect"
delegate: Delegates.RoundedItemDelegate {
text: i18n("Find your friends")
icon.name: "list-add-user"
icon.width: Kirigami.Units.gridUnit * 2
icon.height: Kirigami.Units.gridUnit * 2
onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
connection: root.connection
}, {
title: i18nc("@title", "Find your friends")
})
} }
} }
} }
} }
Component {
id: userInfo
UserInfo {
bottomEdge: false
connection: root.connection
}
}
Component {
id: userInfoDesktop
UserInfoDesktop {
connection: root.connection
collapsed: root.collapsed
}
}
Component { Component {
id: exploreComponent id: exploreComponent
@@ -308,25 +130,10 @@ Kirigami.Page {
} }
Component { Component {
id: exploreComponentMobile id: userInfoDesktop
ExploreComponentMobile { UserInfoDesktop {
connection: root.connection connection: root.connection
collapsed: root.collapsed
onTextChanged: newText => {
RoomManager.sortFilterRoomTreeModel.filterText = newText;
}
} }
} }
/*
* Hold the modifiable currentWidth in a private object so that only internal
* members can modify it.
*/
QtObject {
id: _private
property int currentWidth: NeoChatConfig.collapsed ? collapsedSize : defaultWidth
readonly property int defaultWidth: Kirigami.Units.gridUnit * 15
readonly property int collapseWidth: Kirigami.Units.gridUnit * 10
readonly property int collapsedSize: Kirigami.Units.gridUnit + (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2) + Kirigami.Units.largeSpacing * 2 + (scrollView.QQC2.ScrollBar.vertical.visible ? scrollView.QQC2.ScrollBar.vertical.width : 0)
}
} }

View File

@@ -38,32 +38,32 @@ QQC2.ScrollView {
// HACK: Hide unnecessary horizontal scrollbar (https://bugreports.qt.io/browse/QTBUG-83890) // HACK: Hide unnecessary horizontal scrollbar (https://bugreports.qt.io/browse/QTBUG-83890)
QQC2.ScrollBar.horizontal.policy: QQC2.ScrollBar.AlwaysOff QQC2.ScrollBar.horizontal.policy: QQC2.ScrollBar.AlwaysOff
ListView { // ListView {
clip: true // clip: true
verticalLayoutDirection: ListView.BottomToTop // verticalLayoutDirection: ListView.BottomToTop
//
model: RoomManager.mediaMessageFilterModel // model: RoomManager.mediaMessageFilterModel
//
delegate: DelegateChooser { // delegate: DelegateChooser {
role: "type" // role: "type"
//
DelegateChoice { // DelegateChoice {
roleValue: MediaMessageFilterModel.Image // roleValue: MediaMessageFilterModel.Image
delegate: MessageDelegate { // delegate: MessageDelegate {
alwaysFillWidth: true // alwaysFillWidth: true
cardBackground: false // cardBackground: false
room: root.currentRoom // room: root.currentRoom
} // }
} // }
//
DelegateChoice { // DelegateChoice {
roleValue: MediaMessageFilterModel.Video // roleValue: MediaMessageFilterModel.Video
delegate: MessageDelegate { // delegate: MessageDelegate {
alwaysFillWidth: true // alwaysFillWidth: true
cardBackground: false // cardBackground: false
room: root.currentRoom // room: root.currentRoom
} // }
} // }
} // }
} // }
} }

View File

@@ -32,7 +32,7 @@ Kirigami.Page {
* *
* @sa TimelineModel * @sa TimelineModel
*/ */
property TimelineModel timelineModel: RoomManager.timelineModel // property TimelineModel timelineModel: RoomManager.timelineModel
/** /**
* @brief The MessageFilterModel to use. * @brief The MessageFilterModel to use.
@@ -44,7 +44,7 @@ Kirigami.Page {
* *
* @sa TimelineModel, MessageFilterModel * @sa TimelineModel, MessageFilterModel
*/ */
property MessageFilterModel messageFilterModel: RoomManager.messageFilterModel // property MessageFilterModel messageFilterModel: RoomManager.messageFilterModel
/** /**
* @brief The MediaMessageFilterModel to use. * @brief The MediaMessageFilterModel to use.
@@ -57,7 +57,7 @@ Kirigami.Page {
* *
* @sa TimelineModel, MessageFilterModel * @sa TimelineModel, MessageFilterModel
*/ */
property MediaMessageFilterModel mediaMessageFilterModel: RoomManager.mediaMessageFilterModel // property MediaMessageFilterModel mediaMessageFilterModel: RoomManager.mediaMessageFilterModel
property bool loading: !root.currentRoom || (root.currentRoom.timelineSize === 0 && !root.currentRoom.allHistoryLoaded) property bool loading: !root.currentRoom || (root.currentRoom.timelineSize === 0 && !root.currentRoom.allHistoryLoaded)
@@ -106,58 +106,58 @@ Kirigami.Page {
position: Kirigami.InlineMessage.Position.Header position: Kirigami.InlineMessage.Position.Header
} }
Loader { // Loader {
id: timelineViewLoader // id: timelineViewLoader
anchors.fill: parent // anchors.fill: parent
active: root.currentRoom && !root.currentRoom.isInvite && !root.loading && !root.currentRoom.isSpace // active: root.currentRoom && !root.currentRoom.isInvite && !root.loading && !root.currentRoom.isSpace
sourceComponent: TimelineView { // sourceComponent: TimelineView {
id: timelineView // id: timelineView
currentRoom: root.currentRoom // currentRoom: root.currentRoom
page: root // page: root
timelineModel: root.timelineModel // timelineModel: root.timelineModel
messageFilterModel: root.messageFilterModel // messageFilterModel: root.messageFilterModel
onFocusChatBar: { // onFocusChatBar: {
if (chatBarLoader.item) { // if (chatBarLoader.item) {
chatBarLoader.item.forceActiveFocus(); // chatBarLoader.item.forceActiveFocus();
} // }
} // }
} // }
} // }
Loader { // Loader {
id: invitationLoader // id: invitationLoader
active: root.currentRoom && root.currentRoom.isInvite // active: root.currentRoom && root.currentRoom.isInvite
anchors.centerIn: parent // anchors.centerIn: parent
sourceComponent: InvitationView { // sourceComponent: InvitationView {
currentRoom: root.currentRoom // currentRoom: root.currentRoom
anchors.centerIn: parent // anchors.centerIn: parent
} // }
} // }
Loader { // Loader {
id: spaceLoader // id: spaceLoader
active: root.currentRoom && root.currentRoom.isSpace // active: root.currentRoom && root.currentRoom.isSpace
anchors.fill: parent // anchors.fill: parent
sourceComponent: SpaceHomePage {} // sourceComponent: SpaceHomePage {}
} // }
Loader { // Loader {
active: !RoomManager.currentRoom // active: !RoomManager.currentRoom
anchors.centerIn: parent // anchors.centerIn: parent
sourceComponent: Kirigami.PlaceholderMessage { // sourceComponent: Kirigami.PlaceholderMessage {
icon.name: "org.kde.neochat" // icon.name: "org.kde.neochat"
text: i18n("Welcome to NeoChat") // text: i18n("Welcome to NeoChat")
explanation: i18n("Select or join a room to get started") // explanation: i18n("Select or join a room to get started")
} // }
} // }
Loader { // Loader {
active: root.loading && !invitationLoader.active && RoomManager.currentRoom && !spaceLoader.active // active: root.loading && !invitationLoader.active && RoomManager.currentRoom && !spaceLoader.active
anchors.centerIn: parent // anchors.centerIn: parent
sourceComponent: Kirigami.LoadingPlaceholder { // sourceComponent: Kirigami.LoadingPlaceholder {
anchors.centerIn: parent // anchors.centerIn: parent
} // }
} // }
background: Rectangle { background: Rectangle {
Kirigami.Theme.colorSet: Kirigami.Theme.View Kirigami.Theme.colorSet: Kirigami.Theme.View
@@ -290,26 +290,26 @@ Kirigami.Page {
} }
} }
Component { // Component {
id: messageDelegateContextMenu // id: messageDelegateContextMenu
MessageDelegateContextMenu { // MessageDelegateContextMenu {
connection: root.connection // connection: root.connection
} // }
} // }
Component { // Component {
id: fileDelegateContextMenu // id: fileDelegateContextMenu
FileDelegateContextMenu { // FileDelegateContextMenu {
connection: root.connection // connection: root.connection
} // }
} // }
Component { // Component {
id: maximizeComponent // id: maximizeComponent
NeochatMaximizeComponent { // NeochatMaximizeComponent {
currentRoom: root.currentRoom // currentRoom: root.currentRoom
model: root.mediaMessageFilterModel // model: root.mediaMessageFilterModel
parent: root.QQC2.Overlay.overlay // parent: root.QQC2.Overlay.overlay
} // }
} // }
} }

View File

@@ -47,7 +47,7 @@ QQC2.ItemDelegate {
opacity: 0.7 opacity: 0.7
level: 5 level: 5
type: Kirigami.Heading.Primary type: Kirigami.Heading.Primary
text: root.collapsed ? "" : model.displayName text: root.collapsed ? "" : root.displayName
elide: Text.ElideRight elide: Text.ElideRight
// we override the Primary type's font weight (DemiBold) for Bold for contrast with small text // we override the Primary type's font weight (DemiBold) for Bold for contrast with small text

View File

@@ -54,7 +54,7 @@ RowLayout {
spacing: Kirigami.Units.largeSpacing spacing: Kirigami.Units.largeSpacing
KirigamiComponents.Avatar { KirigamiComponents.Avatar {
readonly property url avatarUrl: root.connection.localUser.avatarUrl readonly property url avatarUrl: root.connection.avatarUrl
Layout.preferredWidth: Kirigami.Units.iconSizes.medium Layout.preferredWidth: Kirigami.Units.iconSizes.medium
Layout.preferredHeight: Kirigami.Units.iconSizes.medium Layout.preferredHeight: Kirigami.Units.iconSizes.medium
@@ -62,7 +62,7 @@ RowLayout {
// Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl. // Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl.
source: avatarUrl.toString().length > 0 ? root.connection.makeMediaUrl(avatarUrl) : "" source: avatarUrl.toString().length > 0 ? root.connection.makeMediaUrl(avatarUrl) : ""
name: root.connection.localUser.displayName name: root.connection.displayName
} }
ColumnLayout { ColumnLayout {
@@ -73,14 +73,14 @@ RowLayout {
QQC2.Label { QQC2.Label {
id: displayNameLabel id: displayNameLabel
Layout.fillWidth: true Layout.fillWidth: true
text: root.connection.localUser.displayName text: root.connection.displayName
textFormat: Text.PlainText textFormat: Text.PlainText
elide: Text.ElideRight elide: Text.ElideRight
} }
QQC2.Label { QQC2.Label {
id: idLabel id: idLabel
Layout.fillWidth: true Layout.fillWidth: true
text: (root.connection.label.length > 0 ? (root.connection.label + " ") : "") + root.connection.localUser.id text: root.connection.matrixId
font.pointSize: displayNameLabel.font.pointSize * 0.8 font.pointSize: displayNameLabel.font.pointSize * 0.8
opacity: 0.7 opacity: 0.7
textFormat: Text.PlainText textFormat: Text.PlainText

View File

@@ -7,9 +7,9 @@
#include <KSharedConfig> #include <KSharedConfig>
#include <QObject> #include <QObject>
#include <QQmlEngine> #include <QQmlEngine>
#include <Quotient/room.h> // #include <Quotient/room.h>
#include <Quotient/roommember.h> // #include <Quotient/roommember.h>
#include <Quotient/uriresolver.h> // #include <Quotient/uriresolver.h>
#include "chatdocumenthandler.h" #include "chatdocumenthandler.h"
#include "enums/messagecomponenttype.h" #include "enums/messagecomponenttype.h"

View File

@@ -4,7 +4,7 @@
qt_add_library(settings STATIC) qt_add_library(settings STATIC)
set_source_files_properties( set_source_files_properties(
RoomSettingsView.qml # RoomSettingsView.qml
NeoChatSettingsView.qml NeoChatSettingsView.qml
PROPERTIES PROPERTIES
QT_QML_SINGLETON_TYPE TRUE QT_QML_SINGLETON_TYPE TRUE
@@ -15,33 +15,33 @@ ecm_add_qml_module(settings GENERATE_PLUGIN_SOURCE
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/settings OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/settings
QML_FILES QML_FILES
NeoChatSettingsView.qml NeoChatSettingsView.qml
RoomSettingsView.qml # RoomSettingsView.qml
AccountsPage.qml # AccountsPage.qml
AccountEditorPage.qml # AccountEditorPage.qml
AppearanceSettingsPage.qml AppearanceSettingsPage.qml
DevicesPage.qml # DevicesPage.qml
EmoticonsPage.qml # EmoticonsPage.qml
EmoticonEditorPage.qml # EmoticonEditorPage.qml
GlobalNotificationsPage.qml GlobalNotificationsPage.qml
NeoChatGeneralPage.qml NeoChatGeneralPage.qml
NeoChatSecurityPage.qml NeoChatSecurityPage.qml
NetworkProxyPage.qml NetworkProxyPage.qml
Permissions.qml # Permissions.qml
PushNotification.qml # PushNotification.qml
RoomGeneralPage.qml # RoomGeneralPage.qml
RoomSecurityPage.qml # RoomSecurityPage.qml
ColorScheme.qml # ColorScheme.qml
DevicesCard.qml # DevicesCard.qml
DeviceDelegate.qml # DeviceDelegate.qml
EmoticonFormCard.qml # EmoticonFormCard.qml
IdentityServerDelegate.qml # IdentityServerDelegate.qml
IgnoredUsersDialog.qml # IgnoredUsersDialog.qml
NotificationRuleItem.qml NotificationRuleItem.qml
PasswordSheet.qml # PasswordSheet.qml
ThemeRadioButton.qml ThemeRadioButton.qml
ThreePIdCard.qml # ThreePIdCard.qml
ImportKeysDialog.qml # ImportKeysDialog.qml
ExportKeysDialog.qml # ExportKeysDialog.qml
RoomSortParameterDialog.qml # RoomSortParameterDialog.qml
RoomProfile.qml # RoomProfile.qml
) )

View File

@@ -28,7 +28,10 @@ ColumnLayout {
Repeater { Repeater {
id: deviceRepeater id: deviceRepeater
model: KSortFilterProxyModel { model: KSortFilterProxyModel {
sourceModel: root.connection.threePIdModel sourceModel: ThreePIdModel {
id: threePIdModel
connection: root.connection
}
filterRoleName: "medium" filterRoleName: "medium"
filterString: root.medium filterString: root.medium
} }
@@ -110,6 +113,9 @@ ColumnLayout {
connection: root.connection connection: root.connection
newId: threePIdDelegate.address newId: threePIdDelegate.address
medium: threePIdDelegate.medium medium: threePIdDelegate.medium
onThreePIdBound: threePIdModel.refreshModel()
onThreePIdUnbound: threePIdModel.refreshModel()
} }
} }
@@ -130,7 +136,7 @@ ColumnLayout {
label: i18nc("@label:textbox", "Country Code for new phone number") label: i18nc("@label:textbox", "Country Code for new phone number")
Connections { Connections {
target: root.connection.threePIdModel target: threePIdModel
function onModelReset() { function onModelReset() {
newCountryCode.text = "" newCountryCode.text = ""
@@ -170,7 +176,7 @@ ColumnLayout {
onAccepted: _private.openPasswordSheet() onAccepted: _private.openPasswordSheet()
Connections { Connections {
target: root.connection.threePIdModel target: threePIdModel
function onModelReset() { function onModelReset() {
newId.text = "" newId.text = ""
@@ -198,6 +204,10 @@ ColumnLayout {
connection: root.connection connection: root.connection
medium: root.medium medium: root.medium
newId: newId.text newId: newId.text
onThreePIdAdded: threePIdModel.refreshModel()
onThreePIdRemoved: threePIdModel.refreshModel()
onThreePIdUnbound: threePIdModel.refreshModel()
} }
QtObject { QtObject {

Some files were not shown because too many files have changed in this diff Show More