Compare commits

...

12 Commits

Author SHA1 Message Date
Tobias Fella
88e0c38e5f Fixes 2025-03-13 21:58:07 +01:00
Joshua Goins
20a6b90904 Add command to forcibly end a call in the room 2025-03-13 21:32:35 +01:00
Joshua Goins
fcd7a320e7 Fix publishing video track 2025-03-13 21:32:35 +01:00
Joshua Goins
2f39e70b67 Update to latest LiveKit, fix up QML 2025-03-13 21:32:35 +01:00
Tobias Fella
ddc16a17d2 Calls! 2025-03-13 21:32:34 +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
125 changed files with 6347 additions and 3054 deletions

View File

@@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.16)
# KDE Applications version, managed by release script.
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 "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
@@ -56,7 +56,7 @@ ecm_setup_version(${PROJECT_VERSION}
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h
)
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE COMPONENTS Core Quick Gui QuickControls2 Multimedia Svg WebView)
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE COMPONENTS Core Quick Gui QuickControls2 Multimedia Svg Protobuf WebView)
set_package_properties(Qt6 PROPERTIES
TYPE REQUIRED
PURPOSE "Basic application components"
@@ -115,6 +115,8 @@ set_package_properties(QuotientQt6 PROPERTIES
PURPOSE "Talk with matrix server"
)
find_package(LiveKit REQUIRED)
find_package(cmark)
set_package_properties(cmark PROPERTIES
TYPE REQUIRED

View File

@@ -51,6 +51,10 @@ is primarily aimed at Linux development.
For Windows and Android [Craft](https://invent.kde.org/packaging/craft) is the primary choice. There are guides for setting up
development environments for [Windows](https://community.kde.org/Get_Involved/development/Windows) and [Android](https://develop.kde.org/docs/packaging/android/building_applications/).
### Building with support for voice / video calls
[LiveKit](https://livekit.io) is needed for call support. Build the [Rust SDK](https://github.com/livekit/rust-sdks) and copy `liblivekit_ffi.so` to your usual library folder. Copy `livekit_ffi.h` to somewhere under your usual include folder. NeoChat should then automatically pick it up.
## Running
Just start the executable in your preferred way - either from the build directory or from the installed location.

View File

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

10
cmake/FindLiveKit.cmake Normal file
View File

@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
find_library(LIVEKIT_LIB NAMES livekit_ffi)
find_path(LIVEKIT_INCLUDE_DIR NAMES livekit_ffi.h)
add_library(LiveKit UNKNOWN IMPORTED)
set_target_properties(LiveKit PROPERTIES IMPORTED_LOCATION ${LIVEKIT_LIB})
set_target_properties(LiveKit PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${LIVEKIT_INCLUDE_DIR})
set(LiveKit_FOUND True)

View File

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

View File

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

View File

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

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\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/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
msgid "Loading"
msgstr "S'està carregant"
@@ -1075,7 +1075,7 @@ msgid "Loading…"
msgstr "S'està carregant…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1707,7 +1707,7 @@ msgstr "Emojis propis"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "S'està carregant la resposta"
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 us ha convidat"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"servidor Matrix per a ajuda."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "No s'ha configurat cap servidor d'identitats"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Ha fallat la creació de la sala: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Ha fallat la creació de l'espai: %1"
@@ -5909,86 +5909,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Selecció del paràmetre a afegir"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Oculta"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Comparteix"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Elimina"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Completa"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Cancel·la"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Codi de país del número nou de telèfon"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Adreça de correu electrònic nova:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
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
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Us hem enviat un missatge de text"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
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
msgid "Incorrect password entered"
msgstr "S'ha introduït una contrasenya incorrecta"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"les seves instruccions i després feu clic al botó de sota"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"les seves instruccions i després feu clic al botó de sota"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Afegeix"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Enrere"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"les seves instruccions i després feu clic al botó de dalt"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"les seves instruccions i després feu clic al botó de dalt"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 ha començat una verificació d'usuari"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Confirma l'edició"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Publica un missatge en el fil"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Copia al porta-retalls"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximitza"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 dispositiu."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Baixa"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6100,13 +6100,13 @@ msgctxt ""
msgid "Open File"
msgstr "Obre el fitxer"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Hora de sortida: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Mostra la imatge"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Envia al KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Elimina la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Encongeix la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expandeix la vista prèvia"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "S'està carregant la vista prèvia de l'URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Obre externament"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Basat en els vots d'%1 usuari"
msgstr[1] "Basat en els vots de %1 usuaris"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Finalitzat)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6200,7 +6200,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6222,24 +6222,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "An. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Mostra el vídeo"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volum"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximitza"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\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/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
msgid "Loading"
msgstr "S'està carregant"
@@ -1077,7 +1077,7 @@ msgid "Loading…"
msgstr "S'està carregant…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1709,7 +1709,7 @@ msgstr "Emoji propis"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "S'està carregant la resposta"
@@ -1969,7 +1969,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 vos ha convidat"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"servidor Matrix per a ajuda."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "No s'ha configurat cap servidor d'identitats"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "No s'ha pogut crear la sala: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "No s'ha pogut crear l'espai: %1"
@@ -5909,87 +5909,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Seleccioneu el paràmetre a afegir"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Oculta"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Compartix"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Elimina"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Completa"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Cancel·la"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Codi de país del número nou de telèfon"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Adreça de correu electrònic nova:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
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
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Vos hem enviat un missatge de text"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button below"
msgstr ""
"%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
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
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
msgid "Incorrect password entered"
msgstr "S'ha introduït una contrasenya incorrecta"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"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
msgid ""
"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 "
"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
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Afig"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Arrere"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button above"
msgstr ""
"%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
msgid ""
"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 "
"seguiu les seues instruccions i després feu clic en el botó de dalt"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"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
msgid "%1 started a user verification"
msgstr "%1 ha començat una verificació d'usuari"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Confirma l'edició"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Publica un missatge en el fil"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Copia a dins del porta-retalls"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximitza"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"dispositiu."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Baixa"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6102,13 +6102,13 @@ msgctxt ""
msgid "Open File"
msgstr "Obri el fitxer"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Hora d'eixida: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Mostra la imatge"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Envia a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Elimina la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Encull la vista prèvia"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expandix la vista prèvia"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "S'està carregant la vista prèvia de l'URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Obri externament"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Basat en els vots d'%1 usuari"
msgstr[1] "Basat en els vots de %1 usuaris"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Finalitzat)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6202,7 +6202,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6224,24 +6224,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "An. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Mostra el vídeo"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volum"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximitza"

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\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/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
msgid "Loading"
msgstr "Loading"
@@ -1090,7 +1090,7 @@ msgid "Loading…"
msgstr "Loading…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1724,7 +1724,7 @@ msgstr "Own Emojis"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Loading reply"
@@ -1982,7 +1982,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 invited you to a room"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"for support."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "No identity server configured"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Room creation failed: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Space creation failed: %1"
@@ -5985,87 +5985,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr ""
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Hide"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Share"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Remove"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "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
msgctxt "@action:button"
msgid "Cancel"
msgstr "Cancel"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "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
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "New Email Address:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "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
msgid "We've 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
msgid "We've 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
msgid ""
"%1. Please follow the instructions there and then click the button below"
msgstr ""
"%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
msgid "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
msgid "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
msgid "Incorrect password entered"
msgstr "Incorrect password entered"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instructions there and then click the button below"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"follow the instructions there and then click the button below"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Add"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Back"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button above"
msgstr ""
"%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
#, 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:185
#, kde-format
msgid ""
"The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above"
msgstr ""
"The phone number has not been verified. Please go to the text message and "
"follow the instructions there and then click the button above"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 started a user verification"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Confirm edit"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Post message in thread"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Copy to clipboard"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximise"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"device."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "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
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6178,13 +6178,13 @@ msgctxt ""
msgid "Open File"
msgstr "Open File"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Check-out time: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Show Image"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Send to KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Remove preview"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Shrink preview"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expand preview"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Loading URL preview"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Open Externally"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Based on votes by %1 user"
msgstr[1] "Based on votes by %1 users"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Ended)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format
#| msgid "React"
msgctxt "@button"
@@ -6279,7 +6279,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Last read: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format
#| msgid "Reply"
msgctxt "@action:button"
@@ -6301,24 +6301,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Show Video"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volume"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximise"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\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/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
msgid "Loading"
msgstr "Ŝargante"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Ŝargante…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Propraj Emoĝioj"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Ŝargante respondon"
@@ -1961,7 +1961,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 invitis vin al ĉambro"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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-"
"servilo por subteno."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Agordiĝis neniu identeca servilo"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Kreado de ĉambro malsukcesis: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Spackreado malsukcesis: %1"
@@ -5854,86 +5854,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Elekti Parametron Aldonendan"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Kaŝi"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Kunhavigi"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Forigi"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Kompletigi"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Nuligi"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Landkodo por nova telefonnumero"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Nova Retpoŝta Adreso:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Nova Telefonnumero:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Ni sendis al vi tekstmesaĝon"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "La enigita telefonnumero ne estas valida"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Malĝusta pasvorto enigita"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instruojn tie kaj poste klaki la butonon malsupre"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 instruojn tie kaj poste klaki la butonon malsupre"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Aldoni"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Reen"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"instruojn tie kaj poste klaki la butonon supre"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 instruojn tie kaj poste klaki la butonon supre"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 komencis uzant-konfirmon"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Konfirmi redakton"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Afiŝi mesaĝon en fadeno"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Kopii al tondujo"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maksimumigi"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"tiu aparato."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
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
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6045,13 +6045,13 @@ msgctxt ""
msgid "Open File"
msgstr "Malfermu Dosieron"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Tempo de eliro: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Montri Bildon"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Sendi al KDE-Itinero"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Forigi antaŭrigardon"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Malgrandigi antaŭrigardon"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Vastigi antaŭrigardon"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Ŝargante antaŭrigardon de URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Malfermi Ekstere"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Bazita sur voĉdonoj de %1 uzanto"
msgstr[1] "Bazita sur voĉdonoj de %1 uzantoj"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Finis)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6145,7 +6145,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Lasta legado: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6166,24 +6166,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Montri Video"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Laŭteco"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maksimumigi"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\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/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
msgid "Loading"
msgstr "Cargando"
@@ -1074,7 +1074,7 @@ msgid "Loading…"
msgstr "Cargando…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1707,7 +1707,7 @@ msgstr "Emojis propios"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Cargando respuesta"
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 le ha invitado"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"administrador del servidor matrix para obtener asistencia."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "No se ha configurado ningún servidor de identidades"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "La creación de la sala ha fallado: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "La creación del espacio ha fallado: %1"
@@ -5901,86 +5901,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Seleccionar el parámetro que se añadirá"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Ocultar"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Compartir"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Eliminar"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Completar"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
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
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Nueva dirección de correo electrónico:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
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
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Le hemos enviado un mensaje de texto"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "El número de teléfono introducido no es válido"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Se ha introducido una contraseña incorrecta"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"las instrucciones que contiene y pulse el botón inferior."
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"las instrucciones que contiene y pulse el botón inferior."
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Añadir"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Volver"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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."
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"las instrucciones que contiene y pulse el botón superior."
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"las instrucciones que contiene y pulse el botón superior."
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 ha iniciado una verificación de usuario"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Confirmar edición"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Publicar mensaje en el hilo"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Copiar en el portapapeles"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximizar"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"dispositivo."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Descargar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6092,13 +6092,13 @@ msgctxt ""
msgid "Open File"
msgstr "Abrir archivo"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Hora de salida: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Mostrar imagen"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Enviar a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Eliminar vista previa"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Encoger vista previa"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expandir vista previa"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Cargando vista previa de URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Abrir externamente"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Según los votos de %1 usuario"
msgstr[1] "Según los votos de %1 usuarios"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Finalizada)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6192,7 +6192,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6213,24 +6213,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Andén %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Mostrar vídeo"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volumen"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximizar"

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.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/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
msgid "Loading"
msgstr "Cargando"
@@ -1067,7 +1067,7 @@ msgid "Loading…"
msgstr "Cargando…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1698,7 +1698,7 @@ msgstr "Expresións personalizadas"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Cargando a resposta"
@@ -1959,7 +1959,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 convidoulle."
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 á "
"administración do seu servidor de Matrix."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Non hai configurado ningún servidor de identidade."
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "A creación da sala fallou: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "A creación do espazo fallou: %1"
@@ -5885,86 +5885,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Seleccione o parámetro para engadir"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Agochar"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Compartir"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Retirar"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Completar"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Cancelar"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
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
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Novo enderezo de correo electrónico:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
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
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Enviámoslle unha mensaxe de texto"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "O número de teléfono inserido non é válido."
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "O contrasinal inserido é incorrecto."
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instrucións da mensaxe e prema o botón embaixo."
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instrucións nela e prema o botón embaixo."
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Engadir"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Atrás"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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."
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"instrucións da mensaxe e prema o botón arriba."
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"instrucións nela e prema o botón arriba."
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 iniciou unha verificación de persoa usuaria"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Confirmar a edición"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Publicar a mensaxe nun fío"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Copiar no portapapeis"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximizar"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"dispositivo."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Descargar"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6076,13 +6076,13 @@ msgctxt ""
msgid "Open File"
msgstr "Abrir un ficheiro"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1/%2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Hora de saída: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Amosar a imaxe"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Enviar a KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Retirar a vista previa"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Encoller a vista previa"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expandir a vista previa"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Cargando a vista previa do URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Abrir externamente"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Cos votos dunha persoa"
msgstr[1] "Cos votos de %1 persoa"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(rematou)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6195,24 +6195,24 @@ msgstr "Este é o comezo da conversa. Non hai mensaxes anteriores."
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Vídeo"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Amosar o vídeo"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volume"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximizar"

View File

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

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\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/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
msgid "Loading"
msgstr "Betöltés"
@@ -1096,7 +1096,7 @@ msgid "Loading…"
msgstr "Betöltés…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1732,7 +1732,7 @@ msgstr "Saját emodzsik"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Válasz betöltése"
@@ -1992,7 +1992,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 meghívta Önt egy szobába"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"kiszolgáló rendszergazdájához."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Nincs beállítva identitáskiszolgáló"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Nem sikerült létrehozni a szobát: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Nem sikerült létrehozni a teret: %1"
@@ -6024,65 +6024,65 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr ""
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Elrejtés"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Megosztás"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Eltávolítás"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
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
msgctxt "@action:button"
msgid "Cancel"
msgstr "Mégse"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Új telefonszám országkódja"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Új e-mail-cím:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Új telefonszám:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Küldtünk Önnek egy szöveges üzenetet"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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 "
"gombra"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "A beírt telefonszám érvénytelen"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Helytelen jelszó megadása"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 ott található utasításokat, majd kattintson az alábbi gombra"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"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
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Hozzáadás"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Vissza"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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 "
"gombra"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 ott található utasításokat, majd kattintson a fenti gombra"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"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
msgid "%1 started a user verification"
msgstr "%1 elindított egy felhasználóellenőrzést"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Szerkesztés megerősítése"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Üzenet küldése szálban"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Másolás a vágólapra"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximalizálás"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"eszközzel."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
msgstr ""
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
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
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6219,13 +6219,13 @@ msgctxt ""
msgid "Open File"
msgstr "Fájl megnyitása"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Kijelentkezés ideje: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Kép megjelenítése"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Küldés a KDE Itineraryba"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Előnézet eltávolítása"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Előnézet kicsinyítése"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Előnézet nagyítása"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "URL előnézetének betöltése"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Megnyitás külsőleg"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "%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
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Befejeződött)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, fuzzy, kde-format
#| msgid "React"
msgctxt "@button"
@@ -6320,7 +6320,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Utoljára olvasva: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, fuzzy, kde-format
#| msgid "Reply"
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"
msgstr "%1. vágány"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Videó"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Videó megjelenítése"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Hangerő"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximalizálás"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\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/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
msgid "Loading"
msgstr "Ielādē"
@@ -1071,7 +1071,7 @@ msgid "Loading…"
msgstr "Ielādē..."
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Savas emocijzīmes"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Ielādē atbildi"
@@ -1960,7 +1960,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 jūs uzaicināja"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"„Matrix“ servera administratoru."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Identitātes serveris nav konfigurēts"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Istabas izveide neizdevās: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Telpas izveide neizdevās: %1"
@@ -5858,86 +5858,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Atlasiet pievienojamu parametru"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Slēpt"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Kopīgot"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Noņemt"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Pabeigt"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Atcelt"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Valsts kods jaunam tālruņa numuram"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Jauna e-pasta adrese:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
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
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Mēs jums nosūtījām īsziņu"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Ievadītais tālruņa numurs nav derīgs"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Ievadīta nepareiza parole"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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ā "
"esošajiem norādījumiem un klikšķiniet uz pogas zemāk"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"norādījumiem un klikšķiniet uz pogas zemāk"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Pievienot"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Atpakaļ"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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ā "
"esošajiem norādījumiem un klikšķiniet uz pogas augstāk"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"norādījumiem un klikšķiniet uz pogas augstāk"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 uzsāka lietotāja verifikāciju"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Apstiprināt izmaiņas"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Publicēt ziņu pavedienā"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Kopēt starpliktuvē"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maksimizēt"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"This message is encrypted and the sender has not shared the key with this "
"device."
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
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
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
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6047,13 +6047,13 @@ msgctxt ""
msgid "Open File"
msgstr "Atvērt datni"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Izrakstīšanās laiks: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Rādīt attēlu"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Sūtīt uz KDE „Itinerary“"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Noņemt priekšskatījumu"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Samazināt priekšskatījumu"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Palielināt priekšskatījumu"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Ielādē URL priekšskatījumu"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Atvērt ārēji"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
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[2] "Balstoties uz %1 lietotāju balsīm"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Beidzās)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6148,7 +6148,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Pēdējo reizi lasīta: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
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"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Rādīt video"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Skaļums"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maksimizēt"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\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/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
msgid "Loading"
msgstr "Laden"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Laden…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1702,7 +1702,7 @@ msgstr "Eigen emoji's"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Antwoord wordt geladen"
@@ -1962,7 +1962,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 heeft u uitgenodigd"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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-"
"serverbeheerder voor ondersteuning."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Geen identiteitsserver geconfigureerd"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Aanmaken van room is mislukt: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Ruimte aanmaken is mislukt: %1"
@@ -5896,86 +5896,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Selecteer toe te voegen parameter"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Verbergen"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Delen"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Verwijderen"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Voltooid"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Annuleren"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Landcode voor nieuw telefoonnummer"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Nieuw e-mailadres:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Nieuw telefoonnummer:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "We hebben u een tekstbericht gestuurd"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Het ingevoerde telefoonnummer is niet geldig"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Verkeerd wachtwoord ingevoerd"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"daar en klik daarna op de onderstaande knop"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instructies daar en klik daarna op de onderstaande knop"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Toevoegen"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Terug"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"daar en klik daarna op de bovenstaande knop"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"instructies daar en klik daarna op de bovenstaande knop"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 is verificatie van een gebruiker gestart"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Bewerking bevestigen"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Bericht in discussie posten"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Naar klembord kopiëren"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximaliseren"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 apparaat."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Downloaden"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6087,13 +6087,13 @@ msgctxt ""
msgid "Open File"
msgstr "Bestand openen"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Uitchecktijd: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Afbeelding tonen"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Naar KDE Itinerary zenden"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Voorbeeld verwijderen"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Voorbeeld invouwen"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Voorbeeld uitvouwen"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "URL voorbeeld laden"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Extern openen"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "Gebaseerd op stem van %1 gebruiker"
msgstr[1] "Gebaseerd op stemmen van %1 gebruikers"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Beëindigd)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6187,7 +6187,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Laatst gelezen: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6207,24 +6207,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Video tonen"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volume"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximaliseren"

View File

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

View File

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

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\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/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
msgid "Loading"
msgstr "Wczytywanie"
@@ -1071,7 +1071,7 @@ msgid "Loading…"
msgstr "Wczytywanie…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Własne emoji"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Wczytywanie odpowiedzi"
@@ -1964,7 +1964,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 zaprosił cię"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"Matriksa z prośbą o pomoc."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Nie ustawiono żadnego serwera tożsamości"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Nie udało się utworzyć pokoju: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Nie udało się utworzyć przestrzeni: %1"
@@ -5888,87 +5888,87 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Wybierz parametr do dodania"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Ukryj"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Udostępnij"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Usuń"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
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
msgctxt "@action:button"
msgid "Cancel"
msgstr "Anuluj"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Kod kraju dla nowego numeru telefonu"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Nowy adres pocztowy:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Nowy numer telefonu:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Wysłaliśmy ci wiadomość tekstową"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button below"
msgstr ""
"%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
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Wpisany numer telefonu jest nieprawidłowy"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Wpisano złe hasło"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"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
msgid ""
"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 "
"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
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Dodaj"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Wstecz"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button above"
msgstr ""
"%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
msgid ""
"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 "
"przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"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
msgid "%1 started a user verification"
msgstr "%1 rozpoczął sprawdzanie użytkownika"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Potwierdź zmianę"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Wyślij wiadomość w wątku"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Skopiuj do schowka"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Zmaksymalizuj"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"urządzeniowi."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Pobierz"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6081,13 +6081,13 @@ msgctxt ""
msgid "Open File"
msgstr "Otwórz plik"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Czas wymeldowania: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Pokaż obrazek"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Wyślij do KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Usuń podgląd"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Skurcz podgląd"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Rozpręż podgląd"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Wczytywanie podglądu adresu URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Otwórz zewnętrznie"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
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[2] "Na podstawie głosów %1 użytkowników"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Zakończone)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6182,7 +6182,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Ostatnio odczytywany: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6202,24 +6202,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Per. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Wideo"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Pokaż wideo"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Głośność"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Zmaksymalizuj"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\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/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
msgid "Loading"
msgstr "Nalaganje"
@@ -1075,7 +1075,7 @@ msgid "Loading…"
msgstr "Nalaganje …"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1705,7 +1705,7 @@ msgstr "Lastni čustvenčki"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Nalaganje odgovora"
@@ -1966,7 +1966,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 vas je povabil"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"strežnika matrix."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Ni konfigurirana identiteta strežnika"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Ustvarjanje sobe ni uspelo: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Ustvarjanje prostora ni uspelo: %1"
@@ -5884,86 +5884,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Izberite parameter za dodajanje"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Skrij"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Deli"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Odstrani"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
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
msgctxt "@action:button"
msgid "Cancel"
msgstr "Prekliči"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Koda države za novo telefonsko številko"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Novi naslov e-pošte:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Nova telefonska številka:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Poslali smo vam besedilno sporočilo"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button below"
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
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Vnesena telefonska številka ni veljavna"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Vneseno napačno geslo"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"navodilom ter nato kliknite spodnji gumb"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"sledite tamkajšnjim navodilom ter nato kliknite na gumb spodaj"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Dodaj"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Nazaj"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%1. Please follow the instructions there and then click the button above"
msgstr "%1. Sledite navodilom in nato kliknite na gumb zgoraj"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"navodilom ter nato kliknite gumb zgoraj"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"sledite tamkajšnjim navodilom ter nato kliknite na gumb zgoraj"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 je začel preverjanje uporabnika"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Potrdi urejanje"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Objavi sporočilo v niti"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Kopiraj na odložišče"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Razpni"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"This message is encrypted and the sender has not shared the key with this "
@@ -6053,20 +6053,20 @@ msgid ""
msgstr ""
"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
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "Prenos"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6074,13 +6074,13 @@ msgctxt ""
msgid "Open File"
msgstr "Odpri datoteko"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Check-out time: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Prikaži sliko"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Pošlji v KDE Itinerary"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Odstrani predogled"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Skrči predogled"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Razširi predogled"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Nalaganje predogleda URL"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Odpri od zunaj"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
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[3] "Glede na glasove %1 uporabnikov"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Končano)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Nazadnje prebrano: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6196,24 +6196,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Prikaži video"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Glasnost"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Razpni"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\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/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
msgid "Loading"
msgstr "Läser in"
@@ -1068,7 +1068,7 @@ msgid "Loading…"
msgstr "Läser in…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1700,7 +1700,7 @@ msgstr "Egna emoji"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Läser in svar"
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1 bjöd in dig"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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-"
"serveradministratören för support."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Ingen identitetsserver inställd"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Misslyckades skapa rum: \"%1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Misslyckades skapa utrymme: %1"
@@ -5872,86 +5872,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Välj parameter att lägga till"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Dölj"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Dela"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Ta bort"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Komplettera"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "Avbryt"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Landskod för nytt telefonnummer"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Ny e-postadress"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Nytt telefonnummer"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Vi skickade ett textmeddelande till dig"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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."
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Det angivna telefonnumret är inte giltigt"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Felaktigt lösenord inmatat"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instruktionerna där och klicka sedan på knappen nedan."
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"instruktionerna där och klicka sedan på knappen nedan."
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Lägg till"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Tillbaka"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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."
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"instruktionerna där och klicka sedan på knappen ovan."
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"instruktionerna där och klicka sedan på knappen ovan."
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 startade en användarverifikation"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Bekräfta redigering"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "Skicka meddelande i tråd"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Kopiera till klippbordet"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Maximera"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"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 "
"enheten."
#: src/timeline/FetchButtonComponent.qml:41
#: src/timeline/FetchButtonComponent.qml:36
#, kde-format
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
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
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6063,13 +6063,13 @@ msgctxt ""
msgid "Open File"
msgstr "Öppna fil"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Utcheckningstid: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Visa bild"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "Skicka till KDE-resplan"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Ta bort förhandsgranskning"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Krymp förhandsgranskning"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Expandera förhandsgranskning"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "Läser in webbadressförhandsgranskning"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Öppna externt"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "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
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Avslutad)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6163,7 +6163,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Senast läst: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6184,24 +6184,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Visa video"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Volym"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Maximera"

View File

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

View File

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

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\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"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\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/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
msgid "Loading"
msgstr "Yükleniyor"
@@ -1070,7 +1070,7 @@ msgid "Loading…"
msgstr "Yükleniyor…"
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button"
msgid "Continue"
@@ -1701,7 +1701,7 @@ msgstr "Kendi Emojileriniz"
#: src/models/messagecontentmodel.cpp:260
#: src/models/messagecontentmodel.cpp:288
#: src/timeline/LinkPreviewLoadComponent.qml:66
#: src/timeline/LinkPreviewLoadComponent.qml:63
#, kde-format
msgid "Loading reply"
msgstr "Yanıt yükleniyor"
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
msgid "%1 invited you"
msgstr "%1, sizi davet etti"
#: src/neochatconnection.cpp:77
#: src/neochatconnection.cpp:75
#, kde-format
msgid ""
"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 "
"ulaşın."
#: src/neochatconnection.cpp:336
#: src/neochatconnection.cpp:329
#, kde-format
msgctxt "@info"
msgid "No identity server configured"
msgstr "Yapılandırılmış kimlik sunucusu yok"
#: src/neochatconnection.cpp:367
#: src/neochatconnection.cpp:360
#, kde-format
msgid "Room creation failed: %1"
msgstr "Oda oluşturulamadı: %1"
#: src/neochatconnection.cpp:397
#: src/neochatconnection.cpp:390
#, kde-format
msgid "Space creation failed: %1"
msgstr "Alan oluşturma başarısız: %1"
@@ -5867,86 +5867,86 @@ msgctxt "@title:dialog"
msgid "Select Parameter to Add"
msgstr "Eklenecek Parametre Seç"
#: src/settings/ThreePIdCard.qml:55
#: src/settings/ThreePIdCard.qml:58
#, kde-format
msgctxt "@action:button"
msgid "Hide"
msgstr "Gizle"
#: src/settings/ThreePIdCard.qml:61
#: src/settings/ThreePIdCard.qml:64
#, kde-format
msgctxt "@action:button"
msgid "Share"
msgstr "Paylaş"
#: src/settings/ThreePIdCard.qml:66
#: src/settings/ThreePIdCard.qml:69
#, kde-format
msgctxt "@action:button"
msgid "Remove"
msgstr "Kaldır"
#: src/settings/ThreePIdCard.qml:85
#: src/settings/ThreePIdCard.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Complete"
msgstr "Tam"
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
#, kde-format
msgctxt "@action:button"
msgid "Cancel"
msgstr "İptal"
#: src/settings/ThreePIdCard.qml:130
#: src/settings/ThreePIdCard.qml:136
#, kde-format
msgctxt "@label:textbox"
msgid "Country Code for new phone number"
msgstr "Yeni telefon numarası için ülke kodu"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Email Address:"
msgstr "Yeni e-posta adresi:"
#: src/settings/ThreePIdCard.qml:146
#: src/settings/ThreePIdCard.qml:152
#, kde-format
msgctxt "@label:textbox"
msgid "New Phone Number:"
msgstr "Yeni telefon numarası:"
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
#, kde-format
msgid "We've sent you an email"
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
msgid "We've sent you a text message"
msgstr "Size bir SMS gönderdik"
#: src/settings/ThreePIdCard.qml:150
#: src/settings/ThreePIdCard.qml:156
#, kde-format
msgid ""
"%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"
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
#, kde-format
msgid "The entered email is not valid"
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
msgid "The entered phone number is not valid"
msgstr "Girilen telefon numarası geçerli değil"
#: src/settings/ThreePIdCard.qml:154
#: src/settings/ThreePIdCard.qml:160
#, kde-format
msgid "Incorrect password entered"
msgstr "Doğru olmayan bir parola girildi"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"sonrasında aşağıdaki düğmeye tıklayın"
#: src/settings/ThreePIdCard.qml:156
#: src/settings/ThreePIdCard.qml:162
#, kde-format
msgid ""
"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 "
"izleyip aşağıdaki düğmeye tıklayın"
#: src/settings/ThreePIdCard.qml:183
#: src/settings/ThreePIdCard.qml:189
#, kde-format
msgctxt "@action:button Add new email or phone number"
msgid "Add"
msgstr "Ekle"
#: src/settings/ThreePIdCard.qml:191
#: src/settings/ThreePIdCard.qml:197
#, kde-format
msgctxt "@action:button As in 'go back'"
msgid "Back"
msgstr "Geri"
#: src/threepidbindhelper.cpp:177
#: src/threepidbindhelper.cpp:178
#, kde-format
msgid ""
"%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"
#: src/threepidbindhelper.cpp:183
#: src/threepidbindhelper.cpp:184
#, kde-format
msgid ""
"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 "
"sonrasında yukarıdaki düğmeye tıklayın"
#: src/threepidbindhelper.cpp:184
#: src/threepidbindhelper.cpp:185
#, kde-format
msgid ""
"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 "
"izleyip yukarıdaki düğmeye tıklayın"
#: src/timeline/BaseMessageComponentChooser.qml:249
#: src/timeline/BaseMessageComponentChooser.qml:172
#, kde-format
msgid "%1 started a user verification"
msgstr "%1 bir kullanıcı doğrulaması başlattı"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Confirm edit"
msgstr "Düzenlemeyi onayla"
#: src/timeline/ChatBarComponent.qml:98
#: src/timeline/ChatBarComponent.qml:88
#, kde-format
msgctxt "@action:button"
msgid "Post message in thread"
msgstr "İleti Dizisine İleti Gönder"
#: src/timeline/CodeComponent.qml:164
#: src/timeline/CodeComponent.qml:159
#, kde-format
msgid "Copy to clipboard"
msgstr "Panoya kopyala"
#: src/timeline/CodeComponent.qml:176
#: src/timeline/CodeComponent.qml:171
#, kde-format
msgctxt "@action:button"
msgid "Maximize"
msgstr "Ekranı Kapla"
#: src/timeline/EncryptedComponent.qml:21
#: src/timeline/EncryptedComponent.qml:18
#, kde-format
msgid ""
"This message is encrypted and the sender has not shared the key with this "
"device."
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
msgctxt "@action:button"
msgid "Fetch More Events"
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
msgctxt ""
"tooltip for a button on a message; offers ability to download its file"
msgid "Download"
msgstr "İndir"
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
#, kde-format
msgctxt ""
"tooltip for a button on a message; offers ability to open its downloaded "
@@ -6056,13 +6056,13 @@ msgctxt ""
msgid "Open File"
msgstr "Dosya Aç"
#: src/timeline/FileComponent.qml:135
#: src/timeline/FileComponent.qml:125
#, kde-format
msgctxt "file download progress"
msgid "%1 / %2"
msgstr "%1 / %2"
#: src/timeline/FileComponent.qml:140
#: src/timeline/FileComponent.qml:130
#, kde-format
msgctxt ""
"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"
msgstr "Çıkış zamanı: %1"
#: src/timeline/ImageComponent.qml:140
#: src/timeline/ImageComponent.qml:120
#, kde-format
msgctxt "@action:button"
msgid "Show Image"
msgstr "Görseli Göster"
#: src/timeline/ItineraryComponent.qml:57
#: src/timeline/ItineraryComponent.qml:54
#, kde-format
msgctxt "@action"
msgid "Send to KDE Itinerary"
msgstr "KDE Yol Kılavuzuna Gönder"
#: src/timeline/LinkPreviewComponent.qml:136
#: src/timeline/LinkPreviewLoadComponent.qml:79
#: src/timeline/LinkPreviewComponent.qml:131
#: src/timeline/LinkPreviewLoadComponent.qml:76
#, kde-format
msgctxt "As in remove the link preview so it's no longer shown"
msgid "Remove preview"
msgstr "Önizlemeyi kaldır"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Shrink preview"
msgstr "Önizlemeyi küçült"
#: src/timeline/LinkPreviewComponent.qml:154
#: src/timeline/LinkPreviewComponent.qml:149
#, kde-format
msgid "Expand preview"
msgstr "Önizlemeyi genişlet"
#: src/timeline/LinkPreviewLoadComponent.qml:68
#: src/timeline/LinkPreviewLoadComponent.qml:65
#, kde-format
msgid "Loading URL preview"
msgstr "URL önizlemesi yükleniyor"
#: src/timeline/LocationComponent.qml:116
#: src/timeline/LocationComponent.qml:111
#, kde-format
msgctxt "@action:button Open the location in an external program"
msgid "Open Externally"
msgstr "Dışarıda Aç"
#: src/timeline/PollComponent.qml:80
#: src/timeline/PollComponent.qml:70
#, kde-format
msgid "Based on votes by %1 user"
msgid_plural "Based on votes by %1 users"
msgstr[0] "%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
msgctxt "as in 'this vote has ended'"
msgid "(Ended)"
msgstr "(Bitti)"
#: src/timeline/ReactionComponent.qml:97
#: src/timeline/ReactionComponent.qml:89
#, kde-format
msgctxt "@button"
msgid "React"
@@ -6156,7 +6156,7 @@ msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Son okunma: %1"
#: src/timeline/ReplyButtonComponent.qml:44
#: src/timeline/ReplyButtonComponent.qml:34
#, kde-format
msgctxt "@action:button"
msgid "Reply"
@@ -6177,24 +6177,24 @@ msgstr ""
msgid "Pl. %1"
msgstr "Pl. %1"
#: src/timeline/VideoComponent.qml:217
#: src/timeline/VideoComponent.qml:197
#, kde-format
msgid "Video"
msgstr "Video"
#: src/timeline/VideoComponent.qml:257
#: src/timeline/VideoComponent.qml:237
#, kde-format
msgctxt "@action:button"
msgid "Show Video"
msgstr "Videoyu Göster"
#: src/timeline/VideoComponent.qml:298
#: src/timeline/VideoComponent.qml:278
#, kde-format
msgctxt "@action:button"
msgid "Volume"
msgstr "Ses Düzeyi"
#: src/timeline/VideoComponent.qml:382
#: src/timeline/VideoComponent.qml:362
#, kde-format
msgid "Maximize"
msgstr "Son Ses"

View File

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

View File

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

View File

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

View File

@@ -196,6 +196,15 @@ add_library(neochat STATIC
models/pinnedmessagemodel.h
models/commonroomsmodel.cpp
models/commonroomsmodel.h
events/callencryptionkeysevent.h
events/callmemberevent.h
events/callnotifyevent.h
calls/callcontroller.cpp
calls/callcontroller.h
livekitlogmodel.cpp
livekitlogmodel.h
events/callmemberevent.cpp
events/callmemberevent.h
)
set_source_files_properties(qml/OsmLocationPlugin.qml PROPERTIES
@@ -296,6 +305,12 @@ ecm_add_qml_module(neochat URI org.kde.neochat GENERATE_PLUGIN_SOURCE
qml/HoverLinkIndicator.qml
qml/AvatarNotification.qml
qml/ReasonDialog.qml
qml/LivekitLogViewer.qml
qml/CallPage.qml
qml/IncomingCallDialog.qml
SOURCES
messageattached.cpp
messageattached.h
DEPENDENCIES
QtCore
QtQuick
@@ -404,7 +419,22 @@ else()
target_compile_definitions(neochat PUBLIC -DHAVE_X11=0)
endif()
target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models ${CMAKE_CURRENT_SOURCE_DIR}/enums)
qt_add_protobuf(neochat
GENERATE_PACKAGE_SUBFOLDERS
PROTO_FILES
protocols/ffi.proto
protocols/room.proto
protocols/e2ee.proto
protocols/audio_frame.proto
protocols/video_frame.proto
protocols/handle.proto
protocols/participant.proto
protocols/stats.proto
protocols/track.proto
protocols/rpc.proto
)
target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models ${CMAKE_CURRENT_SOURCE_DIR}/enums ${CMAKE_CURRENT_SOURCE_DIR}/calls)
target_link_libraries(neochat PRIVATE settingsplugin timelineplugin devtoolsplugin loginplugin chatbarplugin)
target_link_libraries(neochat PUBLIC
Qt::Core
@@ -414,6 +444,7 @@ target_link_libraries(neochat PUBLIC
Qt::Multimedia
Qt::Network
Qt::QuickControls2
Qt::Protobuf
KF6::I18n
KF6::Kirigami
KF6::Notifications
@@ -428,6 +459,7 @@ target_link_libraries(neochat PUBLIC
cmark::cmark
QCoro::Core
QCoro::Network
LiveKit
)
if (TARGET KF6::Crash)

0
src/calls/call.cpp Normal file
View File

74
src/calls/call.h Normal file
View File

@@ -0,0 +1,74 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include <QAbstractListModel>
#include <QObject>
#include <QQmlEngine>
#include "neochatroom.h"
class Participant : public QObject
{
Q_OBJECT
void setVolume(float volume);
void muteLocally();
void unmuteLocally();
void ring(); // See MSC4075
// TODO: if these are possible; check livekit api
void muteGlobally();
void forceDisableCamera();
void forceDisableScreenShare();
void setPermissions();
void kick();
void ban();
Q_SIGNALS:
void muted();
void unmuted();
void cameraEnabled();
void cameraDisabled();
void screenShareEnabled();
void screenShareDisabled();
};
class Call : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_UNCREATABLE("")
Q_PROPERTY(bool cameraEnabled READ cameraEnabled WRITE setCameraEnabled NOTIFY cameraEnabledChanged)
Q_PROPERTY(bool microphoneMuted READ microphoneMuted WRITE setMicrophoneMuted NOTIFY microphoneMutedChanged)
Q_PROPERTY(bool screenshareEnabled READ screenshareEnabled NOTIFY screenshareEnabledChanged)
Q_PROPERTY(NeoChatRoom *room READ room CONSTANT)
public:
explicit Call(NeoChatRoom *room, QObject *parent = nullptr);
Q_SIGNALS:
void participantJoined(const Participant &participant);
void participantLeft(const Participant &participant);
private:
QList<Participant *> m_participants;
};
class CallParticipantsModel : public QAbstractListModel
{
Q_OBJECT
public:
enum Roles {
NameRoleRole,
HasCameraRole,
HasScreenShareRole,
IsMutedRole,
};
Q_ENUM(Roles)
};

View File

@@ -0,0 +1,447 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include "callcontroller.h"
#include <QAudioSink>
#include <QMediaDevices>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QProtobufSerializer>
#include <QVideoFrame>
#include <QVideoFrameFormat>
#include <QVideoSink>
#include <livekit_ffi.h>
#include <Quotient/csapi/openid.h>
#include "audio_frame.qpb.h"
#include "ffi.qpb.h"
#include "livekitlogmodel.h"
#include "neochatroom.h"
#include "track.qpb.h"
#include "video_frame.qpb.h"
using namespace livekit::proto;
using namespace Quotient;
extern "C" {
void livekit_ffi_initialize(void(ffiCallbackFn(const uint8_t *, size_t)), bool capture_logs, const char *, const char *);
}
void callback(const uint8_t *data, size_t length)
{
auto byteArrayData = QByteArray::fromRawData((const char *)data, length);
QProtobufSerializer serializer;
FfiEvent event;
event.deserialize(&serializer, byteArrayData);
CallController::instance().handleEvent(std::move(event));
}
CallController::CallController()
: QObject()
{
init();
}
void CallController::init()
{
// qRegisterProtobufTypes();
livekit_ffi_initialize(callback, true, "test", "1.0");
}
static void handleLog(const LogRecordRepeated &&logs)
{
for (const auto &log : logs) {
if (log.level() <= LogLevelGadget::LogLevel::LOG_WARN) {
qWarning() << log.message();
}
}
LivekitLogModel::instance().addMessages(logs);
}
void CallController::handleConnect(ConnectCallback &&callback)
{
qWarning() << "Connecting to" << callback.result().room().info().name() << "with id" << callback.asyncId();
if (!m_connectingRooms.contains(callback.asyncId()) || !m_connectingRooms[callback.asyncId()]
|| m_connectingRooms[callback.asyncId()]->id() != callback.result().room().info().name()) {
qWarning() << "Connecting to unexpected room";
return;
}
m_connectingRooms.remove(callback.asyncId());
m_rooms[callback.asyncId()] = callback.result().room();
localParticipant = callback.result().localParticipant().handle().id_proto();
Q_EMIT connected();
}
void CallController::handleDispose(DisposeCallback &&callback)
{
qWarning() << "Disposing" << callback.asyncId();
if (m_rooms.contains(callback.asyncId())) {
qWarning() << " room" << m_rooms[callback.asyncId()].info().name();
m_rooms.erase(callback.asyncId());
} else {
qWarning() << " unknown object";
}
}
void CallController::handleRoomEvent(livekit::proto::RoomEvent &&event)
{
if (event.hasParticipantConnected()) {
qWarning() << "Participant connected" << event.participantConnected().info().info().identity();
} else if (event.hasParticipantDisconnected()) {
qWarning() << "Participant connected" << event.participantDisconnected().participantIdentity();
} else if (event.hasLocalTrackPublished()) {
qWarning() << "Local track published";
m_localVideoTrackSid = event.localTrackPublished().trackSid();
} else if (event.hasLocalTrackUnpublished()) {
qWarning() << "Local track unpublished";
} else if (event.hasTrackPublished()) {
qWarning() << "Track published";
} else if (event.hasTrackUnpublished()) {
qWarning() << "Track unpublished";
} else if (event.hasTrackSubscribed()) {
qWarning() << "Track subscribed";
auto track = event.trackSubscribed().track();
if (track.info().kind() == TrackKindGadget::TrackKind::KIND_AUDIO) {
NewAudioStreamRequest audioStreamRequest;
audioStreamRequest.setTrackHandle(track.handle().id_proto());
FfiRequest request;
request.setNewAudioStream(audioStreamRequest);
QProtobufSerializer serializer;
auto data = request.serialize(&serializer);
const uint8_t *ret_data;
size_t size;
livekit_ffi_request((const uint8_t *)data.data(), data.length(), &ret_data, &size);
FfiResponse newResponse;
newResponse.deserialize(&serializer, QByteArray::fromRawData((const char *)ret_data, size));
} else if (track.info().kind() == TrackKindGadget::TrackKind::KIND_VIDEO) {
NewVideoStreamRequest videoStreamRequest;
videoStreamRequest.setTrackHandle((track.handle().id_proto()));
FfiRequest request;
request.setNewVideoStream(videoStreamRequest);
QProtobufSerializer serializer;
auto data = request.serialize(&serializer);
const uint8_t *ret_data;
size_t size;
livekit_ffi_request((const uint8_t *)data.data(), data.length(), &ret_data, &size);
FfiResponse newResponse;
newResponse.deserialize(&serializer, QByteArray::fromRawData((const char *)ret_data, size));
}
} else if (event.hasTrackUnsubscribed()) {
qWarning() << "Track unsubscribed";
} else if (event.hasTrackSubscriptionFailed()) {
qWarning() << "Track subscription failed";
} else if (event.hasTrackMuted()) {
qWarning() << "Track muted";
} else if (event.hasTrackUnmuted()) {
qWarning() << "Track unmuted";
} else if (event.hasActiveSpeakersChanged()) {
qWarning() << "Active speakers changed";
} else if (event.hasRoomMetadataChanged()) {
qWarning() << "room metadata changed";
} else if (event.hasParticipantMetadataChanged()) {
qWarning() << "participant metadata changed";
} else if (event.hasParticipantNameChanged()) {
qWarning() << "participant name changed";
} else if (event.hasConnectionQualityChanged()) {
qWarning() << "connection quality changed to" << event.connectionQualityChanged().quality();
} else if (event.hasDataPacketReceived()) {
qWarning() << "data received";
} else if (event.hasConnectionStateChanged()) {
qWarning() << "connection state changed";
} else if (event.hasDisconnected()) {
qWarning() << "disconnected";
} else if (event.hasReconnecting()) {
qWarning() << "reconnecting";
} else if (event.hasReconnected()) {
qWarning() << "Reconnected";
} else if (event.hasE2eeStateChanged()) {
qWarning() << "e2eeStateChanged";
} else if (event.hasEos()) {
qWarning() << "eos";
} else {
qWarning() << "Unknown room event";
}
}
void saveByteArray(const QByteArray &data, const QString &name)
{
QFile file(u"/home/tobias/"_s + name);
file.open(QFile::WriteOnly);
file.write(data);
file.close();
}
void CallController::handleEvent(FfiEvent &&event)
{
if (event.hasLogs()) {
handleLog(std::move(event.logs().records()));
} else if (event.hasRoomEvent()) {
handleRoomEvent(std::move(event.roomEvent()));
} else if (event.hasTrackEvent()) {
qWarning() << "track event";
} else if (event.hasVideoStreamEvent()) {
qWarning() << "video stream event";
auto video = event.videoStreamEvent();
auto info = video.frameReceived().buffer().info();
QByteArray data((const char *)info.dataPtr(), info.width() * info.height() * 1.5);
auto frame = QVideoFrame(QVideoFrameFormat(QSize(info.width(), info.height()), QVideoFrameFormat::Format_YUV420P));
frame.map(QVideoFrame::WriteOnly);
memcpy(frame.bits(0), data.constData(), data.size() / 3 * 2);
memcpy(frame.bits(1), data.constData() + data.size() / 3 * 2, data.size() / 6);
memcpy(frame.bits(2), data.constData() + data.size() / 3 * 2 + data.size() / 6, data.size() / 6);
qWarning() << frame.size() << data.toBase64();
frame.unmap();
m_sink->setVideoFrame(frame);
delete (char *)info.dataPtr();
} else if (event.hasAudioStreamEvent()) {
return; //TODO remove
static bool initialized = false;
if (!initialized) {
initialized = true;
QAudioFormat format;
format.setSampleRate(48000);
format.setChannelCount(2);
format.setSampleFormat(QAudioFormat::Int16);
QAudioDevice info(QMediaDevices::defaultAudioOutput());
if (!info.isFormatSupported(format)) {
qWarning() << "Audio format not supported";
Q_ASSERT(false);
return;
}
sink = new QAudioSink(format);
audioData = sink->start();
QProtobufSerializer serializer;
NewAudioResamplerRequest narr;
FfiRequest request;
request.setNewAudioResampler(narr);
auto data = request.serialize(&serializer);
const uint8_t *ret_data;
size_t size;
livekit_ffi_request((const uint8_t *)data.data(), data.length(), &ret_data, &size);
FfiResponse newResponse;
newResponse.deserialize(&serializer, QByteArray::fromRawData((const char *)ret_data, size));
resampler = newResponse.newAudioResampler().resampler().handle().id_proto();
}
if (event.audioStreamEvent().hasFrameReceived()) {
FfiRequest request;
RemixAndResampleRequest rarr;
rarr.setBuffer(event.audioStreamEvent().frameReceived().frame().info());
rarr.setNumChannels(2);
rarr.setSampleRate(48000);
rarr.setResamplerHandle(resampler);
request = FfiRequest();
request.setRemixAndResample(rarr);
static QProtobufSerializer serializer;
auto data = request.serialize(&serializer);
const uint8_t *ret_data;
size_t size;
livekit_ffi_request((const uint8_t *)data.data(), data.length(), &ret_data, &size);
FfiResponse response;
response.deserialize(&serializer, QByteArray::fromRawData((const char *)ret_data, size));
Q_ASSERT(response.hasRemixAndResample());
auto info = response.remixAndResample().buffer().info();
auto bytes = info.numChannels() * info.samplesPerChannel() * 2;
data = QByteArray::fromRawData((const char *)info.dataPtr(), bytes);
audioData->write(data);
}
} else if (event.hasConnect()) {
handleConnect(std::move(event.connect()));
} else if (event.hasDisconnect()) {
qWarning() << "disconnect";
} else if (event.hasDispose()) {
handleDispose(std::move(event.dispose()));
} else if (event.hasPublishTrack()) {
qWarning() << "publish track";
} else if (event.hasUnpublishTrack()) {
qWarning() << "unpublish track";
} else if (event.hasPublishData()) {
qWarning() << "publish data";
} else if (event.hasCaptureAudioFrame()) {
qWarning() << "audio frame";
} else if (event.hasGetStats()) {
qWarning() << "get stats";
} else if (event.hasGetSessionStats()) {
qWarning() << "get session stats";
} else if (event.hasPanic()) {
qWarning() << "panic";
} else {
qWarning() << event.messageField();
}
}
void CallController::handleCallMemberEvent(const Quotient::CallMemberEvent *event, NeoChatRoom *room)
{
qWarning() << event->fullJson();
Q_EMIT callStarted();
const auto connection = room->connection();
auto job = connection->callApi<RequestOpenIdTokenJob>(connection->userId());
connect(job, &BaseJob::finished, this, [this, room, job, connection, event]() {
auto nam = new QNetworkAccessManager;
auto json = QJsonDocument(QJsonObject{
{"room"_L1, room->id()},
{"openid_token"_L1,
QJsonObject{{"access_token"_L1, job->tokenData().accessToken},
{"token_type"_L1, job->tokenData().tokenType},
{"matrix_server_name"_L1, job->tokenData().matrixServerName}}},
{"device_id"_L1, connection->deviceId()},
})
.toJson();
// This is an old event!
if (!event->contentJson().contains("foci_preferred"_L1)) {
return;
}
QNetworkRequest request(QUrl((event->contentJson()["foci_preferred"_L1].toArray()[0]["livekit_service_url"_L1].toString() + "/sfu/get"_L1)));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"_L1);
auto reply = nam->post(request, json);
connect(reply, &QNetworkReply::finished, this, [reply, this, room]() {
auto json = QJsonDocument::fromJson(reply->readAll()).object();
FfiRequest message;
ConnectRequest connectRequest;
connectRequest.setUrl(json["url"_L1].toString());
connectRequest.setToken(json["jwt"_L1].toString());
message.setConnect(connectRequest);
QProtobufSerializer serializer;
auto data = message.serialize(&serializer);
size_t size;
const uint8_t *ret_data;
livekit_ffi_request((const uint8_t *)data.data(), data.length(), &ret_data, &size);
FfiResponse connectResponse;
connectResponse.deserialize(&serializer, QByteArray::fromRawData((const char *)ret_data, size));
if (!connectResponse.hasConnect()) {
qWarning() << "connectResponse has unexpected content" << connectResponse.messageField();
return;
}
m_connectingRooms[connectResponse.connect().asyncId()] = room;
});
});
}
FfiResponse request(FfiRequest &&request)
{
static QProtobufSerializer serializer;
auto data = request.serialize(&serializer);
size_t responseLength;
const char *responseData;
livekit_ffi_request((const uint8_t *)data.constData(), data.size(), (const uint8_t **)&responseData, &responseLength);
auto response = QByteArray::fromRawData(responseData, responseLength);
FfiResponse ffiResponse;
ffiResponse.deserialize(&serializer, response);
return ffiResponse;
}
void CallController::setCameraVideoSink(QVideoSink *videoSink)
{
m_cameraVideoSink = videoSink;
connect(videoSink, &QVideoSink::videoFrameChanged, this, [videoSink, this]() {
static bool initialized = false;
if (localParticipant == 100000) {
return; // TODO make less shitty
}
static QtProtobuf::uint64 handle;
if (!initialized) {
initialized = true;
NewVideoSourceRequest newVideoSourceRequest;
VideoSourceResolution resolution;
resolution.setHeight(videoSink->videoSize().height());
resolution.setWidth(videoSink->videoSize().width());
newVideoSourceRequest.setResolution(resolution);
newVideoSourceRequest.setType(VideoSourceTypeGadget::VideoSourceType::VIDEO_SOURCE_NATIVE);
FfiRequest ffiRequest;
ffiRequest.setNewVideoSource(newVideoSourceRequest);
auto response = request(std::move(ffiRequest));
handle = response.newVideoSource().source().handle().id_proto();
m_localVideoTrackHandle = handle;
CreateVideoTrackRequest createVideoTrackRequest;
createVideoTrackRequest.setName("Camera"_L1);
createVideoTrackRequest.setSourceHandle(handle);
FfiRequest request;
request.setCreateVideoTrack(createVideoTrackRequest);
auto createResponse = ::request(std::move(request));
m_localVideoTrackId = createResponse.createVideoTrack().track().handle().id_proto();
publishTrack(m_localVideoTrackId);
}
auto image = videoSink->videoFrame().toImage();
image.convertTo(QImage::Format_RGB888);
CaptureVideoFrameRequest request;
VideoBufferInfo buffer;
buffer.setType(VideoBufferTypeGadget::VideoBufferType::RGB24);
buffer.setWidth(image.width());
buffer.setHeight(image.height());
buffer.setDataPtr((QtProtobuf::uint64)image.bits());
buffer.setStride(image.bytesPerLine());
QList<VideoBufferInfo_QtProtobufNested::ComponentInfo> components;
VideoBufferInfo_QtProtobufNested::ComponentInfo componentInfo;
componentInfo.setStride(image.bytesPerLine());
componentInfo.setDataPtr((QtProtobuf::uint64)image.bits());
componentInfo.setSize(image.sizeInBytes());
components += componentInfo;
buffer.setComponents(components);
request.setBuffer(buffer);
request.setSourceHandle(handle);
request.setTimestampUs(QDateTime::currentMSecsSinceEpoch() * 1000);
request.setRotation(VideoRotationGadget::VideoRotation::VIDEO_ROTATION_0);
FfiRequest ffiRequest;
ffiRequest.setCaptureVideoFrame(request);
auto response = ::request(std::move(ffiRequest));
});
}
void CallController::setVideoSink(QObject *sink)
{
m_sink = dynamic_cast<QVideoSink *>(sink);
}
void LivekitVideoSink::setVideoSink(QVideoSink *videoSink)
{
m_videoSink = videoSink;
CallController::instance().setVideoSink(videoSink);
Q_EMIT videoSinkChanged();
}
QVideoSink *LivekitVideoSink::videoSink() const
{
return m_videoSink;
}
void CallController::toggleCamera()
{
if (m_localVideoTrackSid.isEmpty()) {
publishTrack(m_localVideoTrackId);
} else {
FfiRequest request;
UnpublishTrackRequest unpublishRequest;
unpublishRequest.setLocalParticipantHandle(localParticipant);
unpublishRequest.setTrackSid(m_localVideoTrackSid);
request.setUnpublishTrack(unpublishRequest);
auto response = ::request(std::move(request));
m_localVideoTrackSid = QString();
}
}
void CallController::publishTrack(uint64_t id)
{
PublishTrackRequest publishTrackRequest;
publishTrackRequest.setTrackHandle(id);
publishTrackRequest.setLocalParticipantHandle(localParticipant);
TrackPublishOptions options;
options.setSource(TrackSourceGadget::TrackSource::SOURCE_CAMERA);
options.setVideoCodec(VideoCodecGadget::VideoCodec::VP8);
publishTrackRequest.setOptions(options);
auto request = FfiRequest();
request.setPublishTrack(publishTrackRequest);
auto publishResponse = ::request(std::move(request));
}

View File

@@ -0,0 +1,97 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#pragma once
#include <QObject>
#include <QQmlEngine>
#include <QVideoSink>
#include "events/callmemberevent.h"
#include "room.qpb.h"
namespace livekit::proto
{
class FfiEvent;
class ConnectCallback;
class DisposeCallback;
class RoomEvent;
}
class LivekitMediaPlayer;
class NeoChatRoom;
class QAudioSink;
class CallController : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
public:
static CallController &instance()
{
static CallController _instance;
return _instance;
}
static CallController *create(QQmlEngine *, QJSEngine *)
{
QQmlEngine::setObjectOwnership(&instance(), QQmlEngine::CppOwnership);
return &instance();
}
void handleCallMemberEvent(const Quotient::CallMemberEvent *event, NeoChatRoom *room);
// Internal. Do not use.
void handleEvent(livekit::proto::FfiEvent &&event);
Q_INVOKABLE void setVideoSink(QObject *sink);
Q_INVOKABLE void setCameraVideoSink(QVideoSink *videoSink);
Q_INVOKABLE void toggleCamera();
Q_SIGNALS:
void callStarted();
void connected();
private:
CallController();
void init();
QMap<uint64_t, QPointer<NeoChatRoom>> m_connectingRooms;
std::map<uint64_t, livekit::proto::OwnedRoom> m_rooms;
void handleConnect(livekit::proto::ConnectCallback &&callback);
void handleDispose(livekit::proto::DisposeCallback &&callback);
void handleRoomEvent(livekit::proto::RoomEvent &&event);
void publishTrack(uint64_t id);
QIODevice *audioData = nullptr;
QAudioSink *sink;
QVideoSink *m_sink;
uint64_t resampler;
QVideoSink *m_cameraVideoSink = nullptr;
uint64_t localParticipant = 100000;
QString m_localVideoTrackSid;
uint64_t m_localVideoTrackId;
uint64_t m_localVideoTrackHandle;
};
class LivekitVideoSink : public QObject
{
Q_OBJECT
QML_ELEMENT
public:
Q_PROPERTY(QVideoSink *videoSink READ videoSink WRITE setVideoSink NOTIFY videoSinkChanged REQUIRED)
using QObject::QObject;
void setVideoSink(QVideoSink *videoSink);
QVideoSink *videoSink() const;
Q_SIGNALS:
void videoSinkChanged();
private:
QVideoSink *m_videoSink = nullptr;
};

View File

View File

View File

0
src/calls/participant.h Normal file
View File

View File

@@ -349,7 +349,7 @@ QQC2.Control {
replyEventId: _private.chatBarCache.replyId
replyAuthor: _private.chatBarCache.relationAuthor
replyContentModel: _private.chatBarCache.relationEventContentModel
maxContentWidth: paneLoader.item.width
Message.maxContentWidth: paneLoader.item.width
}
QQC2.Button {
id: cancelButton

View File

@@ -45,6 +45,8 @@ bool testMode = false;
using namespace Quotient;
Controller::Controller(QObject *parent)
: QObject(parent)
{
@@ -132,6 +134,7 @@ Controller::Controller(QObject *parent)
m_endpoint = connector->endpoint();
#endif
}
Controller &Controller::instance()

View File

@@ -7,5 +7,5 @@
using namespace Qt::StringLiterals;
QMultiHash<QString, QVariant> EmojiTones::_tones = {
#include "emojitones_data.h"
//#include "emojitones_data.h"
};

View File

@@ -0,0 +1,20 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.1-or-later
#pragma once
#include <Quotient/events/roomevent.h>
namespace Quotient
{
class CallEncryptionKeysEvent : public RoomEvent
{
public:
QUO_EVENT(CallEncryptionKeysEvent, "io.element.call.encryption_keys");
explicit CallEncryptionKeysEvent(const QJsonObject &obj)
: RoomEvent(obj)
{
}
};
}

View File

@@ -0,0 +1,38 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include "callmemberevent.h"
#include <QString>
using namespace Quotient;
using namespace Qt::Literals::StringLiterals;
CallMemberEventContent::CallMemberEventContent(const QJsonObject &json)
{
for (const auto &membership : json["memberships"_L1].toArray()) {
QList<Focus> foci;
for (const auto &focus : membership["foci_active"_L1].toArray()) {
foci.append(Focus{
.livekitAlias = focus["livekit_alias"_L1].toString(),
.livekitServiceUrl = focus["livekit_service_url"_L1].toString(),
.type = focus["livekit"_L1].toString(),
});
}
memberships.append(CallMembership{
.application = membership["application"_L1].toString(),
.callId = membership["call_id"_L1].toString(),
.deviceId = membership["device_id"_L1].toString(),
.expires = membership["expires"_L1].toInt(),
.expiresTs = membership["expires"_L1].toVariant().value<uint64_t>(),
.fociActive = foci,
.membershipId = membership["membershipID"_L1].toString(),
.scope = membership["scope"_L1].toString(),
});
}
}
QJsonObject CallMemberEventContent::toJson() const
{
return {};
}

View File

@@ -0,0 +1,59 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.1-or-later
#pragma once
#include <Quotient/events/stateevent.h>
namespace Quotient
{
struct Focus {
QString livekitAlias;
QString livekitServiceUrl;
QString type;
};
struct CallMembership {
QString application;
QString callId;
QString deviceId;
int expires;
uint64_t expiresTs;
QList<Focus> fociActive;
QString membershipId;
QString scope;
};
class CallMemberEventContent
{
public:
explicit CallMemberEventContent(const QJsonObject &json);
QJsonObject toJson() const;
QList<CallMembership> memberships;
};
/**
* @class CallMemberEvent
*
* Class to define a call member event.
*
* @sa Quotient::StateEvent
*/
class CallMemberEvent : public KeyedStateEventBase<CallMemberEvent, CallMemberEventContent>
{
public:
QUO_EVENT(CallMemberEvent, "org.matrix.msc3401.call.member")
explicit CallMemberEvent(const QJsonObject &obj)
: KeyedStateEventBase(obj)
{
}
QJsonArray memberships() const
{
return contentJson()[u"memberships"_s].toArray();
}
};
}

View File

@@ -0,0 +1,16 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.1-or-later
#pragma once
#include <Quotient/events/roomevent.h>
namespace Quotient
{
class CallNotifyEvent : public RoomEvent
{
public:
QUO_EVENT(CallNotifyEvent, "org.matrix.msc4075.call.notify");
explicit CallNotifyEvent(const QJsonObject &obj);
};

39
src/livekitlogmodel.cpp Normal file
View File

@@ -0,0 +1,39 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include "livekitlogmodel.h"
using namespace livekit::proto;
QVariant LivekitLogModel::data(const QModelIndex &index, int role) const
{
const auto &message = m_messages[index.row()];
if (role == MessageRole) {
return message.message();
}
return {};
}
int LivekitLogModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return m_messages.size();
}
QHash<int, QByteArray> LivekitLogModel::roleNames() const
{
return {
{MessageRole, "message"},
};
}
void LivekitLogModel::addMessages(livekit::proto::LogRecordRepeated messages)
{
for (const auto &message : messages) {
// if (message.level() < 3) {
beginInsertRows({}, m_messages.size(), m_messages.size() + 1);
m_messages += message;
endInsertRows();
// }
}
}

61
src/livekitlogmodel.h Normal file
View File

@@ -0,0 +1,61 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#pragma once
#include <QAbstractListModel>
#include <QQmlEngine>
#include <QList>
#include "ffi.qpb.h"
class LivekitLogModel : public QAbstractListModel
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
public:
static LivekitLogModel &instance() {
static LivekitLogModel _instance;
return _instance;
}
static LivekitLogModel *create(QQmlEngine *, QJSEngine *) {
QQmlEngine::setObjectOwnership(&instance(), QQmlEngine::CppOwnership);
return &instance();
}
/**
* @brief Defines the model roles.
*/
enum Roles {
MessageRole = Qt::DisplayRole,
};
/**
* @brief Get the given role value at the given index.
*
* @sa QAbstractItemModel::data
*/
[[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
/**
* @brief Number of rows in the model.
*
* @sa QAbstractItemModel::rowCount
*/
[[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
/**
* @brief Returns a mapping from Role enum values to role names.
*
* @sa Roles, QAbstractItemModel::roleNames()
*/
[[nodiscard]] QHash<int, QByteArray> roleNames() const override;
void addMessages(livekit::proto::LogRecordRepeated messages);
private:
livekit::proto::LogRecordRepeated m_messages;
LivekitLogModel() = default;
};

View File

@@ -1,11 +1,141 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include "mediamanager.h"
#include <QDirIterator>
#include <QMimeDatabase>
#include <Quotient/qt_connection_util.h>
#include "events/callmemberevent.h"
#include "neochatroom.h"
using namespace Qt::Literals::StringLiterals;
using namespace Quotient;
void MediaManager::startPlayback()
{
Q_EMIT playbackStarted();
}
#include "moc_mediamanager.cpp"
void MediaManager::ring(const QJsonObject &json, NeoChatRoom *room)
{
qWarning() << "start check ring";
// todo: check sender != us
if (json["content"_L1]["application"_L1].toString() != "m.call"_L1) {
qWarning() << "not m.call";
return;
}
qWarning() << json;
if (!json["content"_L1]["m.mentions"_L1]["room"_L1].toBool() || json[u"sender"_s].toString() == room->connection()->userId()) {
bool mentioned = false;
for (const auto &user : json["content"_L1]["m.mentions"_L1]["user_ids"_L1].toArray()) {
if (user.toString() == room->connection()->userId()) {
mentioned = true;
break;
}
}
if (!mentioned) {
qWarning() << "not mentioned";
return;
}
}
if (json["content"_L1]["notify_type"_L1].toString() != "ring"_L1) {
qWarning() << "not ring";
return;
}
if (room->pushNotificationState() == PushNotificationState::Mute) {
qWarning() << "mute";
return;
}
if (isRinging()) {
qWarning() << "already ringing";
return;
}
if (const auto &event = room->currentState().get<CallMemberEvent>(room->connection()->userId())) {
if (event) {
auto memberships = event->contentJson()["memberships"_L1].toArray();
for (const auto &m : memberships) {
const auto &membership = m.toObject();
if (membership["application"_L1] == "m.call"_L1 && membership["call_id"_L1].toString().isEmpty()) {
qWarning() << "already in a call";
return;
}
}
}
}
connectUntil(room, &NeoChatRoom::changed, this, [this, room]() {
if (const auto &event = room->currentState().get<CallMemberEvent>(room->connection()->userId())) {
if (event) {
auto memberships = event->contentJson()["memberships"_L1].toArray();
for (const auto &m : memberships) {
const auto &membership = m.toObject();
if (membership["application"_L1] == "m.call"_L1 && membership["call_id"_L1].toString().isEmpty()) {
qWarning() << "stopping";
stopRinging();
return true;
}
}
}
}
return false;
});
if (json["unsigned"_L1]["age"_L1].toInt() > 10000) {
qWarning() << "too old";
return;
}
ringUnchecked();
}
void MediaManager::ringUnchecked()
{
qWarning() << "ring";
static QString path;
if (path.isEmpty()) {
for (const auto &dir : QString::fromUtf8(qgetenv("XDG_DATA_DIRS")).split(u':')) {
if (QFileInfo(dir + QStringLiteral("/sounds/freedesktop/stereo/phone-incoming-call.oga")).exists()) {
path = dir + QStringLiteral("/sounds/freedesktop/stereo/phone-incoming-call.oga");
break;
}
}
}
if (path.isEmpty()) {
return;
}
m_player->setSource(QUrl::fromLocalFile(path));
m_player->play();
Q_EMIT showIncomingCallDialog();
}
MediaManager::MediaManager(QObject *parent)
: QObject(parent)
, m_player(new QMediaPlayer())
, m_output(new QAudioOutput())
, m_timer(new QTimer())
{
m_player->setAudioOutput(m_output);
m_timer->setInterval(1000);
m_timer->setSingleShot(true);
connect(m_timer, &QTimer::timeout, this, [this]() {
m_player->play();
});
connect(m_player, &QMediaPlayer::playbackStateChanged, this, [this]() {
if (m_player->playbackState() == QMediaPlayer::StoppedState) {
m_timer->start();
}
});
}
bool MediaManager::isRinging() const
{
return m_ringing;
}
void MediaManager::stopRinging()
{
m_ringing = false;
m_player->pause();
m_timer->stop();
//Q_EMIT stopRinging();
}

View File

@@ -3,8 +3,13 @@
#pragma once
#include <QAudioOutput>
#include <QMediaPlayer>
#include <QObject>
#include <QQmlEngine>
#include <QTimer>
class NeoChatRoom;
/**
* @class MediaManager
@@ -34,9 +39,29 @@ public:
*/
Q_INVOKABLE void startPlayback();
/**
* Starts ringing if the criteria (see MSC / spec) are met.
*/
void ring(const QJsonObject &json, NeoChatRoom *room);
bool isRinging() const;
Q_SIGNALS:
/**
* @brief Emitted when any media player starts playing. Other objects should stop / pause playback.
*/
void playbackStarted();
void showIncomingCallDialog();
void closeIncomingCallDialog();
private:
void ringUnchecked();
void stopRinging();
QMediaPlayer *m_player;
QAudioOutput *m_output;
QTimer *m_timer;
bool m_ringing = false;
explicit MediaManager(QObject *parent = nullptr);
};

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

@@ -505,6 +505,19 @@ QList<ActionsModel::Action> actions{
kli18n("<user id> [<reason>]"),
kli18n("Removes the user from the room"),
},
Action{
QStringLiteral("endcall"),
[](const QString &text, NeoChatRoom *room, ChatBarCache *) {
auto events = room->currentState().eventsOfType(QStringLiteral("org.matrix.msc3401.call.member"));
for (auto event : events) {
room->setRoomState(QStringLiteral("org.matrix.msc3401.call.member"), event->stateKey(), {});
}
return QString();
},
std::nullopt,
kli18n(""),
kli18n("Forcibly end the call in this room"),
},
};
int ActionsModel::rowCount(const QModelIndex &parent) const

View File

@@ -20,7 +20,7 @@ EmojiModel::EmojiModel(QObject *parent)
, m_configGroup(KConfigGroup(m_config, u"Editor"_s))
{
if (_emojis.isEmpty()) {
#include "emojis.h"
//#include "emojis.h"
}
}

View File

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

View File

@@ -7,6 +7,7 @@
#include <QQmlEngine>
#include <Quotient/csapi/administrative_contact.h>
#include <Quotient/jobs/jobhandle.h>
class NeoChatConnection;
@@ -19,19 +20,27 @@ class ThreePIdModel : public QAbstractListModel
{
Q_OBJECT
QML_ELEMENT
QML_UNCREATABLE("")
/**
* @brief The current connection for the model to use.
*/
Q_PROPERTY(NeoChatConnection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
public:
/**
* @brief Defines the model roles.
*/
enum EventRoles {
enum Roles {
AddressRole = Qt::DisplayRole, /**< The third-party identifier address. */
MediumRole, /**< The medium of the third-party identifier. One of: [email, msisdn]. */
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.
@@ -56,9 +65,15 @@ public:
Q_INVOKABLE void refreshModel();
Q_SIGNALS:
void connectionChanged();
private:
QPointer<NeoChatConnection> m_connection;
QVector<Quotient::GetAccount3PIDsJob::ThirdPartyIdentifier> m_threePIds;
Quotient::JobHandle<Quotient::GetAccount3PIDsJob> m_job;
QList<QString> m_bindings;
void refreshBindStatus();

View File

@@ -37,7 +37,6 @@ using namespace Qt::StringLiterals;
NeoChatConnection::NeoChatConnection(QObject *parent)
: Connection(parent)
, m_threePIdModel(new ThreePIdModel(this))
{
m_linkPreviewers.setMaxCost(20);
connectSignals();
@@ -45,7 +44,6 @@ NeoChatConnection::NeoChatConnection(QObject *parent)
NeoChatConnection::NeoChatConnection(const QUrl &server, QObject *parent)
: Connection(server, parent)
, m_threePIdModel(new ThreePIdModel(this))
{
m_linkPreviewers.setMaxCost(20);
connectSignals();
@@ -299,11 +297,6 @@ void NeoChatConnection::deactivateAccount(const QString &password, const bool er
});
}
ThreePIdModel *NeoChatConnection::threePIdModel() const
{
return m_threePIdModel;
}
bool NeoChatConnection::hasIdentityServer() const
{
if (!hasAccountData(u"m.identity_server"_s)) {

View File

@@ -14,7 +14,6 @@
#include "enums/messagetype.h"
#include "linkpreviewer.h"
#include "models/threepidmodel.h"
class NeoChatConnection : public Quotient::Connection
{
@@ -37,11 +36,6 @@ class NeoChatConnection : public Quotient::Connection
*/
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.
*/
@@ -144,8 +138,6 @@ public:
Q_INVOKABLE void deactivateAccount(const QString &password, bool erase);
ThreePIdModel *threePIdModel() const;
bool hasIdentityServer() const;
/**
@@ -234,8 +226,6 @@ private:
bool m_isOnline = true;
void setIsOnline(bool isOnline);
ThreePIdModel *m_threePIdModel;
void connectSignals();
int m_badgeNotificationCount = 0;

View File

@@ -8,6 +8,7 @@
#include <QMediaPlayer>
#include <QMimeDatabase>
#include <QTemporaryFile>
#include <QProtobufSerializer>
#include <Quotient/events/eventcontent.h>
#include <Quotient/events/eventrelation.h>
@@ -42,6 +43,7 @@
#include "eventhandler.h"
#include "events/pollevent.h"
#include "filetransferpseudojob.h"
#include "mediamanager.h"
#include "neochatconfig.h"
#include "neochatconnection.h"
#include "neochatroommember.h"
@@ -57,6 +59,10 @@
#include <KJobTrackerInterface>
#include <KLocalizedString>
#include "calls/callcontroller.h"
#include "events/callencryptionkeysevent.h"
#include "events/callmemberevent.h"
using namespace Quotient;
NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinState)
@@ -160,6 +166,26 @@ NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinS
const auto neochatconnection = static_cast<NeoChatConnection *>(connection);
Q_ASSERT(neochatconnection);
connect(neochatconnection, &NeoChatConnection::globalUrlPreviewEnabledChanged, this, &NeoChatRoom::urlPreviewEnabledChanged);
connect(this, &Room::aboutToAddNewMessages, this, [this](const auto &messages) {
for (const auto &message : messages) {
if (const auto &memberEvent = eventCast<const CallMemberEvent>(message.get())) {
CallController::instance().handleCallMemberEvent(memberEvent, this);
}
if (const auto &encryptionEvent = eventCast<const CallEncryptionKeysEvent>(message.get())) {
qWarning() << encryptionEvent->fullJson();
Q_ASSERT(false);
}
}
});
// connect(this, &NeoChatRoom::aboutToAddNewMessages, this, [this](const auto &events) {
// for (const auto &event : events) {
// qWarning() << event->fullJson();
// if (event->matrixType() == "org.matrix.msc4075.call.notify"_ls) {
// MediaManager::instance().ring(event->fullJson(), this);
// }
// }
// });
}
bool NeoChatRoom::visible() const

View File

@@ -0,0 +1,251 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
import "handle.proto";
import "track.proto";
// Create a new AudioStream
// AudioStream is used to receive audio frames from a track
message NewAudioStreamRequest {
required uint64 track_handle = 1;
required AudioStreamType type = 2;
optional uint32 sample_rate = 3;
optional uint32 num_channels = 4;
}
message NewAudioStreamResponse { required OwnedAudioStream stream = 1; }
message AudioStreamFromParticipantRequest {
required uint64 participant_handle = 1;
required AudioStreamType type = 2;
optional TrackSource track_source = 3;
optional uint32 sample_rate = 5;
optional uint32 num_channels = 6;
}
message AudioStreamFromParticipantResponse { required OwnedAudioStream stream = 1; }
// Create a new AudioSource
message NewAudioSourceRequest {
required AudioSourceType type = 1;
optional AudioSourceOptions options = 2;
required uint32 sample_rate = 3;
required uint32 num_channels = 4;
optional uint32 queue_size_ms = 5;
}
message NewAudioSourceResponse { required OwnedAudioSource source = 1; }
// Push a frame to an AudioSource
// The data provided must be available as long as the client receive the callback.
message CaptureAudioFrameRequest {
required uint64 source_handle = 1;
required AudioFrameBufferInfo buffer = 2;
}
message CaptureAudioFrameResponse {
required uint64 async_id = 1;
}
message CaptureAudioFrameCallback {
required uint64 async_id = 1;
optional string error = 2;
}
message ClearAudioBufferRequest {
required uint64 source_handle = 1;
}
message ClearAudioBufferResponse {}
// Create a new AudioResampler
message NewAudioResamplerRequest {}
message NewAudioResamplerResponse {
required OwnedAudioResampler resampler = 1;
}
// Remix and resample an audio frame
message RemixAndResampleRequest {
required uint64 resampler_handle = 1;
required AudioFrameBufferInfo buffer = 2;
required uint32 num_channels = 3;
required uint32 sample_rate = 4;
}
message RemixAndResampleResponse {
required OwnedAudioFrameBuffer buffer = 1;
}
// New resampler using SoX (much better quality)
message NewSoxResamplerRequest {
required double input_rate = 1;
required double output_rate = 2;
required uint32 num_channels = 3;
required SoxResamplerDataType input_data_type = 4;
required SoxResamplerDataType output_data_type = 5;
required SoxQualityRecipe quality_recipe = 6;
optional uint32 flags = 7;
}
message NewSoxResamplerResponse {
oneof message {
OwnedSoxResampler resampler = 1;
string error = 2;
}
}
message PushSoxResamplerRequest {
required uint64 resampler_handle = 1;
required uint64 data_ptr = 2; // *const i16
required uint32 size = 3; // in bytes
}
message PushSoxResamplerResponse {
required uint64 output_ptr = 1; // *const i16 (could be null)
required uint32 size = 2; // in bytes
optional string error = 3;
}
message FlushSoxResamplerRequest {
required uint64 resampler_handle = 1;
}
message FlushSoxResamplerResponse {
required uint64 output_ptr = 1; // *const i16 (could be null)
required uint32 size = 2; // in bytes
optional string error = 3;
}
enum SoxResamplerDataType {
// TODO(theomonnom): support other datatypes (shouldn't really be needed)
SOXR_DATATYPE_INT16I = 0;
SOXR_DATATYPE_INT16S = 1;
}
enum SoxQualityRecipe {
SOXR_QUALITY_QUICK = 0;
SOXR_QUALITY_LOW = 1;
SOXR_QUALITY_MEDIUM = 2;
SOXR_QUALITY_HIGH = 3;
SOXR_QUALITY_VERYHIGH = 4;
}
enum SoxFlagBits {
SOXR_ROLLOFF_SMALL = 0; // 1 << 0
SOXR_ROLLOFF_MEDIUM = 1; // 1 << 1
SOXR_ROLLOFF_NONE = 2; // 1 << 2
SOXR_HIGH_PREC_CLOCK = 3; // 1 << 3
SOXR_DOUBLE_PRECISION = 4; // 1 << 4
SOXR_VR = 5; // 1 << 5
}
//
// AudioFrame buffer
//
message AudioFrameBufferInfo {
required uint64 data_ptr = 1; // *const i16
required uint32 num_channels = 2;
required uint32 sample_rate = 3;
required uint32 samples_per_channel = 4;
}
message OwnedAudioFrameBuffer {
required FfiOwnedHandle handle = 1;
required AudioFrameBufferInfo info = 2;
}
//
// AudioStream
//
enum AudioStreamType {
AUDIO_STREAM_NATIVE = 0;
AUDIO_STREAM_HTML = 1;
}
message AudioStreamInfo {
required AudioStreamType type = 1;
}
message OwnedAudioStream {
required FfiOwnedHandle handle = 1;
required AudioStreamInfo info = 2;
}
message AudioStreamEvent {
required uint64 stream_handle = 1;
oneof message {
AudioFrameReceived frame_received = 2;
AudioStreamEOS eos = 3;
}
}
message AudioFrameReceived {
required OwnedAudioFrameBuffer frame = 1;
}
message AudioStreamEOS {}
//
// AudioSource
//
message AudioSourceOptions {
required bool echo_cancellation = 1;
required bool noise_suppression = 2;
required bool auto_gain_control = 3;
}
enum AudioSourceType {
AUDIO_SOURCE_NATIVE = 0;
}
message AudioSourceInfo {
required AudioSourceType type = 2;
}
message OwnedAudioSource {
required FfiOwnedHandle handle = 1;
required AudioSourceInfo info = 2;
}
//
// AudioResampler
//
message AudioResamplerInfo { }
message OwnedAudioResampler {
required FfiOwnedHandle handle = 1;
required AudioResamplerInfo info = 2;
}
//
// Sox AudioResampler
//
message SoxResamplerInfo {}
message OwnedSoxResampler {
required FfiOwnedHandle handle = 1;
required SoxResamplerInfo info = 2;
}

154
src/protocols/e2ee.proto Normal file
View File

@@ -0,0 +1,154 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
// TODO(theomonnom): Should FrameCryptor be stateful on the client side and have their own handle?
enum EncryptionType {
NONE = 0;
GCM = 1;
CUSTOM = 2;
}
message FrameCryptor {
required string participant_identity = 1;
required string track_sid = 2;
required int32 key_index = 3;
required bool enabled = 4;
}
message KeyProviderOptions {
// Only specify if you want to use a shared_key
optional bytes shared_key = 1;
required int32 ratchet_window_size = 2;
required bytes ratchet_salt = 3;
required int32 failure_tolerance = 4; // -1 = no tolerance
}
message E2eeOptions {
required EncryptionType encryption_type = 1;
required KeyProviderOptions key_provider_options = 2;
}
enum EncryptionState {
NEW = 0;
OK = 1;
ENCRYPTION_FAILED = 2;
DECRYPTION_FAILED = 3;
MISSING_KEY = 4;
KEY_RATCHETED = 5;
INTERNAL_ERROR = 6;
}
message E2eeManagerSetEnabledRequest {
required bool enabled = 1;
}
message E2eeManagerSetEnabledResponse {}
message E2eeManagerGetFrameCryptorsRequest {}
message E2eeManagerGetFrameCryptorsResponse {
repeated FrameCryptor frame_cryptors = 1;
}
message FrameCryptorSetEnabledRequest {
required string participant_identity = 1;
required string track_sid = 2;
required bool enabled = 3;
}
message FrameCryptorSetEnabledResponse {}
message FrameCryptorSetKeyIndexRequest {
required string participant_identity = 1;
required string track_sid = 2;
required int32 key_index = 3;
}
message FrameCryptorSetKeyIndexResponse {}
message SetSharedKeyRequest {
required bytes shared_key = 1;
required int32 key_index = 2;
}
message SetSharedKeyResponse {}
message RatchetSharedKeyRequest {
required int32 key_index = 1;
}
message RatchetSharedKeyResponse {
optional bytes new_key = 1;
}
message GetSharedKeyRequest {
required int32 key_index = 1;
}
message GetSharedKeyResponse {
optional bytes key = 1;
}
message SetKeyRequest {
required string participant_identity = 1;
required bytes key = 2;
required int32 key_index = 3;
}
message SetKeyResponse {}
message RatchetKeyRequest {
required string participant_identity = 1;
required int32 key_index = 2;
}
message RatchetKeyResponse {
optional bytes new_key = 1;
}
message GetKeyRequest {
required string participant_identity = 1;
required int32 key_index = 2;
}
message GetKeyResponse {
optional bytes key = 1;
}
message E2eeRequest {
required uint64 room_handle = 1;
oneof message {
E2eeManagerSetEnabledRequest manager_set_enabled = 2;
E2eeManagerGetFrameCryptorsRequest manager_get_frame_cryptors = 3;
FrameCryptorSetEnabledRequest cryptor_set_enabled = 4;
FrameCryptorSetKeyIndexRequest cryptor_set_key_index = 5;
SetSharedKeyRequest set_shared_key = 6;
RatchetSharedKeyRequest ratchet_shared_key = 7;
GetSharedKeyRequest get_shared_key = 8;
SetKeyRequest set_key = 9;
RatchetKeyRequest ratchet_key = 10;
GetKeyRequest get_key = 11;
}
}
message E2eeResponse {
oneof message {
E2eeManagerSetEnabledResponse manager_set_enabled = 1;
E2eeManagerGetFrameCryptorsResponse manager_get_frame_cryptors = 2;
FrameCryptorSetEnabledResponse cryptor_set_enabled = 3;
FrameCryptorSetKeyIndexResponse cryptor_set_key_index = 4;
SetSharedKeyResponse set_shared_key = 5;
RatchetSharedKeyResponse ratchet_shared_key = 6;
GetSharedKeyResponse get_shared_key = 7;
SetKeyResponse set_key = 8;
RatchetKeyResponse ratchet_key = 9;
GetKeyResponse get_key = 10;
}
}

239
src/protocols/ffi.proto Normal file
View File

@@ -0,0 +1,239 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
// import "handle.proto";
import "e2ee.proto";
import "track.proto";
import "room.proto";
import "video_frame.proto";
import "audio_frame.proto";
import "rpc.proto";
// **How is the livekit-ffi working:
// We refer as the ffi server the Rust server that is running the LiveKit client implementation, and we
// refer as the ffi client the foreign language that commumicates with the ffi server. (e.g Python SDK, Unity SDK, etc...)
//
// We expose the Rust client implementation of livekit using the protocol defined here.
// Everything starts with a FfiRequest, which is a oneof message that contains all the possible
// requests that can be made to the ffi server.
// The server will then respond with a FfiResponse, which is also a oneof message that contains
// all the possible responses.
// The first request sent to the server must be an InitializeRequest, which contains the a pointer
// to the callback function that will be used to send events and async responses to the ffi client.
// (e.g participant joined, track published, etc...)
//
// **Useful things know when collaborating on the protocol:**
// Everything is subject to discussion and change :-)
//
// - The ffi client implementation must never forget to correctly dispose all the owned handles
// that it receives from the server.
//
// Therefore, the ffi client is easier to implement if there is less handles to manage.
//
// - We are mainly using FfiHandle on info messages (e.g: RoomInfo, TrackInfo, etc...)
// For this reason, info are only sent once, at creation (We're not using them for updates, we can infer them from
// events on the client implementation).
// e.g: set speaking to true when we receive a ActiveSpeakerChanged event.
// This is the input of livekit_ffi_request function
// We always expect a response (FFIResponse, even if it's empty)
message FfiRequest {
oneof message {
DisposeRequest dispose = 2;
// Room
ConnectRequest connect = 3;
DisconnectRequest disconnect = 4;
PublishTrackRequest publish_track = 5;
UnpublishTrackRequest unpublish_track = 6;
PublishDataRequest publish_data = 7;
SetSubscribedRequest set_subscribed = 8;
SetLocalMetadataRequest set_local_metadata = 9;
SetLocalNameRequest set_local_name = 10;
SetLocalAttributesRequest set_local_attributes = 11;
GetSessionStatsRequest get_session_stats = 12;
PublishTranscriptionRequest publish_transcription = 13;
PublishSipDtmfRequest publish_sip_dtmf = 14;
// Track
CreateVideoTrackRequest create_video_track = 15;
CreateAudioTrackRequest create_audio_track = 16;
LocalTrackMuteRequest local_track_mute = 17;
EnableRemoteTrackRequest enable_remote_track = 18;
GetStatsRequest get_stats = 19;
// Video
NewVideoStreamRequest new_video_stream = 20;
NewVideoSourceRequest new_video_source = 21;
CaptureVideoFrameRequest capture_video_frame = 22;
VideoConvertRequest video_convert = 23;
VideoStreamFromParticipantRequest video_stream_from_participant = 24;
// Audio
NewAudioStreamRequest new_audio_stream = 25;
NewAudioSourceRequest new_audio_source = 26;
CaptureAudioFrameRequest capture_audio_frame = 27;
ClearAudioBufferRequest clear_audio_buffer = 28;
NewAudioResamplerRequest new_audio_resampler = 29;
RemixAndResampleRequest remix_and_resample = 30;
E2eeRequest e2ee = 31;
AudioStreamFromParticipantRequest audio_stream_from_participant = 32;
NewSoxResamplerRequest new_sox_resampler = 33;
PushSoxResamplerRequest push_sox_resampler = 34;
FlushSoxResamplerRequest flush_sox_resampler = 35;
SendChatMessageRequest send_chat_message = 36;
EditChatMessageRequest edit_chat_message = 37;
// RPC
PerformRpcRequest perform_rpc = 38;
RegisterRpcMethodRequest register_rpc_method = 39;
UnregisterRpcMethodRequest unregister_rpc_method = 40;
RpcMethodInvocationResponseRequest rpc_method_invocation_response = 41;
}
}
// This is the output of livekit_ffi_request function.
message FfiResponse {
oneof message {
DisposeResponse dispose = 2;
// Room
ConnectResponse connect = 3;
DisconnectResponse disconnect = 4;
PublishTrackResponse publish_track = 5;
UnpublishTrackResponse unpublish_track = 6;
PublishDataResponse publish_data = 7;
SetSubscribedResponse set_subscribed = 8;
SetLocalMetadataResponse set_local_metadata = 9;
SetLocalNameResponse set_local_name = 10;
SetLocalAttributesResponse set_local_attributes = 11;
GetSessionStatsResponse get_session_stats = 12;
PublishTranscriptionResponse publish_transcription = 13;
PublishSipDtmfResponse publish_sip_dtmf = 14;
// Track
CreateVideoTrackResponse create_video_track = 15;
CreateAudioTrackResponse create_audio_track = 16;
LocalTrackMuteResponse local_track_mute = 17;
EnableRemoteTrackResponse enable_remote_track = 18;
GetStatsResponse get_stats = 19;
// Video
NewVideoStreamResponse new_video_stream = 20;
NewVideoSourceResponse new_video_source = 21;
CaptureVideoFrameResponse capture_video_frame = 22;
VideoConvertResponse video_convert = 23;
VideoStreamFromParticipantResponse video_stream_from_participant = 24;
// Audio
NewAudioStreamResponse new_audio_stream = 25;
NewAudioSourceResponse new_audio_source = 26;
CaptureAudioFrameResponse capture_audio_frame = 27;
ClearAudioBufferResponse clear_audio_buffer = 28;
NewAudioResamplerResponse new_audio_resampler = 29;
RemixAndResampleResponse remix_and_resample = 30;
AudioStreamFromParticipantResponse audio_stream_from_participant = 31;
E2eeResponse e2ee = 32;
NewSoxResamplerResponse new_sox_resampler = 33;
PushSoxResamplerResponse push_sox_resampler = 34;
FlushSoxResamplerResponse flush_sox_resampler = 35;
SendChatMessageResponse send_chat_message = 36;
// RPC
PerformRpcResponse perform_rpc = 37;
RegisterRpcMethodResponse register_rpc_method = 38;
UnregisterRpcMethodResponse unregister_rpc_method = 39;
RpcMethodInvocationResponseResponse rpc_method_invocation_response = 40;
}
}
// To minimize complexity, participant events are not included in the protocol.
// It is easily deducible from the room events and it turned out that is is easier to implement
// on the ffi client side.
message FfiEvent {
oneof message {
RoomEvent room_event = 1;
TrackEvent track_event = 2;
VideoStreamEvent video_stream_event = 3;
AudioStreamEvent audio_stream_event = 4;
ConnectCallback connect = 5;
DisconnectCallback disconnect = 7;
DisposeCallback dispose = 8;
PublishTrackCallback publish_track = 9;
UnpublishTrackCallback unpublish_track = 10;
PublishDataCallback publish_data = 11;
PublishTranscriptionCallback publish_transcription = 12;
CaptureAudioFrameCallback capture_audio_frame = 13;
SetLocalMetadataCallback set_local_metadata = 14;
SetLocalNameCallback set_local_name = 15;
SetLocalAttributesCallback set_local_attributes = 16;
GetStatsCallback get_stats = 17;
LogBatch logs = 18;
GetSessionStatsCallback get_session_stats = 19;
Panic panic = 20;
PublishSipDtmfCallback publish_sip_dtmf = 21;
SendChatMessageCallback chat_message = 22;
PerformRpcCallback perform_rpc = 23;
RpcMethodInvocationEvent rpc_method_invocation = 24;
}
}
// Stop all rooms synchronously (Do we need async here?).
// e.g: This is used for the Unity Editor after each assemblies reload.
// TODO(theomonnom): Implement a debug mode where we can find all leaked handles?
message DisposeRequest {
required bool async = 1;
}
message DisposeResponse {
optional uint64 async_id = 1; // None if sync
}
message DisposeCallback {
required uint64 async_id = 1;
}
enum LogLevel {
LOG_ERROR = 0;
LOG_WARN = 1;
LOG_INFO = 2;
LOG_DEBUG = 3;
LOG_TRACE = 4;
}
message LogRecord {
required LogLevel level = 1;
required string target = 2; // e.g "livekit", "libwebrtc", "tokio-tungstenite", etc...
optional string module_path = 3;
optional string file = 4;
optional uint32 line = 5;
required string message = 6;
}
message LogBatch {
repeated LogRecord records = 1;
}
message Panic {
required string message = 1;
}
// TODO(theomonnom): Debug messages (Print handles).

View File

@@ -0,0 +1,31 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
// # Safety
// The foreign language is responsable for disposing handles
// Forgetting to dispose the handle may lead to memory leaks
//
// Dropping a handle doesn't necessarily mean that the object is destroyed if it is still used
// on the FfiServer (Atomic reference counting)
//
// When refering to a handle without owning it, we just use a uint32 without this message.
// (the variable name is suffixed with "_handle")
message FfiOwnedHandle {
required uint64 id = 1;
}

View File

@@ -0,0 +1,42 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
import "handle.proto";
message ParticipantInfo {
required string sid = 1;
required string name = 2;
required string identity = 3;
required string metadata = 4;
map<string, string> attributes = 5;
required ParticipantKind kind = 6;
}
message OwnedParticipant {
required FfiOwnedHandle handle = 1;
required ParticipantInfo info = 2;
}
enum ParticipantKind {
PARTICIPANT_KIND_STANDARD = 0;
PARTICIPANT_KIND_INGRESS = 1;
PARTICIPANT_KIND_EGRESS = 2;
PARTICIPANT_KIND_SIP = 3;
PARTICIPANT_KIND_AGENT = 4;
}

552
src/protocols/room.proto Normal file
View File

@@ -0,0 +1,552 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
import "e2ee.proto";
import "handle.proto";
import "participant.proto";
import "track.proto";
import "video_frame.proto";
import "stats.proto";
// Connect to a new LiveKit room
message ConnectRequest {
required string url = 1;
required string token = 2;
required RoomOptions options = 3;
}
message ConnectResponse {
required uint64 async_id = 1;
}
message ConnectCallback {
message ParticipantWithTracks {
required OwnedParticipant participant = 1;
// TrackInfo are not needed here, if we're subscribed to a track, the FfiServer will send
// a TrackSubscribed event
repeated OwnedTrackPublication publications = 2;
}
message Result {
required OwnedRoom room = 1;
required OwnedParticipant local_participant = 2;
repeated ParticipantWithTracks participants = 3;
}
required uint64 async_id = 1;
oneof message {
string error = 2;
Result result = 3;
}
}
// Disconnect from the a room
message DisconnectRequest { required uint64 room_handle = 1; }
message DisconnectResponse { required uint64 async_id = 1; }
message DisconnectCallback { required uint64 async_id = 1; }
// Publish a track to the room
message PublishTrackRequest {
required uint64 local_participant_handle = 1;
required uint64 track_handle = 2;
required TrackPublishOptions options = 3;
}
message PublishTrackResponse {
required uint64 async_id = 1;
}
message PublishTrackCallback {
required uint64 async_id = 1;
oneof message {
string error = 2;
OwnedTrackPublication publication = 3;
}
}
// Unpublish a track from the room
message UnpublishTrackRequest {
required uint64 local_participant_handle = 1;
required string track_sid = 2;
required bool stop_on_unpublish = 3;
}
message UnpublishTrackResponse {
required uint64 async_id = 1;
}
message UnpublishTrackCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Publish data to other participants
message PublishDataRequest {
required uint64 local_participant_handle = 1;
required uint64 data_ptr = 2;
required uint64 data_len = 3;
required bool reliable = 4;
repeated string destination_sids = 5 [deprecated=true];
optional string topic = 6;
repeated string destination_identities = 7;
}
message PublishDataResponse {
required uint64 async_id = 1;
}
message PublishDataCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Publish transcription messages to room
message PublishTranscriptionRequest {
required uint64 local_participant_handle = 1;
required string participant_identity = 2;
required string track_id = 3;
repeated TranscriptionSegment segments = 4;
}
message PublishTranscriptionResponse {
required uint64 async_id = 1;
}
message PublishTranscriptionCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Publish Sip DTMF messages to other participants
message PublishSipDtmfRequest {
required uint64 local_participant_handle = 1;
required uint32 code = 2;
required string digit = 3;
repeated string destination_identities = 4;
}
message PublishSipDtmfResponse {
required uint64 async_id = 1;
}
message PublishSipDtmfCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Change the local participant's metadata
message SetLocalMetadataRequest {
required uint64 local_participant_handle = 1;
required string metadata = 2;
}
message SetLocalMetadataResponse {
required uint64 async_id = 1;
}
message SetLocalMetadataCallback {
required uint64 async_id = 1;
optional string error = 2;
}
message SendChatMessageRequest {
required uint64 local_participant_handle = 1;
required string message = 2;
repeated string destination_identities = 3;
optional string sender_identity = 4;
}
message EditChatMessageRequest {
required uint64 local_participant_handle = 1;
required string edit_text = 2;
required ChatMessage original_message = 3;
repeated string destination_identities = 4;
optional string sender_identity = 5;
}
message SendChatMessageResponse {
required uint64 async_id = 1;
}
message SendChatMessageCallback {
required uint64 async_id = 1;
oneof message {
string error = 2;
ChatMessage chat_message = 3;
}
}
// Change the local participant's attributes
message SetLocalAttributesRequest {
required uint64 local_participant_handle = 1;
repeated AttributesEntry attributes = 2;
}
message AttributesEntry {
required string key = 1;
required string value = 2;
}
message SetLocalAttributesResponse {
required uint64 async_id = 1;
}
message SetLocalAttributesCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Change the local participant's name
message SetLocalNameRequest {
required uint64 local_participant_handle = 1;
required string name = 2;
}
message SetLocalNameResponse {
required uint64 async_id = 1;
}
message SetLocalNameCallback {
required uint64 async_id = 1;
optional string error = 2;
}
// Change the "desire" to subs2ribe to a track
message SetSubscribedRequest {
required bool subscribe = 1;
required uint64 publication_handle = 2;
}
message SetSubscribedResponse {}
message GetSessionStatsRequest {
required uint64 room_handle = 1;
}
message GetSessionStatsResponse {
required uint64 async_id = 1;
}
message GetSessionStatsCallback {
message Result {
repeated RtcStats publisher_stats = 1;
repeated RtcStats subscriber_stats = 2;
}
required uint64 async_id = 1;
oneof message {
string error = 2;
Result result = 3;
}
}
//
// Options
//
message VideoEncoding {
required uint64 max_bitrate = 1;
required double max_framerate = 2;
}
message AudioEncoding {
required uint64 max_bitrate = 1;
}
message TrackPublishOptions {
// encodings are optional
optional VideoEncoding video_encoding = 1;
optional AudioEncoding audio_encoding = 2;
optional VideoCodec video_codec = 3;
optional bool dtx = 4;
optional bool red = 5;
optional bool simulcast = 6;
optional TrackSource source = 7;
optional string stream = 8;
}
enum IceTransportType {
TRANSPORT_RELAY = 0;
TRANSPORT_NOHOST = 1;
TRANSPORT_ALL = 2;
}
enum ContinualGatheringPolicy {
GATHER_ONCE = 0;
GATHER_CONTINUALLY = 1;
}
message IceServer {
repeated string urls = 1;
optional string username = 2;
optional string password = 3;
}
message RtcConfig {
optional IceTransportType ice_transport_type = 1;
optional ContinualGatheringPolicy continual_gathering_policy = 2;
repeated IceServer ice_servers = 3; // empty fallback to default
}
message RoomOptions {
optional bool auto_subscribe = 1;
optional bool adaptive_stream = 2;
optional bool dynacast = 3;
optional E2eeOptions e2ee = 4;
optional RtcConfig rtc_config = 5; // allow to setup a custom RtcConfiguration
optional uint32 join_retries = 6;
}
//
// Room
//
enum ConnectionQuality {
QUALITY_POOR = 0;
QUALITY_GOOD = 1;
QUALITY_EXCELLENT = 2;
QUALITY_LOST = 3;
}
enum ConnectionState {
CONN_DISCONNECTED = 0;
CONN_CONNECTED = 1;
CONN_RECONNECTING = 2;
}
enum DataPacketKind {
KIND_LOSSY = 0;
KIND_RELIABLE = 1;
}
enum DisconnectReason {
UNKNOWN_REASON = 0;
// the client initiated the disconnect
CLIENT_INITIATED = 1;
// another participant with the same identity has joined the room
DUPLICATE_IDENTITY = 2;
// the server instance is shutting down
SERVER_SHUTDOWN = 3;
// RoomService.RemoveParticipant was called
PARTICIPANT_REMOVED = 4;
// RoomService.DeleteRoom was called
ROOM_DELETED = 5;
// the client is attempting to resume a session, but server is not aware of it
STATE_MISMATCH = 6;
// client was unable to connect fully
JOIN_FAILURE = 7;
// Cloud-only, the server requested Participant to migrate the connection elsewhere
MIGRATION = 8;
// the signal websocket was closed unexpectedly
SIGNAL_CLOSE = 9;
// the room was closed, due to all Standard and Ingress participants having left
ROOM_CLOSED = 10;
}
message TranscriptionSegment {
required string id = 1;
required string text = 2;
required uint64 start_time = 3;
required uint64 end_time = 4;
required bool final = 5;
required string language = 6;
}
message BufferInfo {
required uint64 data_ptr = 1;
required uint64 data_len = 2;
}
message OwnedBuffer {
required FfiOwnedHandle handle = 1;
required BufferInfo data = 2;
}
message RoomEvent {
required uint64 room_handle = 1;
oneof message {
ParticipantConnected participant_connected = 2;
ParticipantDisconnected participant_disconnected = 3;
LocalTrackPublished local_track_published = 4;
LocalTrackUnpublished local_track_unpublished = 5;
LocalTrackSubscribed local_track_subscribed = 6;
TrackPublished track_published = 7;
TrackUnpublished track_unpublished = 8;
TrackSubscribed track_subscribed = 9;
TrackUnsubscribed track_unsubscribed = 10;
TrackSubscriptionFailed track_subscription_failed = 11;
TrackMuted track_muted = 12;
TrackUnmuted track_unmuted = 13;
ActiveSpeakersChanged active_speakers_changed = 14;
RoomMetadataChanged room_metadata_changed = 15;
RoomSidChanged room_sid_changed = 16;
ParticipantMetadataChanged participant_metadata_changed = 17;
ParticipantNameChanged participant_name_changed = 18;
ParticipantAttributesChanged participant_attributes_changed = 19;
ConnectionQualityChanged connection_quality_changed = 20;
ConnectionStateChanged connection_state_changed = 21;
// Connected connected = 21;
Disconnected disconnected = 22;
Reconnecting reconnecting = 23;
Reconnected reconnected = 24;
E2eeStateChanged e2ee_state_changed = 25;
RoomEOS eos = 26; // The stream of room events has ended
DataPacketReceived data_packet_received = 27;
TranscriptionReceived transcription_received = 28;
ChatMessageReceived chat_message = 29;
}
}
message RoomInfo {
optional string sid = 1;
required string name = 2;
required string metadata = 3;
}
message OwnedRoom {
required FfiOwnedHandle handle = 1;
required RoomInfo info = 2;
}
message ParticipantConnected { required OwnedParticipant info = 1; }
message ParticipantDisconnected {
required string participant_identity = 1;
}
message LocalTrackPublished {
// The TrackPublicationInfo comes from the PublishTrack response
// and the FfiClient musts wait for it before firing this event
required string track_sid = 1;
}
message LocalTrackUnpublished {
required string publication_sid = 1;
}
message LocalTrackSubscribed {
required string track_sid = 2;
}
message TrackPublished {
required string participant_identity = 1;
required OwnedTrackPublication publication = 2;
}
message TrackUnpublished {
required string participant_identity = 1;
required string publication_sid = 2;
}
// Publication isn't needed for subscription events on the FFI
// The FFI will retrieve the publication using the Track sid
message TrackSubscribed {
required string participant_identity = 1;
required OwnedTrack track = 2;
}
message TrackUnsubscribed {
// The FFI language can dispose/remove the VideoSink here
required string participant_identity = 1;
required string track_sid = 2;
}
message TrackSubscriptionFailed {
required string participant_identity = 1;
required string track_sid = 2;
required string error = 3;
}
message TrackMuted {
required string participant_identity = 1;
required string track_sid = 2;
}
message TrackUnmuted {
required string participant_identity = 1;
required string track_sid = 2;
}
message E2eeStateChanged {
required string participant_identity = 1; // Using sid instead of identity for ffi communication
required EncryptionState state = 2;
}
message ActiveSpeakersChanged { repeated string participant_identities = 1; }
message RoomMetadataChanged {
required string metadata = 1;
}
message RoomSidChanged {
required string sid = 1;
}
message ParticipantMetadataChanged {
required string participant_identity = 1;
required string metadata = 2;
}
message ParticipantAttributesChanged {
required string participant_identity = 1;
repeated AttributesEntry attributes = 2;
repeated AttributesEntry changed_attributes = 3;
}
message ParticipantNameChanged {
required string participant_identity = 1;
required string name = 2;
}
message ConnectionQualityChanged {
required string participant_identity = 1;
required ConnectionQuality quality = 2;
}
message UserPacket {
required OwnedBuffer data = 1;
optional string topic = 2;
}
message ChatMessage {
required string id = 1;
required int64 timestamp = 2;
required string message = 3;
optional int64 edit_timestamp = 4;
optional bool deleted = 5;
optional bool generated = 6;
}
message ChatMessageReceived {
required ChatMessage message = 1;
required string participant_identity = 2;
}
message SipDTMF {
required uint32 code = 1;
optional string digit = 2;
}
message DataPacketReceived {
required DataPacketKind kind = 1;
required string participant_identity = 2; // Can be empty if the data is sent a server SDK
oneof value {
UserPacket user = 4;
SipDTMF sip_dtmf = 5;
}
}
message TranscriptionReceived {
optional string participant_identity = 1;
optional string track_sid = 2;
repeated TranscriptionSegment segments = 3;
}
message ConnectionStateChanged { required ConnectionState state = 1; }
message Connected {}
message Disconnected {
required DisconnectReason reason = 1;
}
message Reconnecting {}
message Reconnected {}
message RoomEOS {}

81
src/protocols/rpc.proto Normal file
View File

@@ -0,0 +1,81 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
message RpcError {
required uint32 code = 1;
required string message = 2;
optional string data = 3;
}
// FFI Requests
message PerformRpcRequest {
required uint64 local_participant_handle = 1;
required string destination_identity = 2;
required string method = 3;
required string payload = 4;
optional uint32 response_timeout_ms = 5;
}
message RegisterRpcMethodRequest {
required uint64 local_participant_handle = 1;
required string method = 2;
}
message UnregisterRpcMethodRequest {
required uint64 local_participant_handle = 1;
required string method = 2;
}
message RpcMethodInvocationResponseRequest {
required uint64 local_participant_handle = 1;
required uint64 invocation_id = 2;
optional string payload = 3;
optional RpcError error = 4;
}
// FFI Responses
message PerformRpcResponse {
required uint64 async_id = 1;
}
message RegisterRpcMethodResponse {}
message UnregisterRpcMethodResponse {}
message RpcMethodInvocationResponseResponse {
optional string error = 1;
}
// FFI Callbacks
message PerformRpcCallback {
required uint64 async_id = 1;
optional string payload = 2;
optional RpcError error = 3;
}
// FFI Events
message RpcMethodInvocationEvent {
required uint64 local_participant_handle = 1;
required uint64 invocation_id = 2;
required string method = 3;
required string request_id = 4;
required string caller_identity = 5;
required string payload = 6;
required uint32 response_timeout_ms = 7;
}

449
src/protocols/stats.proto Normal file
View File

@@ -0,0 +1,449 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
enum DataChannelState {
DC_CONNECTING = 0;
DC_OPEN = 1;
DC_CLOSING = 2;
DC_CLOSED = 3;
}
enum QualityLimitationReason {
LIMITATION_NONE = 0;
LIMITATION_CPU = 1;
LIMITATION_BANDWIDTH = 2;
LIMITATION_OTHER = 3;
}
enum IceRole {
ICE_UNKNOWN = 0;
ICE_CONTROLLING = 1;
ICE_CONTROLLED = 2;
}
enum DtlsTransportState {
DTLS_TRANSPORT_NEW = 0;
DTLS_TRANSPORT_CONNECTING = 1;
DTLS_TRANSPORT_CONNECTED = 2;
DTLS_TRANSPORT_CLOSED = 3;
DTLS_TRANSPORT_FAILED = 4;
}
enum IceTransportState {
ICE_TRANSPORT_NEW = 0;
ICE_TRANSPORT_CHECKING = 1;
ICE_TRANSPORT_CONNECTED = 2;
ICE_TRANSPORT_COMPLETED = 3;
ICE_TRANSPORT_DISCONNECTED = 4;
ICE_TRANSPORT_FAILED = 5;
ICE_TRANSPORT_CLOSED = 6;
}
enum DtlsRole {
DTLS_CLIENT = 0;
DTLS_SERVER = 1;
DTLS_UNKNOWN = 2;
}
enum IceCandidatePairState {
PAIR_FROZEN = 0;
PAIR_WAITING = 1;
PAIR_IN_PROGRESS = 2;
PAIR_FAILED = 3;
PAIR_SUCCEEDED = 4;
}
enum IceCandidateType {
HOST = 0;
SRFLX = 1;
PRFLX = 2;
RELAY = 3;
}
enum IceServerTransportProtocol {
TRANSPORT_UDP = 0;
TRANSPORT_TCP = 1;
TRANSPORT_TLS = 2;
}
enum IceTcpCandidateType {
CANDIDATE_ACTIVE = 0;
CANDIDATE_PASSIVE = 1;
CANDIDATE_SO = 2;
}
message RtcStats {
message Codec {
required RtcStatsData rtc = 1;
required CodecStats codec = 2;
}
message InboundRtp {
required RtcStatsData rtc = 1;
required RtpStreamStats stream = 2;
required ReceivedRtpStreamStats received = 3;
required InboundRtpStreamStats inbound = 4;
}
message OutboundRtp {
required RtcStatsData rtc = 1;
required RtpStreamStats stream = 2;
required SentRtpStreamStats sent = 3;
required OutboundRtpStreamStats outbound = 4;
}
message RemoteInboundRtp {
required RtcStatsData rtc = 1;
required RtpStreamStats stream = 2;
required ReceivedRtpStreamStats received = 3;
required RemoteInboundRtpStreamStats remote_inbound = 4;
}
message RemoteOutboundRtp {
required RtcStatsData rtc = 1;
required RtpStreamStats stream = 2;
required SentRtpStreamStats sent = 3;
required RemoteOutboundRtpStreamStats remote_outbound = 4;
}
message MediaSource {
required RtcStatsData rtc = 1;
required MediaSourceStats source = 2;
required AudioSourceStats audio = 3;
required VideoSourceStats video = 4;
}
message MediaPlayout {
required RtcStatsData rtc = 1;
required AudioPlayoutStats audio_playout = 2;
}
message PeerConnection {
required RtcStatsData rtc = 1;
required PeerConnectionStats pc = 2;
}
message DataChannel {
required RtcStatsData rtc = 1;
required DataChannelStats dc = 2;
}
message Transport {
required RtcStatsData rtc = 1;
required TransportStats transport = 2;
}
message CandidatePair {
required RtcStatsData rtc = 1;
required CandidatePairStats candidate_pair = 2;
}
message LocalCandidate {
required RtcStatsData rtc = 1;
required IceCandidateStats candidate = 2;
}
message RemoteCandidate {
required RtcStatsData rtc = 1;
required IceCandidateStats candidate = 2;
}
message Certificate {
required RtcStatsData rtc = 1;
required CertificateStats certificate = 2;
}
message Track {
// Deprecated
}
oneof stats {
Codec codec = 3;
InboundRtp inbound_rtp = 4;
OutboundRtp outbound_rtp = 5;
RemoteInboundRtp remote_inbound_rtp = 6;
RemoteOutboundRtp remote_outbound_rtp = 7;
MediaSource media_source = 8;
MediaPlayout media_playout = 9;
PeerConnection peer_connection = 10;
DataChannel data_channel = 11;
Transport transport = 12;
CandidatePair candidate_pair = 13;
LocalCandidate local_candidate = 14;
RemoteCandidate remote_candidate = 15;
Certificate certificate = 16;
Track track = 17;
}
}
message RtcStatsData {
required string id = 1;
required int64 timestamp = 2;
}
message CodecStats {
required uint32 payload_type = 1;
required string transport_id = 2;
required string mime_type = 3;
required uint32 clock_rate = 4;
required uint32 channels = 5;
required string sdp_fmtp_line = 6;
}
message RtpStreamStats {
required uint32 ssrc = 1;
required string kind = 2;
required string transport_id = 3;
required string codec_id = 4;
}
message ReceivedRtpStreamStats {
required uint64 packets_received = 1;
required int64 packets_lost = 2;
required double jitter = 3;
}
message InboundRtpStreamStats {
required string track_identifier = 1;
required string mid = 2;
required string remote_id = 3;
required uint32 frames_decoded = 4;
required uint32 key_frames_decoded = 5;
required uint32 frames_rendered = 6;
required uint32 frames_dropped = 7;
required uint32 frame_width = 8;
required uint32 frame_height = 9;
required double frames_per_second = 10;
required uint64 qp_sum = 11;
required double total_decode_time = 12;
required double total_inter_frame_delay = 13;
required double total_squared_inter_frame_delay = 14;
required uint32 pause_count = 15;
required double total_pause_duration = 16;
required uint32 freeze_count = 17;
required double total_freeze_duration = 18;
required double last_packet_received_timestamp = 19;
required uint64 header_bytes_received = 20;
required uint64 packets_discarded = 21;
required uint64 fec_bytes_received = 22;
required uint64 fec_packets_received = 23;
required uint64 fec_packets_discarded = 24;
required uint64 bytes_received = 25;
required uint32 nack_count = 26;
required uint32 fir_count = 27;
required uint32 pli_count = 28;
required double total_processing_delay = 29;
required double estimated_playout_timestamp = 30;
required double jitter_buffer_delay = 31;
required double jitter_buffer_target_delay = 32;
required uint64 jitter_buffer_emitted_count = 33;
required double jitter_buffer_minimum_delay = 34;
required uint64 total_samples_received = 35;
required uint64 concealed_samples = 36;
required uint64 silent_concealed_samples = 37;
required uint64 concealment_events = 38;
required uint64 inserted_samples_for_deceleration = 39;
required uint64 removed_samples_for_acceleration = 40;
required double audio_level = 41;
required double total_audio_energy = 42;
required double total_samples_duration = 43;
required uint64 frames_received = 44;
required string decoder_implementation = 45;
required string playout_id = 46;
required bool power_efficient_decoder = 47;
required uint64 frames_assembled_from_multiple_packets = 48;
required double total_assembly_time = 49;
required uint64 retransmitted_packets_received = 50;
required uint64 retransmitted_bytes_received = 51;
required uint32 rtx_ssrc = 52;
required uint32 fec_ssrc = 53;
}
message SentRtpStreamStats {
required uint64 packets_sent = 1;
required uint64 bytes_sent = 2;
}
message OutboundRtpStreamStats {
required string mid = 1;
required string media_source_id = 2;
required string remote_id = 3;
required string rid = 4;
required uint64 header_bytes_sent = 5;
required uint64 retransmitted_packets_sent = 6;
required uint64 retransmitted_bytes_sent = 7;
required uint32 rtx_ssrc = 8;
required double target_bitrate = 9;
required uint64 total_encoded_bytes_target = 10;
required uint32 frame_width = 11;
required uint32 frame_height = 12;
required double frames_per_second = 13;
required uint32 frames_sent = 14;
required uint32 huge_frames_sent = 15;
required uint32 frames_encoded = 16;
required uint32 key_frames_encoded = 17;
required uint64 qp_sum = 18;
required double total_encode_time = 19;
required double total_packet_send_delay = 20;
required QualityLimitationReason quality_limitation_reason = 21;
map<string, double> quality_limitation_durations = 22;
required uint32 quality_limitation_resolution_changes = 23;
required uint32 nack_count = 24;
required uint32 fir_count = 25;
required uint32 pli_count = 26;
required string encoder_implementation = 27;
required bool power_efficient_encoder = 28;
required bool active = 29;
required string scalability_mode = 30;
}
message RemoteInboundRtpStreamStats {
required string local_id = 1;
required double round_trip_time = 2;
required double total_round_trip_time = 3;
required double fraction_lost = 4;
required uint64 round_trip_time_measurements = 5;
}
message RemoteOutboundRtpStreamStats {
required string local_id = 1;
required double remote_timestamp = 2;
required uint64 reports_sent = 3;
required double round_trip_time = 4;
required double total_round_trip_time = 5;
required uint64 round_trip_time_measurements = 6;
}
message MediaSourceStats {
required string track_identifier = 1;
required string kind = 2;
}
message AudioSourceStats {
required double audio_level = 1;
required double total_audio_energy = 2;
required double total_samples_duration = 3;
required double echo_return_loss = 4;
required double echo_return_loss_enhancement = 5;
required double dropped_samples_duration = 6;
required uint32 dropped_samples_events = 7;
required double total_capture_delay = 8;
required uint64 total_samples_captured = 9;
}
message VideoSourceStats {
required uint32 width = 1;
required uint32 height = 2;
required uint32 frames = 3;
required double frames_per_second = 4;
}
message AudioPlayoutStats {
required string kind = 1;
required double synthesized_samples_duration = 2;
required uint32 synthesized_samples_events = 3;
required double total_samples_duration = 4;
required double total_playout_delay = 5;
required uint64 total_samples_count = 6;
}
message PeerConnectionStats {
required uint32 data_channels_opened = 1;
required uint32 data_channels_closed = 2;
}
message DataChannelStats {
required string label = 1;
required string protocol = 2;
required int32 data_channel_identifier = 3;
optional DataChannelState state = 4;
required uint32 messages_sent = 5;
required uint64 bytes_sent = 6;
required uint32 messages_received = 7;
required uint64 bytes_received = 8;
}
message TransportStats {
required uint64 packets_sent = 1;
required uint64 packets_received = 2;
required uint64 bytes_sent = 3;
required uint64 bytes_received = 4;
required IceRole ice_role = 5;
required string ice_local_username_fragment = 6;
optional DtlsTransportState dtls_state = 7;
optional IceTransportState ice_state = 8;
required string selected_candidate_pair_id = 9;
required string local_certificate_id = 10;
required string remote_certificate_id = 11;
required string tls_version = 12;
required string dtls_cipher = 13;
required DtlsRole dtls_role = 14;
required string srtp_cipher = 15;
required uint32 selected_candidate_pair_changes = 16;
}
message CandidatePairStats {
required string transport_id = 1;
required string local_candidate_id = 2;
required string remote_candidate_id = 3;
optional IceCandidatePairState state = 4;
required bool nominated = 5;
required uint64 packets_sent = 6;
required uint64 packets_received = 7;
required uint64 bytes_sent = 8;
required uint64 bytes_received = 9;
required double last_packet_sent_timestamp = 10;
required double last_packet_received_timestamp = 11;
required double total_round_trip_time = 12;
required double current_round_trip_time = 13;
required double available_outgoing_bitrate = 14;
required double available_incoming_bitrate = 15;
required uint64 requests_received = 16;
required uint64 requests_sent = 17;
required uint64 responses_received = 18;
required uint64 responses_sent = 19;
required uint64 consent_requests_sent = 20;
required uint32 packets_discarded_on_send = 21;
required uint64 bytes_discarded_on_send = 22;
}
message IceCandidateStats {
required string transport_id = 1;
required string address = 2;
required int32 port = 3;
required string protocol = 4;
optional IceCandidateType candidate_type = 5;
required int32 priority = 6;
required string url = 7;
optional IceServerTransportProtocol relay_protocol = 8;
required string foundation = 9;
required string related_address = 10;
required int32 related_port = 11;
required string username_fragment = 12;
optional IceTcpCandidateType tcp_type = 13;
}
message CertificateStats {
required string fingerprint = 1;
required string fingerprint_algorithm = 2;
required string base64_certificate = 3;
required string issuer_certificate_id = 4;
}

131
src/protocols/track.proto Normal file
View File

@@ -0,0 +1,131 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
import "e2ee.proto";
import "handle.proto";
import "stats.proto";
// Create a new VideoTrack from a VideoSource
message CreateVideoTrackRequest {
required string name = 1;
required uint64 source_handle = 2;
}
message CreateVideoTrackResponse {
required OwnedTrack track = 1;
}
// Create a new AudioTrack from a AudioSource
message CreateAudioTrackRequest {
required string name = 1;
required uint64 source_handle = 2;
}
message CreateAudioTrackResponse {
required OwnedTrack track = 1;
}
message GetStatsRequest {
required uint64 track_handle = 1;
}
message GetStatsResponse {
required uint64 async_id = 1;
}
message GetStatsCallback {
required uint64 async_id = 1;
optional string error = 2;
repeated RtcStats stats = 3;
}
//
// Track
//
message TrackEvent {}
enum TrackKind {
KIND_UNKNOWN = 0;
KIND_AUDIO = 1;
KIND_VIDEO = 2;
}
enum TrackSource {
SOURCE_UNKNOWN = 0;
SOURCE_CAMERA = 1;
SOURCE_MICROPHONE = 2;
SOURCE_SCREENSHARE = 3;
SOURCE_SCREENSHARE_AUDIO = 4;
}
enum StreamState {
STATE_UNKNOWN = 0;
STATE_ACTIVE = 1;
STATE_PAUSED = 2;
}
message TrackPublicationInfo {
required string sid = 1;
required string name = 2;
required TrackKind kind = 3;
required TrackSource source = 4;
required bool simulcasted = 5;
required uint32 width = 6;
required uint32 height = 7;
required string mime_type = 8;
required bool muted = 9;
required bool remote = 10;
required EncryptionType encryption_type = 11;
}
message OwnedTrackPublication {
required FfiOwnedHandle handle = 1;
required TrackPublicationInfo info = 2;
}
message TrackInfo {
required string sid = 1;
required string name = 2;
required TrackKind kind = 3;
required StreamState stream_state = 4;
required bool muted = 5;
required bool remote = 6;
}
message OwnedTrack {
required FfiOwnedHandle handle = 1;
required TrackInfo info = 2;
}
// Mute/UnMute a track
message LocalTrackMuteRequest {
required uint64 track_handle = 1;
required bool mute = 2;
}
message LocalTrackMuteResponse {
required bool muted = 1;
}
// Enable/Disable a remote track
message EnableRemoteTrackRequest {
required uint64 track_handle = 1;
required bool enabled = 2;
}
message EnableRemoteTrackResponse {
required bool enabled = 1;
}

View File

@@ -0,0 +1,189 @@
// Copyright 2023 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package livekit.proto;
option csharp_namespace = "LiveKit.Proto";
import "handle.proto";
import "track.proto";
// Create a new VideoStream
// VideoStream is used to receive video frames from a track
message NewVideoStreamRequest {
required uint64 track_handle = 1;
required VideoStreamType type = 2;
// Get the frame on a specific format
optional VideoBufferType format = 3;
optional bool normalize_stride = 4; // if true, stride will be set to width/chroma_width
}
message NewVideoStreamResponse { required OwnedVideoStream stream = 1; }
// Request a video stream from a participant
message VideoStreamFromParticipantRequest {
required uint64 participant_handle = 1;
required VideoStreamType type = 2;
required TrackSource track_source = 3;
optional VideoBufferType format = 4;
optional bool normalize_stride = 5;
}
message VideoStreamFromParticipantResponse { required OwnedVideoStream stream = 1;}
// Create a new VideoSource
// VideoSource is used to send video frame to a track
message NewVideoSourceRequest {
required VideoSourceType type = 1;
// Used to determine which encodings to use + simulcast layers
// Most of the time it corresponds to the source resolution
required VideoSourceResolution resolution = 2;
}
message NewVideoSourceResponse { required OwnedVideoSource source = 1; }
// Push a frame to a VideoSource
message CaptureVideoFrameRequest {
required uint64 source_handle = 1;
required VideoBufferInfo buffer = 2;
required int64 timestamp_us = 3; // In microseconds
required VideoRotation rotation = 4;
}
message CaptureVideoFrameResponse {}
message VideoConvertRequest {
optional bool flip_y = 1;
required VideoBufferInfo buffer = 2;
required VideoBufferType dst_type = 3;
}
message VideoConvertResponse {
oneof message {
string error = 1;
OwnedVideoBuffer buffer = 2;
}
}
//
// VideoFrame buffers
//
message VideoResolution {
required uint32 width = 1;
required uint32 height = 2;
required double frame_rate = 3;
}
enum VideoCodec {
VP8 = 0;
H264 = 1;
AV1 = 2;
VP9 = 3;
}
enum VideoRotation {
VIDEO_ROTATION_0 = 0;
VIDEO_ROTATION_90 = 1;
VIDEO_ROTATION_180 = 2;
VIDEO_ROTATION_270 = 3;
}
enum VideoBufferType {
RGBA = 0;
ABGR = 1;
ARGB = 2;
BGRA = 3;
RGB24 = 4;
I420 = 5;
I420A = 6;
I422 = 7;
I444 = 8;
I010 = 9;
NV12 = 10;
}
message VideoBufferInfo {
message ComponentInfo {
required uint64 data_ptr = 1;
required uint32 stride = 2;
required uint32 size = 3;
}
required VideoBufferType type = 1;
required uint32 width = 2;
required uint32 height = 3;
required uint64 data_ptr = 4;
required uint32 stride = 6; // only for packed formats
repeated ComponentInfo components = 7;
}
message OwnedVideoBuffer {
required FfiOwnedHandle handle = 1;
required VideoBufferInfo info = 2;
}
//
// VideoStream
//
enum VideoStreamType {
VIDEO_STREAM_NATIVE = 0;
VIDEO_STREAM_WEBGL = 1;
VIDEO_STREAM_HTML = 2;
}
message VideoStreamInfo {
required VideoStreamType type = 1;
}
message OwnedVideoStream {
required FfiOwnedHandle handle = 1;
required VideoStreamInfo info = 2;
}
message VideoStreamEvent {
required uint64 stream_handle = 1;
oneof message {
VideoFrameReceived frame_received = 2;
VideoStreamEOS eos = 3;
}
}
message VideoFrameReceived {
required OwnedVideoBuffer buffer = 1;
required int64 timestamp_us = 2; // In microseconds
required VideoRotation rotation = 3;
}
message VideoStreamEOS {}
//
// VideoSource
//
message VideoSourceResolution {
required uint32 width = 1;
required uint32 height = 2;
}
enum VideoSourceType {
VIDEO_SOURCE_NATIVE = 0;
}
message VideoSourceInfo {
required VideoSourceType type = 1;
}
message OwnedVideoSource {
required FfiOwnedHandle handle = 1;
required VideoSourceInfo info = 2;
}

View File

@@ -101,7 +101,11 @@ KirigamiComponents.ConvergentContextMenu {
}
enabled: Controller.csSupported
}
// QQC2.MenuItem {
// text: i18n("Show livekit logs")
// icon.name: "dialog-xml-editor"
// onTriggered: livekitLogViewerComponent.createObject(applicationWindow().overlay)
// }
QQC2.Action {
text: i18n("Logout")
icon.name: "im-kick-user"
@@ -111,4 +115,9 @@ KirigamiComponents.ConvergentContextMenu {
readonly property Component confirmLogoutDialogComponent: ConfirmLogoutDialog {
connection: root.connection
}
// Component {
// id: livekitLogViewerComponent
// LivekitLogViewer {}
// }
}

65
src/qml/CallPage.qml Normal file
View File

@@ -0,0 +1,65 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtMultimedia
import org.kde.kirigami as Kirigami
import org.kde.neochat
Kirigami.Page {
id: callPage
title: i18nc("@title", "Call")
RowLayout {
anchors.fill: parent
VideoOutput {
id: viewFinder
Layout.fillWidth: parent.width / 2
Layout.preferredHeight: parent.height
Label {
text: "You"
}
}
VideoOutput {
id: otherViewFinder
Layout.fillWidth: parent.width / 2
Layout.preferredHeight: parent.height
Label {
text: "Them"
}
}
}
LivekitVideoSink {
videoSink: otherViewFinder.videoSink
}
Component.onCompleted: camera.start()
Connections {
target: CallController
function onConnected(): void {
CallController.setCameraVideoSink(viewFinder.videoSink)
CallController.toggleCamera()
}
}
CaptureSession {
camera: Camera {
id: camera
}
imageCapture: ImageCapture {
id: imageCapture
}
videoOutput: viewFinder
}
}

View File

@@ -0,0 +1,45 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
import QtQuick
import QtQuick.Controls as QQC2
import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.components as Components
import org.kde.neochat
Kirigami.Dialog {
id: root
title: i18nc("@title", "Incoming call")
width: Kirigami.Units.gridUnit * 16
height: Kirigami.Units.gridUnit * 8
standardButtons: QQC2.Dialog.NoButton
Connections {
target: MediaManager
function onCloseIncomingCallDialog() {
root.close()
}
}
contentItem: ColumnLayout {
Components.DoubleFloatingButton {
anchors.centerIn: parent
leadingAction: Kirigami.Action {
icon.name: "call-start"
text: i18nc("@action:button", "Accept Call")
tooltip: ""//text
}
trailingAction: Kirigami.Action {
icon.name: "call-stop"
text: i18nc("@action:button", "Decline Call")
tooltip: ""//text
}
}
}
}

View File

@@ -0,0 +1,36 @@
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
import QtQuick
import QtQuick.Controls as QQC2
import org.kde.kirigami as Kirigami
import org.kde.neochat
Kirigami.ApplicationWindow {
id: root
title: i18nc("@title", "Livekit logs")
pageStack.initialPage: Kirigami.ScrollablePage {
title: i18nc("@title", "Livekit logs")
TableView {
id: messageList
width: root.width
model: LivekitLogModel
alternatingRows: true
delegate: QQC2.ItemDelegate {
id: messageDelegate
required property string message
width: parent.width
contentItem: QQC2.Label {
text: messageDelegate.message
wrapMode: QQC2.Label.Wrap
}
}
}
}
}

View File

@@ -4,6 +4,7 @@
import QtQuick
import QtQuick.Controls as QQC2
import QtMultimedia
import org.kde.kirigami as Kirigami
import org.kde.config as KConfig
@@ -30,6 +31,18 @@ Kirigami.ApplicationWindow {
}
}
Connections {
target: CallController
function onCallStarted() {
root.pageStack.pushDialogLayer(callPageComponent)
}
}
Component {
id: callPageComponent
CallPage {}
}
minimumWidth: Kirigami.Units.gridUnit * 20
minimumHeight: Kirigami.Units.gridUnit * 15
@@ -197,6 +210,7 @@ Kirigami.ApplicationWindow {
visible = true;
}
}
Connections {
target: NeoChatConfig
function onBlurChanged() {
@@ -347,4 +361,15 @@ Kirigami.ApplicationWindow {
initialized = true;
}
Connections {
target: MediaManager
function onShowIncomingCallDialog(): void {
incomingCallDialog.createObject(applicationWindow().overlay).open();
}
}
Component {
id: incomingCallDialog
IncomingCallDialog {}
}
}

View File

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

View File

@@ -154,11 +154,11 @@ void ThreePIdAddHelper::finalizeNewIdAdd(const QString &password)
authData.authInfo["identifier"_L1] = QJsonObject{{"type"_L1, "m.id.user"_L1}, {"user"_L1, m_connection->userId()}};
const auto innerJob = m_connection->callApi<Add3PIDJob>(m_newIdSecret, m_newIdSid, authData);
connect(innerJob, &Quotient::BaseJob::success, this, [this]() {
m_connection->threePIdModel()->refreshModel();
m_newIdSecret.clear();
m_newIdSid.clear();
m_newIdStatus = Success;
Q_EMIT newIdStatusChanged();
Q_EMIT threePIdAdded();
});
connect(innerJob, &Quotient::BaseJob::failure, this, [innerJob, this]() {
if (innerJob->jsonData()["errcode"_L1] == "M_FORBIDDEN"_L1) {
@@ -180,7 +180,7 @@ void ThreePIdAddHelper::remove3PId(const QString &threePId, const QString &type)
{
const auto job = m_connection->callApi<Quotient::Delete3pidFromAccountJob>(type, threePId);
connect(job, &Quotient::BaseJob::success, this, [this]() {
m_connection->threePIdModel()->refreshModel();
Q_EMIT threePIdRemoved();
});
}
@@ -188,7 +188,7 @@ void ThreePIdAddHelper::unbind3PId(const QString &threePId, const QString &type)
{
const auto job = m_connection->callApi<Quotient::Unbind3pidFromAccountJob>(type, threePId);
connect(job, &Quotient::BaseJob::success, this, [this]() {
m_connection->threePIdModel()->refreshModel();
Q_EMIT threePIdUnbound();
});
}

View File

@@ -121,6 +121,21 @@ Q_SIGNALS:
void newEmailSessionStartedChanged();
void newIdStatusChanged();
/**
* @brief A 3PID has been added.
*/
void threePIdAdded();
/**
* @brief A 3PID has been removed.
*/
void threePIdRemoved();
/**
* @brief A 3PID has been unbound.
*/
void threePIdUnbound();
private:
QPointer<NeoChatConnection> m_connection;
QString m_medium = QString();

View File

@@ -6,6 +6,7 @@
#include <QNetworkReply>
#include <Quotient/converters.h>
#include <Quotient/csapi/administrative_contact.h>
#include <Quotient/csapi/definitions/auth_data.h>
#include <Quotient/csapi/definitions/request_msisdn_validation.h>
#include <Quotient/csapi/openid.h>
@@ -193,7 +194,7 @@ void ThreePIdBindHelper::finalizeNewIdBind()
connect(job, &Quotient::BaseJob::success, this, [this] {
m_bindStatus = Success;
Q_EMIT bindStatusChanged();
m_connection->threePIdModel()->refreshModel();
Q_EMIT threePIdBound();
});
connect(job, &Quotient::BaseJob::failure, this, [this, job]() {
if (job->jsonData()["errcode"_L1] == "M_SESSION_NOT_VALIDATED"_L1) {
@@ -211,7 +212,7 @@ void ThreePIdBindHelper::unbind3PId(const QString &threePId, const QString &type
const auto job = m_connection->callApi<Quotient::Unbind3pidFromAccountJob>(type, threePId);
connect(job, &Quotient::BaseJob::success, this, [this]() {
cancel();
m_connection->threePIdModel()->refreshModel();
Q_EMIT threePIdUnbound();
});
}

View File

@@ -127,6 +127,16 @@ Q_SIGNALS:
void newEmailSessionStartedChanged();
void bindStatusChanged();
/**
* @brief A 3PID has been unbound.
*/
void threePIdBound();
/**
* @brief A 3PID has been unbound.
*/
void threePIdUnbound();
private:
QPointer<NeoChatConnection> m_connection;
QString m_medium = QString();

View File

@@ -18,11 +18,6 @@ import org.kde.neochat
ColumnLayout {
id: root
/**
* @brief The NeoChatRoom the delegate is being displayed in.
*/
required property NeoChatRoom room
/**
* @brief The matrix ID of the message event.
*/
@@ -56,11 +51,6 @@ ColumnLayout {
audio.play();
}
/**
* @brief The maximum width that the bubble's content can be.
*/
property real maxContentWidth: -1
MediaPlayer {
id: audio
onErrorOccurred: (error, errorString) => console.warn("Audio playback error:" + error + errorString)
@@ -75,7 +65,7 @@ ColumnLayout {
PropertyChanges {
target: playButton
icon.name: "media-playback-start"
onClicked: root.room.downloadFile(root.eventId)
onClicked: Message.room.downloadFile(root.eventId)
}
},
State {
@@ -89,7 +79,7 @@ ColumnLayout {
target: playButton
icon.name: "media-playback-stop"
onClicked: {
root.room.cancelFileTransfer(root.eventId);
Message.room.cancelFileTransfer(root.eventId);
}
}
},
@@ -159,7 +149,7 @@ ColumnLayout {
}
QQC2.Label {
visible: root.maxContentWidth > Kirigami.Units.gridUnit * 12
visible: root.Message.maxContentWidth > Kirigami.Units.gridUnit * 12
text: Format.formatDuration(audio.position) + "/" + Format.formatDuration(audio.duration)
}
@@ -167,7 +157,7 @@ ColumnLayout {
QQC2.Label {
Layout.alignment: Qt.AlignRight
Layout.rightMargin: Kirigami.Units.smallSpacing
visible: audio.hasAudio && root.maxContentWidth < Kirigami.Units.gridUnit * 12
visible: audio.hasAudio && root.Message.maxContentWidth < Kirigami.Units.gridUnit * 12
text: Format.formatDuration(audio.position) + "/" + Format.formatDuration(audio.duration)
}

View File

@@ -31,13 +31,8 @@ RowLayout {
*/
required property string timeString
/**
* @brief The maximum width that the bubble's content can be.
*/
property real maxContentWidth: -1
Layout.fillWidth: true
Layout.maximumWidth: root.maxContentWidth
Layout.maximumWidth: Message.maxContentWidth
implicitHeight: Math.max(nameButton.implicitHeight, timeLabel.implicitHeight)

View File

@@ -15,31 +15,6 @@ import org.kde.neochat
DelegateChooser {
id: root
/**
* @brief The NeoChatRoom the delegate is being displayed in.
*/
required property NeoChatRoom room
/**
* @brief The index of the delegate in the model.
*/
required property var index
/**
* @brief The timeline ListView this component is being used in.
*/
required property ListView timeline
/**
* @brief The maximum width that the bubble's content can be.
*/
property real maxContentWidth: -1
/**
* @brief The reply has been clicked.
*/
signal replyClicked(string eventID)
/**
* @brief The user selected text has changed.
*/
@@ -66,15 +41,12 @@ DelegateChooser {
DelegateChoice {
roleValue: MessageComponentType.Author
delegate: AuthorComponent {
maxContentWidth: root.maxContentWidth
}
delegate: AuthorComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Text
delegate: TextComponent {
maxContentWidth: root.maxContentWidth
onSelectedTextChanged: root.selectedTextChanged(selectedText)
onHoveredLinkChanged: root.hoveredLinkChanged(hoveredLink)
onShowMessageMenu: root.showMessageMenu()
@@ -83,28 +55,17 @@ DelegateChooser {
DelegateChoice {
roleValue: MessageComponentType.Image
delegate: ImageComponent {
room: root.room
index: root.index
timeline: root.timeline
maxContentWidth: root.maxContentWidth
}
delegate: ImageComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Video
delegate: VideoComponent {
room: root.room
index: root.index
timeline: root.timeline
maxContentWidth: root.maxContentWidth
}
delegate: VideoComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Code
delegate: CodeComponent {
maxContentWidth: root.maxContentWidth
onSelectedTextChanged: selectedText => {
root.selectedTextChanged(selectedText);
}
@@ -115,7 +76,6 @@ DelegateChooser {
DelegateChoice {
roleValue: MessageComponentType.Quote
delegate: QuoteComponent {
maxContentWidth: root.maxContentWidth
onSelectedTextChanged: selectedText => {
root.selectedTextChanged(selectedText);
}
@@ -125,86 +85,57 @@ DelegateChooser {
DelegateChoice {
roleValue: MessageComponentType.Audio
delegate: AudioComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: AudioComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.File
delegate: FileComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: FileComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Itinerary
delegate: ItineraryComponent {
maxContentWidth: root.maxContentWidth
}
delegate: ItineraryComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Pdf
delegate: PdfPreviewComponent {
maxContentWidth: root.maxContentWidth
}
delegate: PdfPreviewComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Poll
delegate: PollComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: PollComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Location
delegate: LocationComponent {
maxContentWidth: root.maxContentWidth
}
delegate: LocationComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.LiveLocation
delegate: LiveLocationComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: LiveLocationComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Encrypted
delegate: EncryptedComponent {
maxContentWidth: root.maxContentWidth
}
delegate: EncryptedComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Reply
delegate: ReplyComponent {
maxContentWidth: root.maxContentWidth
onReplyClicked: eventId => {
root.replyClicked(eventId);
}
}
delegate: ReplyComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Reaction
delegate: ReactionComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: ReactionComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.LinkPreview
delegate: LinkPreviewComponent {
maxContentWidth: root.maxContentWidth
onRemove: index => root.removeLinkPreview(index)
}
}
@@ -213,31 +144,23 @@ DelegateChooser {
roleValue: MessageComponentType.LinkPreviewLoad
delegate: LinkPreviewLoadComponent {
type: LinkPreviewLoadComponent.LinkPreview
maxContentWidth: root.maxContentWidth
onRemove: index => root.removeLinkPreview(index)
}
}
DelegateChoice {
roleValue: MessageComponentType.ChatBar
delegate: ChatBarComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: ChatBarComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.ReplyButton
delegate: ReplyButtonComponent {
room: root.room
maxContentWidth: root.maxContentWidth
}
delegate: ReplyButtonComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.FetchButton
delegate: FetchButtonComponent {
maxContentWidth: root.maxContentWidth
onFetchMoreEvents: root.fetchMoreEvents()
}
}
@@ -252,16 +175,14 @@ DelegateChooser {
DelegateChoice {
roleValue: MessageComponentType.Loading
delegate: LoadComponent {
maxContentWidth: root.maxContentWidth
}
delegate: LoadComponent {}
}
DelegateChoice {
roleValue: MessageComponentType.Separator
delegate: Kirigami.Separator {
Layout.fillWidth: true
Layout.maximumWidth: root.maxContentWidth
Layout.maximumWidth: Message.maxContentWidth
}
}

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