Compare commits
35 Commits
work/calls
...
work/kloec
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
238e31fe23 | ||
|
|
99aeba2882 | ||
|
|
a65724ebc7 | ||
|
|
d5ab724edb | ||
|
|
67ff7e0842 | ||
|
|
9be04c1272 | ||
|
|
6f5d88cf63 | ||
|
|
1103e80191 | ||
|
|
a5320397c2 | ||
|
|
53719b971d | ||
|
|
64a1316f9b | ||
|
|
a3b8168744 | ||
|
|
c06e69931a | ||
|
|
30f8573dfc | ||
|
|
7f067b698e | ||
|
|
b56ebdf149 | ||
|
|
a02dd4ab87 | ||
|
|
898f0c962a | ||
|
|
5b4ae764cf | ||
|
|
d14db326bb | ||
|
|
5c51e0d0fc | ||
|
|
f78b4af692 | ||
|
|
bd5ed0f46c | ||
|
|
529cfa8f7d | ||
|
|
5552cd60f6 | ||
|
|
c51a1f4851 | ||
|
|
a27f4765e4 | ||
|
|
402f99923c | ||
|
|
2afda78912 | ||
|
|
25f9c7e125 | ||
|
|
05082cb2bb | ||
|
|
59495a1452 | ||
|
|
d10460c45b | ||
|
|
b968c85de2 | ||
|
|
13efc08b07 |
@@ -145,14 +145,6 @@ if(ANDROID)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle)
|
||||
endif()
|
||||
|
||||
include(FindPkgConfig)
|
||||
pkg_check_modules(GSTREAMER IMPORTED_TARGET gstreamer-sdp-1.0>1.18 gstreamer-webrtc-1.0>=1.18)
|
||||
if (TARGET PkgConfig::GSTREAMER)
|
||||
add_feature_info(voip ON "GStreamer found. Call support is enabled.")
|
||||
else()
|
||||
add_feature_info(voip OFF "GStreamer not found. Call support is disabled.")
|
||||
endif()
|
||||
|
||||
ki18n_install(po)
|
||||
|
||||
install(FILES org.kde.neochat.desktop DESTINATION ${KDE_INSTALL_APPDIR})
|
||||
|
||||
BIN
icons/300-apps-neochat.png
Normal file
BIN
icons/300-apps-neochat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
icons/windows/promoimage-1920x1080.png
Normal file
BIN
icons/windows/promoimage-1920x1080.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
BIN
icons/windows/storelogo-1080x1080.png
Normal file
BIN
icons/windows/storelogo-1080x1080.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
BIN
icons/windows/storelogo-720x1080.png
Normal file
BIN
icons/windows/storelogo-720x1080.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
@@ -89,6 +89,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat és un client de Matrix, el protocol descentralitzat de comunicacions de missatgeria instantània. Permet enviar missatges de text, fitxers de vídeo i d'àudio a la família, col·legues i amics. Utilitza els Frameworks de KDE i, sobretot, Kirigami per a proporcionar una experiència convergent a través de diverses plataformes.</p>
|
||||
<p xml:lang="en-GB">NeoChat is a client for Matrix, the decentralised communication protocol for instant messaging. It allows you to send text messages, videos and audio files to your family, colleagues and friends. It uses KDE frameworks and most notably Kirigami to provide a convergent experience across multiple platforms.</p>
|
||||
<p xml:lang="es">NeoChat es un cliente para Matrix, el protocolo de comunicaciones descentralizado para mensajería instantánea. Le permite enviar mensajes de texto, vídeos y archivos de sonido a su familia, compañeros de trabajo y amigos. Usa la infraestructura de KDE y, en particular, Kirigami para proporcionar una experiencia convergente en muchas plataformas.</p>
|
||||
<p xml:lang="fi">NeoChat on asiakassovellus Matrixille, hajautetulle pikaviestinyhteyskäytännölle. Sillä voi lähettää teksti-, video- ja ääniviestejä perheelle, tutuille ja ystäville. Se käyttää KDE-kehystä ja erityisesti Kirigamia tuottaakseen mukautuvan monialustaisen käyttökokemuksen.</p>
|
||||
<p xml:lang="fr">NeoChat est un client pour le protocole Matrix, un protocole décentralisé de communications pour messagerie instantané. Il vous permet d'envoyer des messages de texte, des vidéos et des fichiers audio à votre famille, vos collègues et vos amis. Il utilise les environnements de développement et plus précisément Kirigami pour fournir une expérience convergente sur plusieurs plate-formes. </p>
|
||||
<p xml:lang="gl">NeoChat é un cliente para Matrix, o protocolo de comunicación descentralizada para mensaxería instantánea. Podes enviar mensaxes de texto, vídeos e ficheiros de son á túa familia, colegas e amizades. Usas infraestruturas de KDE e principalmente Kirigami para proporcionar unha experiencia de uso converxente para varias plataformas.</p>
|
||||
<p xml:lang="ia">NeoChat es un cliente per Matrix, le protocollo de communication decentralisate per messager instantanee. Illo te permitte inviar messager de texto, files de video e audio a tu familia, collegas e amicos usante. Illo usa KDE frameworks e super toto Kirigamii forni un experientia convergente trans platteforme multiple.</p>
|
||||
@@ -107,6 +108,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<p xml:lang="ca-valencia">NeoChat pretén ser una aplicació amb totes les característiques per a l'especificació de Matrix. Com a tal, s'ha implementat tota l'especificació actual estable amb les notables excepcions de VoIP, fils i alguns aspectes de l'encriptació d'extrem a extrem. Hi ha algunes altres omissions més xicotetes a causa del fet que l'especificació de Matrix està evolucionant constantment, però l'objectiu seguix sent proporcionar suport eventual per a tota l'especificació.</p>
|
||||
<p xml:lang="en-GB">NeoChat aims to be a fully featured application for the Matrix specification. As such everything in the current stable specification with the notable exceptions of VoIP, threads and some aspects of End-to-End Encryption are supported. There are a few other smaller omissions due to the fact that the Matrix spec is constantly evolving but the aim remains to provide eventual support for the entire spec.</p>
|
||||
<p xml:lang="es">NeoChat pretende ser una aplicación con todas las funciones para la especificación de Matrix. Como tal, admite todo en la especificación estable actual, con las notables excepciones de VoIP, subprocesos y algunas funciones de cifrado de extremo a extremo. Existen algunas omisiones menos importantes debido al hecho de que la especificación de Matrix está en constante evolución, pero el objetivo sigue siendo brindar compatibilidad final con toda la especificación.</p>
|
||||
<p xml:lang="fi">NeoChat pyrkii olemaan Matrix-määritelmän täysominaisuuksinen sovellus, joten se tukee kaikkea nykyisessä vakaassa määritelmässä muutamaa huomattavaa poikkeusta lukuun ottamatta (VoIP, säikeet ja jotkin piirteet päästä päähän -salauksessa). Joitakin pienempiäkin puutteita on Matrix-määritelmän jatkuvan kehityksen vuoksi, mutta lopputavoitteena on tarjota määritelmän täysi tuki.</p>
|
||||
<p xml:lang="fr">L'objectif de NeoChat est d'être une application complète pour le protocole Matrix. En tant que tel, tout dans la spécification stable actuelle avec les exceptions notables de VoIP, les processus et certains aspects du chiffrement de bout en bout sont pris en charge. Il y a quelques autres petites omissions en raison du fait que la spécification du protocole Matrix est en constante évolution. Cependant, l'objectif reste de fournir un soutien éventuel pour l'ensemble de la spécification.</p>
|
||||
<p xml:lang="gl">NeoChat pretende ser unha aplicación completa para a especificación de Matrix. Coas excepcións de VoIP, conversas fiadas e algúns aspectos da cifraxe de extremo a extremo, a versión estábel segue as especificacións. Existen algunhas outras pequenas omisións debido ao feito de que Matrix está en continua evolución pero a intención é implementar a especificación completa.</p>
|
||||
<p xml:lang="ia">NeoChat aspira a esser un application plenemente eminente per le specification de Matrix. Tal como omne cosas in le specification currentemente stabile con le exceptiones notabile de VOIP, threads e alcun aspectos del cryptation End-to-End es supportate. Il ha ltere pauc omissiones, debite al facto que le specification de Matrix es in evolution constante ma le aspiration remane a fornir supporto eventual per le integre specification.</p>
|
||||
@@ -125,6 +127,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<p xml:lang="ca-valencia">A causa de la naturalea del desenvolupament de l'especificació de Matrix, NeoChat també implementa nombroses característiques inestables. Actualment són:</p>
|
||||
<p xml:lang="en-GB">Due to the nature of the Matrix specification development NeoChat also supports numerous unstable features. Currently these are:</p>
|
||||
<p xml:lang="es">Debido a la naturaleza del desarrollo de la especificación de Matrix, NeoChat también permite numerosas funciones no estables, como:</p>
|
||||
<p xml:lang="fi">Matrix-määritelmän kehittyessä NeoChat tukee myös monia epävakaita ominaisuuksia. Tällä hetkellä näitä ovat:</p>
|
||||
<p xml:lang="fr">En raison de la nature du développement des spécifications du protocole Matrix, NeoChat prend également en charge de nombreuses fonctionnalités instables. Actuellement, ce sont :</p>
|
||||
<p xml:lang="gl">Debido á natureza do desenvolvemento da especificación de Matrix, NeoChat tamén inclúe varias funcionalidades non estábeis:</p>
|
||||
<p xml:lang="ia">Debite al natura del disveloppamento de specification de Matrix NeoChat tamben supporta numerose characteristicas instabile. Currentemente istes es:</p>
|
||||
@@ -144,6 +147,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<li xml:lang="ca-valencia">Enquestes - MSC3381</li>
|
||||
<li xml:lang="en-GB">Polls - MSC3381</li>
|
||||
<li xml:lang="es">Encuestas - MSC3381</li>
|
||||
<li xml:lang="fi">Kyselyt – MSC3381</li>
|
||||
<li xml:lang="fr">Sondages - MSC3381</li>
|
||||
<li xml:lang="gl">Enquisas - MSC3381</li>
|
||||
<li xml:lang="ia">Inquestas - MSC3381</li>
|
||||
@@ -162,6 +166,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<li xml:lang="ca-valencia">Paquets d'adhesius - MSC2545</li>
|
||||
<li xml:lang="en-GB">Sticker Packs - MSC2545</li>
|
||||
<li xml:lang="es">Paquetes de pegatinas - MSC2545</li>
|
||||
<li xml:lang="fi">Tarrapakkaukset – MSC2545</li>
|
||||
<li xml:lang="fr">Paquets d'auto-collants - MSC2545</li>
|
||||
<li xml:lang="gl">Paquetes de adhesivos - MSC2545</li>
|
||||
<li xml:lang="ia">Etiquetta gummate (sticker) -MSC2545</li>
|
||||
@@ -180,6 +185,7 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<li xml:lang="ca-valencia">Esdeveniments d'ubicació - MSC3488</li>
|
||||
<li xml:lang="en-GB">Location Events - MSC3488</li>
|
||||
<li xml:lang="es">Eventos de ubicación - MSC3488</li>
|
||||
<li xml:lang="fi">Sijaintitapahtumat – MSC3488</li>
|
||||
<li xml:lang="fr">Événements de lieu - MSC3488</li>
|
||||
<li xml:lang="gl">Localización de eventos - MSC3488</li>
|
||||
<li xml:lang="ia">Eventos de Location - MSC3488</li>
|
||||
@@ -194,6 +200,11 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<li xml:lang="x-test">xxLocation Events - MSC3488xx</li>
|
||||
</ul>
|
||||
</description>
|
||||
<keywords>
|
||||
<keyword>instant messaging</keyword>
|
||||
<keyword>chat</keyword>
|
||||
<keyword>matrix</keyword>
|
||||
</keywords>
|
||||
<url type="homepage">https://apps.kde.org/neochat/</url>
|
||||
<url type="bugtracker">https://bugs.kde.org/buglist.cgi?component=General&product=NeoChat</url>
|
||||
<categories>
|
||||
@@ -241,6 +252,19 @@ to provide a convergent experience across multiple platforms.</p>
|
||||
<value key="KDE::matrix">#neochat:kde.org</value>
|
||||
<value key="KDE::windows_store">https://www.microsoft.com/store/apps/9PNXWVNRC29H</value>
|
||||
<value key="KDE::mastodon">https://kde.social/@neochat</value>
|
||||
<value key="KDE::windows_store::StoreLogo9x16">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/storelogo-720x1080.png</value>
|
||||
<value key="KDE::windows_store::StoreLogoSquare">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/storelogo-1080x1080.png</value>
|
||||
<value key="KDE::windows_store::Icon">https://invent.kde.org/network/neochat/-/raw/master/icons/300-apps-neochat.png</value>
|
||||
<value key="KDE::windows_store::PromotionalArt16x9">https://invent.kde.org/network/neochat/-/raw/master/icons/windows/promoimage-1920x1080.png</value>
|
||||
<value key="KDE::feature1">Supports the Matrix protocol for instant messaging.</value>
|
||||
<value key="KDE::feature2">End-to-End Encryption</value>
|
||||
<value key="KDE::feature3">Polls (experimental)</value>
|
||||
<value key="KDE::feature4">Sticker Packs (experimental)</value>
|
||||
<value key="KDE::feature5">Location Events (experimental)</value>
|
||||
<value key="KDE::windows_store::DesktopScreenshot1">https://cdn.kde.org/screenshots/neochat/NeoChat-Windows-Timeline.png</value>
|
||||
<value key="KDE::windows_store::DesktopScreenshotCaption1">Main view of NeoChat with room list, chat, and room information pane</value>
|
||||
<value key="KDE::windows_store::DesktopScreenshot2">https://cdn.kde.org/screenshots/neochat/NeoChat-Windows-Login.png</value>
|
||||
<value key="KDE::windows_store::DesktopScreenshotCaption2">Login screen of NeoChat</value>
|
||||
</custom>
|
||||
<launchable type="desktop-id">org.kde.neochat.desktop</launchable>
|
||||
<screenshots>
|
||||
|
||||
189
po/ar/neochat.po
189
po/ar/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-08 10:55+0400\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-15 09:40+0400\n"
|
||||
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
|
||||
"Language-Team: ar\n"
|
||||
"Language: ar\n"
|
||||
@@ -84,10 +84,9 @@ msgid "Room creation failed: %1"
|
||||
msgstr "فشل إنشاء غرفة: %1"
|
||||
|
||||
#: src/controller.cpp:552
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: %1"
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "فشل إنشاء غرفة: %1"
|
||||
msgstr "فشل إنشاء فضاء: %1"
|
||||
|
||||
#: src/controller.cpp:566
|
||||
#, kde-format
|
||||
@@ -123,90 +122,90 @@ msgstr "المقصد"
|
||||
msgid "Network Error"
|
||||
msgstr "خطأ شبكيّ"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "نيوتشات"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "عميل ماتركس"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020بلاك هات، 2020-2023 مجتمع كِيدِي"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "كارل شوان"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "المصين"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "توبياس فلة"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "جيمس غراهام"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "قبعة سوداء"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "المؤلف الأصلي لـSpectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "أليكسي روساكوف"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "مصين Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "زايد السعيدي"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "zayed.alsaidi@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "مكتبة Qt5 لكتابة عملاء عابرة للأنظمة لماتركس"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (بني على %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "عميل لميفاق الاتصال ماتركس"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "يدعم ماتركس: مخطط الروابط"
|
||||
@@ -638,18 +637,16 @@ msgid "Custom"
|
||||
msgstr "مخصّص"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Own Stickers"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own Stickers'"
|
||||
msgid "Own Stickers"
|
||||
msgstr "ملصقاتك"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emojis"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr "الصورة التعبيرية"
|
||||
msgstr "صورك التعبيرية"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
@@ -661,17 +658,17 @@ msgstr "<i>[هذه الرسالة محذوفة]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[هذه الرسالة محذوفة: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[أفعال محظورة]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[أفعال محظورة: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -682,7 +679,7 @@ msgstr[3] "%1 مستخدمين: "
|
||||
msgstr[4] " %1 مستخدماً: "
|
||||
msgstr[5] "%1 مستخدم: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1105,7 +1102,7 @@ msgstr "عرض: %1, طول: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "رسالة معمّاة"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1317,10 +1314,9 @@ msgid "Available Room Versions"
|
||||
msgstr "إصدارات الغرفة المتوفرة"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Stickers"
|
||||
#, kde-format
|
||||
msgid "No stickers"
|
||||
msgstr "الملصقات"
|
||||
msgstr "لا يوجد ملصقات"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
@@ -1341,6 +1337,17 @@ msgstr "الصورة التعبيرية"
|
||||
msgid "Stickers"
|
||||
msgstr "الملصقات"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "أرسل موقعاً جغرافياً"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "أغلق"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1367,6 +1374,19 @@ msgstr "ارفض"
|
||||
msgid "Accept"
|
||||
msgstr "اقبل"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "الإشعارات"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "أنت في هذه الغرفة فعلا."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1602,22 +1622,22 @@ msgstr "اختر ملف محلي"
|
||||
msgid "Clipboard image"
|
||||
msgstr "صورة الحافظة"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "اقفز إلى أول رسالة غير المقروءة"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "اقفز إلى أحدث رسالة"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "اسحب عناصر هنا لتشاركهم"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1629,19 +1649,19 @@ msgstr[3] "%2 يكتبون"
|
||||
msgstr[4] "%2 يكتبون"
|
||||
msgstr[5] "%2 يكتبون"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "التّعمية النشطة"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "لا يمكن تعطيل التعمية بعد تفعيلها."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1684,38 +1704,30 @@ msgstr "حسنًا"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:15
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create a Space"
|
||||
msgstr "اترك الفضاء"
|
||||
msgstr "أنشئ فضاء"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Create a Space"
|
||||
msgstr "اترك الفضاء"
|
||||
msgstr "أنشئ فضاء"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:27
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@option:check"
|
||||
#| msgid "Space members"
|
||||
#, kde-format
|
||||
msgid "Space name"
|
||||
msgstr "أعضاء الفضاء"
|
||||
msgstr "اسم الفضاء"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:31
|
||||
#, kde-format
|
||||
msgid "Space topic (optional)"
|
||||
msgstr ""
|
||||
msgstr "موضوع الفضاء (اختياري)"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create space"
|
||||
msgstr "اترك الفضاء"
|
||||
msgstr "أنشئ فضاء"
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/EmojiSas.qml:23
|
||||
#, kde-format
|
||||
@@ -2012,18 +2024,18 @@ msgstr "افتح دردشة خاصة"
|
||||
msgid "Copy link"
|
||||
msgstr "نسخ الرابط"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "تَثَبّت الجلسة"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "موافقة المستخدم"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2032,17 +2044,17 @@ msgstr ""
|
||||
"يتطلب منك الخادم المنزلي الخاص بك الموافقة على الشروط والأحكام الخاصة به قبل "
|
||||
"أن تتمكن من استخدامه. الرجاء الضغط على الزر أدناه لقراءتها."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "افتح"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "ابدأ دردشة"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "هل ترغب في بَدء دردشة مع %1؟"
|
||||
@@ -2237,7 +2249,7 @@ msgid "Ban"
|
||||
msgstr "احظر"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2316,27 +2328,27 @@ msgstr "بحث عن '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "اضبط اختصارات الوِب..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "أزل الرسائل"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "أزل رسالة"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "سبب إزالة هذه آخر رسائل هذا المستخدم"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "سبب إزالة هذه الرسالة"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2637,8 +2649,8 @@ msgstr "اترك الغرفة"
|
||||
msgid "Explore rooms"
|
||||
msgstr "استكشف الغرف"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "أنشئ غرف ودردشات"
|
||||
@@ -2797,31 +2809,37 @@ msgid "Search"
|
||||
msgstr "ابحث"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "ابحث في هذه الغرفة"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "أزل الغرفة من المفضلة"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "اجعل الغرفة في المفضلة"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "الأعضاء"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "ابحث عن مستخدم في الغرفة"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "أدعُ مستخدم إلى غرفة"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2832,28 +2850,28 @@ msgstr[3] "%1 أعضاء"
|
||||
msgstr[4] "%1 عضواً"
|
||||
msgstr[5] "%1 عضو"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "بلا عدد أعضاء"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "عامّ"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "الأمن"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "التّصاريح"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "الإشعارات"
|
||||
@@ -4055,9 +4073,6 @@ msgstr "أنهِ"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "حفظ باسم"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "أغلق"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (معدل)"
|
||||
|
||||
|
||||
143
po/az/neochat.po
143
po/az/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
@@ -130,92 +130,92 @@ msgstr "Dəvət göndərmək"
|
||||
msgid "Network Error"
|
||||
msgstr "Şəbəkə xətası"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix müştərisi"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 KDE Cəmiyyəti"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Qarapapaq"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Xəyyam Qocayev"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "xxmn77@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Matrix üçün platformalararası müştərilər yazmaq üçün bir Qt5 kitabxanası"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix kommunikasiya protokolu üçün müştəri"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Supports appstream: url scheme"
|
||||
msgid "Supports matrix: url scheme"
|
||||
@@ -741,24 +741,24 @@ msgstr "<i>[Bu ismarıc silindi]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Bu ismarıc silindi: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[DÜZƏLİŞ_EDİLDİ]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[DÜZƏLİŞ_EDİLDİ: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1200,7 +1200,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "İsmarıca düzəliş etmək"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1454,6 +1454,17 @@ msgstr "Xüsusi Emoji"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Dəvət göndərmək"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Bağlamaq"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1480,6 +1491,19 @@ msgstr "İmtina etmək"
|
||||
msgid "Accept"
|
||||
msgstr "Qəbul etmək"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Bildirişlərdə göstərmək"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "NeoChatı bu otaqla açın"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1713,22 +1737,22 @@ msgstr "Yerli faylı seçin"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Mübadilə yaddaşındakı şəkil"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Birinci oxunmammış ismarıca keçin"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Sonuncu ismarıca keçin"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Elementi paylaşmaq üçün buraya atın"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1736,20 +1760,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 yazır"
|
||||
msgstr[1] "%2 yazırlar"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Ucdan Uca şifrələməni aktiv etmək"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2125,19 +2149,19 @@ msgstr "Məxfi çatı açmaq"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopyalamaq"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Bildirişlərdə göstərmək"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "İstifadəçi razılığı"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2146,17 +2170,17 @@ msgstr ""
|
||||
"Əsas server, onu istifadə etmədən öncə onun şərtlərini və razılaşmalarını "
|
||||
"qəbul etmənizi tələb edir. Onları oxumaq üçün aşağıdakı düyməni vurun."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Açmaq"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Söhbətə başlayın"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "%1 ilə söhbətə başlamaq istəyirsiniz?"
|
||||
@@ -2353,7 +2377,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2435,29 +2459,29 @@ msgstr "'%1' ilə axtarın"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Veb qısayollarını tənzimləyin..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "İsmarıca düzəliş etmək"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "İsmarıca düzəliş etmək"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2771,8 +2795,8 @@ msgstr "Otağı tərk etmək"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Otaqlara baxış"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2944,33 +2968,39 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "NeoChatı bu otaqla açın"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Otağı seçilmişlərdən silin"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Otağı seçilmiş edin"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Üzvlər"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "NeoChatı bu otaqla açın"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 invited you to a room"
|
||||
msgid "Invite user to room"
|
||||
msgstr "%1,sizi otağa dəvət etdi"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2979,29 +3009,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 Üzv"
|
||||
msgstr[1] "%1 Üzvlər"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Üzv sayı yoxdur"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Əsas"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Təhlükəsizlik"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgid "Notifications"
|
||||
@@ -4317,9 +4347,6 @@ msgstr "Çıxış"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Belə saxlamaq"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Bağlamaq"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (düzəliş edildi)"
|
||||
|
||||
|
||||
140
po/ca/neochat.po
140
po/ca/neochat.po
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 10:13+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 13:26+0200\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
"Language: ca\n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 20.12.0\n"
|
||||
"X-Generator: Lokalize 22.12.3\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
@@ -126,91 +126,91 @@ msgstr "Destinació"
|
||||
msgid "Network Error"
|
||||
msgstr "Error de la xarxa"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Client de Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 la comunitat KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "Nate Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de l'Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Mantenidor del Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Josep M. Ferrer"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "txemaq@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Una biblioteca Qt5 per a escriure clients multiplataforma per al Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (construïda amb %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client per al protocol de comunicacions Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Implementa l'esquema d'URL «matrix:»"
|
||||
@@ -656,24 +656,24 @@ msgstr "<i>[Aquest missatge s'ha suprimit]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Aquest missatge s'ha suprimit: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REDACTAT]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REDACTAT: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "%1 usuari: "
|
||||
msgstr[1] "%1 usuaris: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1089,7 +1089,7 @@ msgstr "Lat.: %1, lon.: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Missatge encriptat"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1327,6 +1327,16 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Adhesius"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Visualitza l'emplaçament"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1353,6 +1363,17 @@ msgstr "Rebutja"
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Ubicacions"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "No hi ha ubicacions compartides en aquesta sala."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1586,22 +1607,22 @@ msgstr "Trieu un fitxer local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imatge del porta-retalls"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ves al primer missatge sense llegir"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ves al darrer missatge"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrossegueu aquí els elements per a compartir"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1609,19 +1630,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 està escrivint"
|
||||
msgstr[1] "%2 estan escrivint"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activa l'encriptatge"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "No es podrà desactivar l'encriptatge després que s'hagi activat."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2014,18 +2035,18 @@ msgstr "Obre en un xat privat"
|
||||
msgid "Copy link"
|
||||
msgstr "Copia l'enllaç"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verificació de la sessió"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentiment de l'usuari"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2034,17 +2055,17 @@ msgstr ""
|
||||
"El servidor domèstic requereix que accepteu els seus termes i condicions "
|
||||
"abans de poder-lo usar. Feu clic al botó de sota per a llegir-los."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Obre"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Inicia un xat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Voleu iniciar un xat amb %1?"
|
||||
@@ -2239,7 +2260,7 @@ msgid "Ban"
|
||||
msgstr "Bandeja"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2318,27 +2339,27 @@ msgstr "Cerca «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configura les dreceres web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Elimina missatges"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Elimina un missatge"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Motiu per eliminar els missatges recents d'aquest usuari"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Motiu per eliminar aquest missatge"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2639,8 +2660,8 @@ msgstr "Surt de la sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explora les sales"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Crea sales i xats"
|
||||
@@ -2800,58 +2821,63 @@ msgstr "Cerca"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Mostra les ubicacions per a aquesta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Elimina la sala de les preferides"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Fes preferida la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Cerca un usuari en aquesta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Convida un usuari a la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membre"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "No hi ha comptador de membres"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Seguretat"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificacions"
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 10:13+0200\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
@@ -127,90 +127,90 @@ msgstr "Destinació"
|
||||
msgid "Network Error"
|
||||
msgstr "S'ha produït un error de la xarxa"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Client de Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 la comunitat KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "Nate Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original d'Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Mantenidor de Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Josep M. Ferrer"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "txemaq@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Una biblioteca Qt5 per a escriure clients multiplataforma per a Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (construïda amb %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client per al protocol de comunicacions Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Implementa l'esquema d'URL «matrix:»"
|
||||
@@ -656,24 +656,24 @@ msgstr "<i>[Este missatge s'ha suprimit]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Este missatge s'ha suprimit: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REDACTAT]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REDACTAT: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "%1 usuari: "
|
||||
msgstr[1] "%1 usuaris: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1088,7 +1088,7 @@ msgstr "Lat.: %1, lon.: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Missatge encriptat"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1326,6 +1326,17 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Adhesius"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Envia una ubicació"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1352,6 +1363,19 @@ msgstr "Rebutja"
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notificacions"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Ja vos trobeu en esta sala."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1585,22 +1609,22 @@ msgstr "Seleccioneu un fitxer local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imatge del porta-retalls"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ves al primer missatge sense llegir"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ves al últim missatge"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrossegueu ací els elements per a compartir"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1608,19 +1632,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 està escrivint"
|
||||
msgstr[1] "%2 estan escrivint"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activa l'encriptació"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "No es podrà desactivar l'encriptació després que s'haja activat."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2013,18 +2037,18 @@ msgstr "Obri en un xat privat"
|
||||
msgid "Copy link"
|
||||
msgstr "Copia l'enllaç"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verificació de la sessió"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentiment de l'usuari"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2033,17 +2057,17 @@ msgstr ""
|
||||
"El servidor domèstic requerix que accepteu els seus termes i condicions "
|
||||
"abans de poder-lo utilitzar. Feu clic en el botó de davall per a llegir-los."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Obri"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Inicia un xat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Voleu iniciar un xat amb %1?"
|
||||
@@ -2238,7 +2262,7 @@ msgid "Ban"
|
||||
msgstr "Bandeja"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2317,27 +2341,27 @@ msgstr "Busca «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configura les dreceres web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Elimina missatges"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Elimina un missatge"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Motiu per a eliminar els missatges recents d'este usuari"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Motiu per a eliminar este missatge"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2638,8 +2662,8 @@ msgstr "Ix de la sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explora les sales"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Crea sales i xats"
|
||||
@@ -2798,59 +2822,65 @@ msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Busca en esta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Elimina la sala de les preferides"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Fes preferida la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Busca un usuari en esta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Convida un usuari a la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membre"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "No hi ha comptador de membres"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Seguretat"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificacions"
|
||||
|
||||
161
po/cs/neochat.po
161
po/cs/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-05 13:18+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-12 16:22+0200\n"
|
||||
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
|
||||
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||
"Language: cs\n"
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Lokalize 23.04.1\n"
|
||||
"X-Generator: Lokalize 23.04.2\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
@@ -85,7 +85,7 @@ msgstr "Vytvoření místnosti selhalo: %1"
|
||||
#: src/controller.cpp:552
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
msgstr "Vytvoření místnosti selhalo: %1"
|
||||
|
||||
#: src/controller.cpp:566
|
||||
#, kde-format
|
||||
@@ -121,90 +121,90 @@ msgstr "Cíl"
|
||||
msgid "Network Error"
|
||||
msgstr "Chyba sítě"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Klient protokolu Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 Komunita KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Správce"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Vít Pelčák"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "vit@pelcak.org"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (sestaveno oproti %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -633,13 +633,13 @@ msgstr "Vlastní"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own Stickers'"
|
||||
msgid "Own Stickers"
|
||||
msgstr ""
|
||||
msgstr "Vlastní nálepky"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr ""
|
||||
msgstr "Vlastní emotikony"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
@@ -651,17 +651,17 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -669,7 +669,7 @@ msgstr[0] "%1 uživatel:"
|
||||
msgstr[1] "%1 uživatelé:"
|
||||
msgstr[2] "%1 uživatelů:"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1086,7 +1086,7 @@ msgstr "Šíř.: %1, Dél.: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Zašifrovaná zpráva"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1299,7 +1299,7 @@ msgstr "Dostupné verze místnosti"
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
msgid "No stickers"
|
||||
msgstr ""
|
||||
msgstr "Žádné nálepky"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
@@ -1320,6 +1320,17 @@ msgstr "Emotikony"
|
||||
msgid "Stickers"
|
||||
msgstr "Nálepky"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Poslat polohu"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1346,6 +1357,18 @@ msgstr "Odmítnout"
|
||||
msgid "Accept"
|
||||
msgstr "Přijmout"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Upozornění"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1578,22 +1601,22 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Přejít na první nepřečtenou zprávu"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1602,19 +1625,19 @@ msgstr[0] "%2 píše"
|
||||
msgstr[1] "%2 píší"
|
||||
msgstr[2] "%2 píší"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1659,28 +1682,28 @@ msgstr "OK"
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:40
|
||||
#, kde-format
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit místnost"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:23
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Create a Space"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit místnost"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:27
|
||||
#, kde-format
|
||||
msgid "Space name"
|
||||
msgstr ""
|
||||
msgstr "Název místnosti"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:31
|
||||
#, kde-format
|
||||
msgid "Space topic (optional)"
|
||||
msgstr ""
|
||||
msgstr "Téma místnosti (volitelné)"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:34
|
||||
#, kde-format
|
||||
msgid "Create space"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit místnost"
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/EmojiSas.qml:23
|
||||
#, kde-format
|
||||
@@ -1975,35 +1998,35 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
msgstr "Kopírovat odkaz"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Otevřít"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Zahájit rozhovor"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Přejete si začít rozhovor s %1?"
|
||||
@@ -2198,7 +2221,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2277,27 +2300,27 @@ msgstr "Vyhledat '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Nastavit webové zkratky..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2596,8 +2619,8 @@ msgstr "Opustit místnost"
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Vytvářejte místnosti a rozhovory"
|
||||
@@ -2756,31 +2779,37 @@ msgid "Search"
|
||||
msgstr "Hledat"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No application for the link"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Pro odkaz není žádná aplikace"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Členové"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2788,28 +2817,28 @@ msgstr[0] "%1 člen"
|
||||
msgstr[1] "%1 členové"
|
||||
msgstr[2] "%1 členů"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Žádný počet členů"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Obecné"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Bezpečnost"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Oprávnění"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Upozornění"
|
||||
|
||||
141
po/da/neochat.po
141
po/da/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
@@ -127,91 +127,91 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr "Netværksfejl"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Chat"
|
||||
msgid "NeoChat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Martin Schlander"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "mschlander@opensuse.org"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -660,24 +660,24 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1097,7 +1097,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1343,6 +1343,17 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgid "View Location"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1369,6 +1380,18 @@ msgstr "Afvis"
|
||||
msgid "Accept"
|
||||
msgstr "Acceptér"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Settings"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1607,22 +1630,22 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Gå til første ulæste besked"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1630,19 +1653,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2012,37 +2035,37 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
msgstr "Kopiér"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Username"
|
||||
msgid "User consent"
|
||||
msgstr "Brugernavn"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Start a Chat"
|
||||
msgid "Start a chat"
|
||||
msgstr "Start en chat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2245,7 +2268,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2327,29 +2350,29 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "Remove Message"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2654,8 +2677,8 @@ msgstr ""
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2824,58 +2847,63 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Medlemmer"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "Medlem"
|
||||
msgstr[1] "Medlemmer"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
@@ -4083,9 +4111,6 @@ msgstr ""
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Gem som"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Luk"
|
||||
|
||||
#~ msgid "Room Name"
|
||||
#~ msgstr "Værelsesnavn:"
|
||||
|
||||
|
||||
143
po/de/neochat.po
143
po/de/neochat.po
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-05 13:08+0200\n"
|
||||
"Last-Translator: Frederik Schwarzer <schwarzer@kde.org>\n"
|
||||
"Language-Team: German <kde-i18n-de@kde.org>\n"
|
||||
@@ -127,92 +127,92 @@ msgstr "Ziel"
|
||||
msgid "Network Error"
|
||||
msgstr "Netzwerkfehler"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-Programm"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "Copyright © 2018-2020 Black Hat, 2020-2023 KDE-Gemeinschaft"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Betreuer"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Ursprünglicher Autor von Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Betreuer von Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Deutsches KDE-Übersetzerteam, Alois Spitzbart"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "kde-i18n-de@kde.org, spitz234@hotmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Eine Qt5-Bibliothek zum Schreiben von plattformübergreifenden Programmen für "
|
||||
"Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (für %2 kompiliert)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Programm für das Matrix-Protokoll"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Unterstützt das Adressschema matrix:"
|
||||
@@ -666,24 +666,24 @@ msgstr "<i>[Diese Nachricht wurde gelöscht]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Diese Nachricht wurde gelöscht: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[GELÖSCHT]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[GELÖSCHT: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 Benutzer: "
|
||||
msgstr[1] "%1 Benutzer: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1099,7 +1099,7 @@ msgstr "Breite: %1, Länge: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Verschlüsselte Nachricht"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1336,6 +1336,17 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Sticker"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Einen Standort senden"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1362,6 +1373,19 @@ msgstr "Ablehnen"
|
||||
msgid "Accept"
|
||||
msgstr "Annehmen"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Benachrichtigungen"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Sie sind bereits in dem Raum."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1595,22 +1619,22 @@ msgstr "Lokale Datei auswählen"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Bild aus Zwischenablage"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Zur ersten ungelesenen Nachricht springen"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Zur neuesten Nachricht springen"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Einträge hier einfügen um sie zu teilen"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1618,13 +1642,13 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 schreibt gerade"
|
||||
msgstr[1] "%2 schreiben gerade"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Verschlüsselung aktivieren"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
@@ -1632,7 +1656,7 @@ msgstr ""
|
||||
"Die Verschlüsselung kann nach der Aktivierung nicht wieder deaktiviert "
|
||||
"werden."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2038,18 +2062,18 @@ msgstr "Privaten Chat öffnen"
|
||||
msgid "Copy link"
|
||||
msgstr "Verknüpfung kopieren"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Sitzungsverifizierung"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Benutzereinwilligung"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2058,17 +2082,17 @@ msgstr ""
|
||||
"Ihr Heimserver verlangt, dass Sie seinen Bedingungen zustimmen, bevor Sie "
|
||||
"ihn nutzen können. Bitte klicken Sie auf den Knopf unten, um sie zu lesen."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Einen Chat starten"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Möchten Sie einen Chat mit %1 beginnen?"
|
||||
@@ -2263,7 +2287,7 @@ msgid "Ban"
|
||||
msgstr "Verbannen"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2342,27 +2366,27 @@ msgstr "Suchen nach „%1“"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Web-Kurzbefehle festlegen ..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Nachrichten löschen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Nachricht löschen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Grund für die Löschung der letzten Nachrichten des Nutzers"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Grund für die Löschung der Nachricht"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2666,8 +2690,8 @@ msgstr "Raum verlassen"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Räume erkunden"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Räume und Unterhaltungen erstellen"
|
||||
@@ -2826,59 +2850,65 @@ msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "In diesem Raum suchen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Raum aus Favoriten entfernen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Raum zu Favoriten hinzufügen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Mitglieder"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Benutzer in Raum suchen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Einen Benutzer in den Raum einladen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 Mitglied"
|
||||
msgstr[1] "%1 Mitglieder"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Keine Mitgliederanzahl"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Allgemein"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Sicherheit"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Benachrichtigungen"
|
||||
@@ -4114,9 +4144,6 @@ msgstr "Beenden"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Speichern unter"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Schließen"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (bearbeitet)"
|
||||
|
||||
|
||||
143
po/el/neochat.po
143
po/el/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-01-06 16:47+0200\n"
|
||||
"Last-Translator: Stelios <sstavra@gmail.com>\n"
|
||||
"Language-Team: Greek <kde-i18n-el@kde.org>\n"
|
||||
@@ -125,93 +125,93 @@ msgstr "Προορισμός"
|
||||
msgid "Network Error"
|
||||
msgstr "Σφάλμα δικτύου"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Πελάτης του Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Συντηρητής"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Αρχικός συγγραφέας του Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Συντηρητής του Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Stelios"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "sstavra@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Μια βιβλιοθήκη Qt5 για τη συγγραφή πελατών ανεξάρτητων από πλατφόρμες για το "
|
||||
"Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (κατασκευάστηκε με τη %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Πελάτης για το πρωτόκολλο επικοινωνίας Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Υποστηρίζει το matrix: url σχήμα"
|
||||
@@ -670,24 +670,24 @@ msgstr "<i>[Αυτό το μήνυμα διαγράφηκε]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Αυτό το μήνυμα διαγράφηκε: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ΔΙΑΓΡΑΜΜΕΝΟ]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ΔΙΑΓΡΑΜΜΕΝΟ: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1126,7 +1126,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Κρυπτογραφημένο μήνυμα"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1374,6 +1374,17 @@ msgstr "Χωρίς εμότζι"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Αποστολή πρόσκλησης"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1400,6 +1411,19 @@ msgstr "Απόρριψη"
|
||||
msgid "Accept"
|
||||
msgstr "Αποδοχή"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Ειδοποιήσεις"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Είσαι ήδη σε αυτήν την αίθουσα."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1635,22 +1659,22 @@ msgstr "Επιλογή τοπικού αρχείου"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Εικόνα πρόχειρου"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Μετάβαση στο πρώτο μη αναγνωσμένο μήνυμα"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Μετάβαση στο τελευταίο μήνυμα"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Έλκυσε αντικείμενα εδώ για να τα μοιραστείς"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1658,20 +1682,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 πληκτρολογεί"
|
||||
msgstr[1] "%2 πληκτρολογούν"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Ενεργοποίηση κρυπτογράφησης"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
"Δεν θα είναι δυνατή η απενεργοποίηση της κρυπτογράφησης αφού ενεργοποιηθεί."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2067,18 +2091,18 @@ msgstr "Άνοιγμα ιδιωτικής συνομιλίας"
|
||||
msgid "Copy link"
|
||||
msgstr "Αντιγραφή συνδέσμου"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Επαλήθευση συνεδρίας"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Συναίνεση χρήστη"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2088,17 +2112,17 @@ msgstr ""
|
||||
"πριν τον χρησιμοποιήσεις. Κάνε κλικ στο παρακάτω κουμπί για να τους "
|
||||
"διαβάσεις."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Άνοιγμα"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Έναρξη συνομιλίας"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Θέλεις να ξεκινήσεις συνομιλία με τον %1;"
|
||||
@@ -2293,7 +2317,7 @@ msgid "Ban"
|
||||
msgstr "Αποκλεισμός"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2372,27 +2396,27 @@ msgstr "Αναζήτηση για το '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Διαμόρφωση συντομεύσεων ιστού..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Αφαίρεση μηνυμάτων"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Αφαίρεση μηνύματος"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Αιτία αφαίρεσης των πρόσφατων μηνυμάτων αυτού του χρήστη"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Αιτία αφαίρεσης αυτού του μηνύματος"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2696,8 +2720,8 @@ msgstr "Αποχώρηση από την αίθουσα"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Εξερεύνηση αιθουσών"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2859,31 +2883,37 @@ msgid "Search"
|
||||
msgstr "Αναζήτηση"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Αναζήτηση σε αυτήν την αίθουσα"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Αφαίρεση αίθουσας από τις προτιμώμενες"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Να γίνει η αίθουσα προτιμώμενη"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Μέλη"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Αναζήτηση χρήστη στην αίθουσα"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Πρόσκληση χρήστη στην αίθουσα"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2892,29 +2922,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 μέλος"
|
||||
msgstr[1] "%1 μέλη"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Δεν καταμετρήθηκαν μέλη"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Γενικά"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Ασφάλεια"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Δικαιώματα"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Ειδοποιήσεις"
|
||||
@@ -4162,9 +4192,6 @@ msgstr "Έξοδος"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Αποθήκευση ως"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Κλείσιμο"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (έγινε επεξεργασία)"
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-05-21 15:04+0100\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-17 12:19+0100\n"
|
||||
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
|
||||
"Language-Team: British English\n"
|
||||
"Language: en_GB\n"
|
||||
@@ -78,16 +78,14 @@ msgid "Contact your matrix server administrator for support."
|
||||
msgstr "Contact your matrix server administrator for support."
|
||||
|
||||
#: src/controller.cpp:531
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Room creation failed: \"%1\""
|
||||
msgstr "Room creation failed: %1"
|
||||
|
||||
#: src/controller.cpp:552
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Room creation failed: \"%1\""
|
||||
msgstr "Space creation failed: %1"
|
||||
|
||||
#: src/controller.cpp:566
|
||||
#, kde-format
|
||||
@@ -123,90 +121,90 @@ msgstr "Destination"
|
||||
msgid "Network Error"
|
||||
msgstr "Network Error"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix client"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Maintainer"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Original author of Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Maintainer of Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Steve Allewell"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "steve.allewell@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "A Qt5 library to write cross-platform clients for Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (built against %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client for the matrix communication protocol"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Supports matrix: URL scheme"
|
||||
@@ -630,18 +628,16 @@ msgid "Custom"
|
||||
msgstr "Custom"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Own Stickers"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own Stickers'"
|
||||
msgid "Own Stickers"
|
||||
msgstr "Own Stickers"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emojis"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr "Emojis"
|
||||
msgstr "Own Emojis"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
@@ -653,24 +649,24 @@ msgstr "<i>[This message was deleted]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[This message was deleted: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REDACTED]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REDACTED: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 user: "
|
||||
msgstr[1] "%1 users: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1085,7 +1081,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Encrypted Message"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1298,10 +1294,9 @@ msgid "Available Room Versions"
|
||||
msgstr "Available Room Versions"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Stickers"
|
||||
#, kde-format
|
||||
msgid "No stickers"
|
||||
msgstr "Stickers"
|
||||
msgstr "No stickers"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
@@ -1322,6 +1317,17 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Stickers"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Send a Location"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1348,6 +1354,19 @@ msgstr "Reject"
|
||||
msgid "Accept"
|
||||
msgstr "Accept"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notifications"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "You are already in this room."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1581,22 +1600,22 @@ msgstr "Choose local file"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Clipboard image"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Jump to first unread message"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Jump to latest message"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Drag items here to share them"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1604,20 +1623,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 is typing"
|
||||
msgstr[1] "%2 are typing"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activate Encryption"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1660,38 +1679,30 @@ msgstr "Ok"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:15
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create a Space"
|
||||
msgstr "Leave Space"
|
||||
msgstr "Create a Space"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Create a Space"
|
||||
msgstr "Leave Space"
|
||||
msgstr "Create a Space"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:27
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@option:check"
|
||||
#| msgid "Space members"
|
||||
#, kde-format
|
||||
msgid "Space name"
|
||||
msgstr "Space members"
|
||||
msgstr "Space name"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:31
|
||||
#, kde-format
|
||||
msgid "Space topic (optional)"
|
||||
msgstr ""
|
||||
msgstr "Space topic (optional)"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create space"
|
||||
msgstr "Leave Space"
|
||||
msgstr "Create space"
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/EmojiSas.qml:23
|
||||
#, kde-format
|
||||
@@ -2013,18 +2024,18 @@ msgstr "Open a private chat"
|
||||
msgid "Copy link"
|
||||
msgstr "Copy link"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Session Verification"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "User consent"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2033,17 +2044,17 @@ msgstr ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Start a chat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Do you want to start a chat with %1?"
|
||||
@@ -2238,7 +2249,7 @@ msgid "Ban"
|
||||
msgstr "Ban"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2317,27 +2328,27 @@ msgstr "Search for '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configure Web Shortcuts..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Remove Messages"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Remove Message"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Reason for removing this user's recent messages"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Reason for removing this message"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2638,8 +2649,8 @@ msgstr "Leave Room"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explore rooms"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Create rooms and chats"
|
||||
@@ -2798,59 +2809,65 @@ msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Search in this room"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Remove room from favourites"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Make room favourite"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Members"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Search user in room"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invite user to room"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 member"
|
||||
msgstr[1] "%1 members"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "No member count"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Security"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
@@ -3505,19 +3522,17 @@ msgstr "Add Sticker"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:59
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Edit Emoji"
|
||||
msgstr "Add Emoji..."
|
||||
msgstr "Edit Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:109
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Add Emoji"
|
||||
msgstr "Add Emoji..."
|
||||
msgstr "Add Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, kde-format
|
||||
@@ -3525,10 +3540,9 @@ msgid "Sticker"
|
||||
msgstr "Sticker"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emojis"
|
||||
#, kde-format
|
||||
msgid "Emoji"
|
||||
msgstr "Emojis"
|
||||
msgstr "Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:69
|
||||
#, kde-format
|
||||
@@ -3551,18 +3565,15 @@ msgid "Description:"
|
||||
msgstr "Description:"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:77
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "As in 'This sticker has no description'"
|
||||
#| msgid "No Description"
|
||||
#, kde-format
|
||||
msgctxt "As in 'This sticker/emoji has no description'"
|
||||
msgid "No Description"
|
||||
msgstr "No Description"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgid "Add Emoji"
|
||||
msgstr "Add Emoji..."
|
||||
msgstr "Add Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, kde-format
|
||||
@@ -3852,10 +3863,9 @@ msgid "Appearance"
|
||||
msgstr "Appearance"
|
||||
|
||||
#: src/qml/Settings/SettingsPage.qml:37
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Stickers"
|
||||
#, kde-format
|
||||
msgid "Stickers & Emojis"
|
||||
msgstr "Stickers"
|
||||
msgstr "Stickers & Emojis"
|
||||
|
||||
#: src/qml/Settings/SettingsPage.qml:44
|
||||
#, kde-format
|
||||
@@ -4067,9 +4077,6 @@ msgstr "Quit"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Save as"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Close"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (edited)"
|
||||
|
||||
|
||||
143
po/es/neochat.po
143
po/es/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-10 00:57+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-25 00:57+0200\n"
|
||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||
"Language: es\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 23.04.1\n"
|
||||
"X-Generator: Lokalize 23.04.2\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
@@ -126,91 +126,91 @@ msgstr "Destino"
|
||||
msgid "Network Error"
|
||||
msgstr "Error de red"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Cliente para Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 La Comunidad KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsable"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Responsable de Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Eloy Cuadra"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "ecuadra@eloihr.net"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Biblioteca Qt5 para la escritura de clientes multiplataforma para Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilado con %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente para el protocolo de comunicaciones Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Permite el esquema de URL «matrix:»"
|
||||
@@ -655,24 +655,24 @@ msgstr "<i>[Este mensaje ha sido borrado]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Este mensaje ha sido borrado: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[CORREGIDO]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[CORREGIDO: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 usuario: "
|
||||
msgstr[1] "%1 usuarios: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1087,7 +1087,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Mensaje cifrado"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1323,6 +1323,16 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Pegatinas"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Ver ubicación"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1349,6 +1359,17 @@ msgstr "Rechazar"
|
||||
msgid "Accept"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Ubicaciones"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "No hay ubicaciones compartidas en esta sala."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1582,22 +1603,22 @@ msgstr "Escoger archivo local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imagen del portapapeles"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Saltar al primer mensaje sin leer"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Saltar al último mensaje"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrastre elementos aquí para compartirlos"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1605,19 +1626,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 está escribiendo"
|
||||
msgstr[1] "%2 están escribiendo"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activar cifrado"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "No se podrá desactivar el cifrado tras activarlo."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2012,18 +2033,18 @@ msgstr "Abrir un chat privado"
|
||||
msgid "Copy link"
|
||||
msgstr "Copiar enlace"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verificación de la sesión"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentimiento del usuario"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2032,17 +2053,17 @@ msgstr ""
|
||||
"Su servidor doméstico necesita que esté de acuerdo con sus términos y "
|
||||
"condiciones antes de que pueda usarlo. Pulse el botón inferior para leerlos."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Iniciar un chat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "¿Desea iniciar un chat con %1?"
|
||||
@@ -2237,7 +2258,7 @@ msgid "Ban"
|
||||
msgstr "Inhabilitar"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2316,27 +2337,27 @@ msgstr "Buscar «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configurar accesos rápidos web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Eliminar mensajes"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Eliminar mensaje"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Motivo para eliminar los mensajes recientes de este usuario"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Motivo para eliminar este mensaje"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2637,8 +2658,8 @@ msgstr "Salir de la sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explorar salas"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Crear salas y chats"
|
||||
@@ -2798,58 +2819,63 @@ msgstr "Buscar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Mostrar ubicaciones de esta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Eliminar sala de las favoritas"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Poner sala en favoritas"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Miembros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Buscar usuario en la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invitar usuario a la sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 miembro"
|
||||
msgstr[1] "%1 miembros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Sin contador de miembros"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Seguridad"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificaciones"
|
||||
@@ -4077,9 +4103,6 @@ msgstr "Salir"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Guardar como"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Cerrar"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (editado)"
|
||||
|
||||
|
||||
143
po/eu/neochat.po
143
po/eu/neochat.po
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-04-22 21:58+0200\n"
|
||||
"Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
|
||||
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"
|
||||
@@ -129,91 +129,91 @@ msgstr "Jomuga"
|
||||
msgid "Network Error"
|
||||
msgstr "Sareko errorea"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix bezeroa"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 KDE komunitatea"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Arduraduna"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "«Spectral»en Jatorrizko egilea"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "«Quotient»en arduraduna"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Iñigo Salvador Azurmendi"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "xalba@ni.eus"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Plataforma anitzeko Matrix bezeroak idazteko Qt5 liburutegi bat"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (%2 erabiliz eraikia)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix, deszentralizatutako komunikazio protokolorako bezeroa"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "matrix onartzen du: URL eskema"
|
||||
@@ -661,24 +661,24 @@ msgstr "<i>[Mezu hau ezabatu egin da]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Mezu hau ezabatu egin da: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ERREDAKZIO LANA DU]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ERREDAKZIOAK LANA DU: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "Erabiltzaile 1:"
|
||||
msgstr[1] "%1 erabiltzaile:"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Zifratutako mezua"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1339,6 +1339,17 @@ msgstr "Emojirik gabe"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Bidali kokaleku bat"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Itxi"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1365,6 +1376,19 @@ msgstr "Errefusatu"
|
||||
msgid "Accept"
|
||||
msgstr "Onartu"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Jakinarazpenak"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Dagoeneko gela honetan zaude."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1597,22 +1621,22 @@ msgstr "Hautatu tokiko fitxategia"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Arbelako irudia"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Jauzi irakurri gabeko lehenengo mezura"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Jauzi azken mezura"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arrastatu elementuak hona haiek partekatzeko"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1620,19 +1644,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 tekleatzen ari da"
|
||||
msgstr[1] "%2 tekleatzen ari dira"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Aktibatu zifratzea"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Ezingo da zifratzea desgaitu behin hura gaitu denean."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2026,18 +2050,18 @@ msgstr "Ireki berriketa pribatu bat"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopiatu esteka"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Saioa egiaztatzea"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Erabiltzailearen onarpena"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2047,17 +2071,17 @@ msgstr ""
|
||||
"terminoak eta baldintzak onartzea eskatzen dizu. Mesedez, egiozu klik beheko "
|
||||
"botoiari haiek irakurtzeko."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Ireki"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Hasi berriketa bat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "%1(r)ekin berriketa bat abiatu nahi duzu?"
|
||||
@@ -2252,7 +2276,7 @@ msgid "Ban"
|
||||
msgstr "Debekua"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2331,27 +2355,27 @@ msgstr "Bilatu «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Konfiguratu web-lasterbideak..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Kendu mezuak"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Kendu mezua"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Erabiltzaile horren azken aldiko mezuak kentzeko arrazoia"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Mezu hori kentzeko arrazoia"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2652,8 +2676,8 @@ msgstr "Irten gelatik"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Esploratu gelak"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Gelak eta berriketak sortzea"
|
||||
@@ -2814,59 +2838,65 @@ msgid "Search"
|
||||
msgstr "Bilatu"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Bilatu gela honetan"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Kendu gela gogokoetatik"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Egin gela gogoko"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Partaideak"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Bilatu erabiltzailea gelan"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Gonbidatu erabiltzaile bat gelara"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "Partaide %1"
|
||||
msgstr[1] "%1 partaide"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Ez dago partaide kopururik"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Orokorra"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Segurtasuna"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Baimenak"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Jakinarazpenak"
|
||||
@@ -4096,9 +4126,6 @@ msgstr "Irten"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Gorde honela"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Itxi"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(editatu da)"
|
||||
|
||||
|
||||
257
po/fi/neochat.po
257
po/fi/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-04-20 12:39+0300\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-02 20:04+0300\n"
|
||||
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
|
||||
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
|
||||
"Language: fi\n"
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 22.12.3\n"
|
||||
"X-Generator: Lokalize 23.04.1\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
@@ -123,91 +123,90 @@ msgstr "Kohde"
|
||||
msgid "Network Error"
|
||||
msgstr "Verkkovirhe"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-asiakas"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018–2020 Black Hat, 2020–2022 KDE-yhteisö"
|
||||
msgstr "© 2018–2020 Black Hat, 2020–2023 KDE-yhteisö"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Ylläpitäjä"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectralin alkuperäinen tekijä"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Quotientin ylläpitäjä"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Tommi Nieminen"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "translator@legisign.org"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Qt5-kirjasto eri alustojen asiakkaiden Matrix-kirjoitukseen"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (koostettu kirjastolla %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix-viestintäyhteyskäytäntöasiakas"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Tukee matrix:-verkko-osoitemallia"
|
||||
@@ -654,24 +653,24 @@ msgstr "<i>[Tämä viesti on poistettu]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Tämä viesti on poistettu: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[MUOKATTU]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[MUOKATTU: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 käyttäjä: "
|
||||
msgstr[1] "%1 käyttäjää: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1087,7 +1086,7 @@ msgstr "Lev: %1, pit: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Salattu viesti"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1155,7 +1154,7 @@ msgstr "Liitä kuva tai tiedosto"
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:89
|
||||
#, kde-format
|
||||
msgid "Emojis & Stickers"
|
||||
msgstr ""
|
||||
msgstr "Emojit ja tarrat"
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBar.qml:105
|
||||
#, kde-format
|
||||
@@ -1248,10 +1247,9 @@ msgid "Replying to:"
|
||||
msgstr "Vastataan:"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms"
|
||||
#, kde-format
|
||||
msgid "Room"
|
||||
msgstr "Huoneet"
|
||||
msgstr "Huone"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:31
|
||||
#, fuzzy, kde-format
|
||||
@@ -1260,15 +1258,14 @@ msgid "Show m.room.member events"
|
||||
msgstr "Näytä nimenvaihtotapahtumat"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:43
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No rooms found"
|
||||
#, kde-format
|
||||
msgid "Show room account data"
|
||||
msgstr "Huoneita ei löytynyt"
|
||||
msgstr "Näytä huoneen tilitiedot"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:54
|
||||
#, kde-format
|
||||
msgid "Room Account Data for %1 - %2"
|
||||
msgstr ""
|
||||
msgstr "Huoneen tilitiedot: %1 – %2"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:64
|
||||
#: src/qml/Component/Devtools/RoomData.qml:106
|
||||
@@ -1278,33 +1275,29 @@ msgid "Event Source"
|
||||
msgstr "Tapahtumalähde"
|
||||
|
||||
#: src/qml/Component/Devtools/RoomData.qml:78
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room State - %1"
|
||||
#, kde-format
|
||||
msgid "Room State for %1"
|
||||
msgstr "Huoneen tila – %1"
|
||||
|
||||
#: src/qml/Component/Devtools/ServerData.qml:20
|
||||
#, kde-format
|
||||
msgid "Server Capabilities"
|
||||
msgstr ""
|
||||
msgstr "Palvelimen ominaisuudet"
|
||||
|
||||
#: src/qml/Component/Devtools/ServerData.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm new Password:"
|
||||
#, kde-format
|
||||
msgid "Can change password"
|
||||
msgstr "Vahvista uusi salasana:"
|
||||
msgstr "Voi vaihtaa salasanansa"
|
||||
|
||||
#: src/qml/Component/Devtools/ServerData.qml:33
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Default permissions"
|
||||
#, kde-format
|
||||
msgid "Default Room Version"
|
||||
msgstr "Oletusluvat"
|
||||
msgstr "Huoneen oletusversio"
|
||||
|
||||
#: src/qml/Component/Devtools/ServerData.qml:45
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room version"
|
||||
#, kde-format
|
||||
msgid "Available Room Versions"
|
||||
msgstr "Huoneen versio"
|
||||
msgstr "Huoneen saatavilla olevat versiot"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, fuzzy, kde-format
|
||||
@@ -1320,17 +1313,27 @@ msgstr "Ei emojeja"
|
||||
#: src/qml/Component/Emoji/EmojiPicker.qml:47
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:28
|
||||
#: src/qml/Settings/EmoticonsPage.qml:16
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No emojis"
|
||||
#, kde-format
|
||||
msgid "Emojis"
|
||||
msgstr "Ei emojeja"
|
||||
msgstr "Emojit"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiPicker.qml:54
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:28
|
||||
#: src/qml/Settings/EmoticonsPage.qml:16
|
||||
#, kde-format
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
msgstr "Tarrat"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Lähetä sijainti"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
@@ -1358,6 +1361,19 @@ msgstr "Hylkää"
|
||||
msgid "Accept"
|
||||
msgstr "Hyväksy"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Ilmoitukset"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Olet jo tässä huoneessa."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1578,7 +1594,7 @@ msgstr "Äänenvoimakkuus"
|
||||
#: src/qml/Component/Timeline/VideoDelegate.qml:353
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
msgstr "Suurenna"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:126
|
||||
#, kde-format
|
||||
@@ -1590,22 +1606,22 @@ msgstr "Valitse paikallinen tiedosto"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Leikepöydän kuva"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Hyppää ensimmäiseen lukemattomaan viestiin"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Hyppää viimeisimpään viestiin"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Jaa kohteita vetämällä ne tähän"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1613,19 +1629,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 kirjoittaa"
|
||||
msgstr[1] "%2 kirjoittavat"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Aktivoi salaus"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Salausta ei voi passivoida, kun se on otettu käyttöön."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2012,18 +2028,18 @@ msgstr "Avaa yksityiskeskustelu"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopioi linkki"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Istunnon todennus"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Käyttäjän suostumus"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2032,17 +2048,17 @@ msgstr ""
|
||||
"Kotipalvelimesi vaatii sinua hyväksymään käyttöehdot ennen kuin voit käyttää "
|
||||
"sitä. Lue ehdot napsauttamalla alla olevaa painiketta."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Avaa"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Aloita keskustelu"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Haluatko käynnistää keskustelun henkilön %1 kanssa?"
|
||||
@@ -2237,7 +2253,7 @@ msgid "Ban"
|
||||
msgstr "Estä"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2317,27 +2333,27 @@ msgid "Configure Web Shortcuts..."
|
||||
msgstr "WWW-pikavalintojen asetukset…"
|
||||
|
||||
# Voisi olla myös ”Poista viestejä”, jos on valikossa…
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Poista viestit"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Poista viesti"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Syy tämän käyttäjän viimeisimpien viestien poistamiseen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Syy viestin poistamiseen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2437,7 +2453,7 @@ msgstr "Lähetä kutsu"
|
||||
#: src/qml/Page/InviteUserPage.qml:100
|
||||
#, kde-format
|
||||
msgid "User is either already a member or has been invited"
|
||||
msgstr ""
|
||||
msgstr "Käyttäjä joko on jo jäsen tai on kutsuttu jäseneksi"
|
||||
|
||||
#: src/qml/Page/JoinRoomPage.qml:21
|
||||
#, kde-format
|
||||
@@ -2638,8 +2654,8 @@ msgstr "Poistu huoneesta"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Tutki huoneita"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Luo huoneita ja keskusteluja"
|
||||
@@ -2670,11 +2686,9 @@ msgid "Configure room"
|
||||
msgstr "Huoneen asetukset"
|
||||
|
||||
#: src/qml/Page/RoomList/SpaceDrawer.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Show All Rooms"
|
||||
#, kde-format
|
||||
msgid "All Rooms"
|
||||
msgstr "Näytä kaikki huoneet"
|
||||
msgstr "Kaikki huoneet"
|
||||
|
||||
#: src/qml/Page/RoomList/SpaceListContextMenu.qml:25
|
||||
#, kde-format
|
||||
@@ -2800,59 +2814,65 @@ msgid "Search"
|
||||
msgstr "Etsi"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Etsi tästä huoneesta"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Poista huone suosikeista"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Merkitse huone suosikiksi"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Jäsenet"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Etsi huoneesta käyttäjää"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Kutsu käyttäjä huoneeseen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 jäsen"
|
||||
msgstr[1] "%1 jäsentä"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Ei jäsenmäärää"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Perusasetukset"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Tietoturva"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Käyttöoikeudet"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Ilmoitukset"
|
||||
@@ -3490,19 +3510,17 @@ msgstr "Salasana:"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:30
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:59
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit device"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Edit Sticker"
|
||||
msgstr "Muokkaa laitetta"
|
||||
msgstr "Muokkaa tarraa"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:30
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:109
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a sticker"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Add Sticker"
|
||||
msgstr "lähetti tarran"
|
||||
msgstr "Lisää tarra"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:59
|
||||
@@ -3521,10 +3539,9 @@ msgid "Add Emoji"
|
||||
msgstr "Lisää emoji…"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a sticker"
|
||||
#, kde-format
|
||||
msgid "Sticker"
|
||||
msgstr "lähetti tarran"
|
||||
msgstr "Tarra"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, fuzzy, kde-format
|
||||
@@ -3533,27 +3550,24 @@ msgid "Emoji"
|
||||
msgstr "Ei emojeja"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Change the room name"
|
||||
#, kde-format
|
||||
msgid "Change Image"
|
||||
msgstr "Muuta huoneen nimeä"
|
||||
msgstr "Vaihda kuva"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:69
|
||||
#, kde-format
|
||||
msgid "Set Image"
|
||||
msgstr ""
|
||||
msgstr "Aseta kuva"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:109
|
||||
#, kde-format
|
||||
msgid "Shortcode:"
|
||||
msgstr ""
|
||||
msgstr "Lyhytkoodi:"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:114
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "The location being downloaded to"
|
||||
#| msgid "Destination"
|
||||
#, kde-format
|
||||
msgid "Description:"
|
||||
msgstr "Kohde"
|
||||
msgstr "Kuvaus:"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:77
|
||||
#, fuzzy, kde-format
|
||||
@@ -3570,10 +3584,9 @@ msgid "Add Emoji"
|
||||
msgstr "Lisää emoji…"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a sticker"
|
||||
#, kde-format
|
||||
msgid "Add Sticker"
|
||||
msgstr "lähetti tarran"
|
||||
msgstr "Lisää tarra"
|
||||
|
||||
#: src/qml/Settings/GeneralSettingsPage.qml:15
|
||||
#: src/qml/Settings/NetworkProxyPage.qml:14
|
||||
@@ -3878,9 +3891,7 @@ msgid "About KDE"
|
||||
msgstr "Tietoa KDE:stä"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:28
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@window:title"
|
||||
#| msgid "Spellchecking"
|
||||
#, kde-format
|
||||
msgid "Spellchecking"
|
||||
msgstr "Oikeinkirjoituksen tarkistus"
|
||||
|
||||
@@ -3912,13 +3923,12 @@ msgstr "Valittu oletuskieli:"
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:82
|
||||
#, kde-format
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
msgstr "Ei mitään"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:101
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Spell checking languages"
|
||||
#, kde-format
|
||||
msgid "Additional spell checking languages"
|
||||
msgstr "Oikeinkirjoituksen tarkistuksen kielet"
|
||||
msgstr "Oikeinkirjoituksen tarkistuksen lisäkielet"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:102
|
||||
#, kde-format
|
||||
@@ -3935,18 +3945,16 @@ msgid "Open Personal Dictionary"
|
||||
msgstr "Avaa henkilökohtainen sanasto"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:125
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Spell checking languages"
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Spell checking languages"
|
||||
msgstr "Oikeinkirjoituksen tarkistuksen kielet"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:134
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:144
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Selected default language:"
|
||||
#, kde-format
|
||||
msgid "Default Language"
|
||||
msgstr "Valittu oletuskieli:"
|
||||
msgstr "Oletuskieli"
|
||||
|
||||
#: src/qml/Settings/SonnetConfigPage.qml:156
|
||||
#, kde-format
|
||||
@@ -4076,9 +4084,6 @@ msgstr "Lopeta"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Tallenna nimellä"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Sulje"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(muokattu)"
|
||||
|
||||
|
||||
143
po/fr/neochat.po
143
po/fr/neochat.po
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-07 09:43+0200\n"
|
||||
"Last-Translator: Xavier BESNARD <xavier.besnard@neuf.fr>\n"
|
||||
"Language-Team: fr\n"
|
||||
@@ -123,91 +123,91 @@ msgstr "Destination"
|
||||
msgid "Network Error"
|
||||
msgstr "Erreur du réseau"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Client « Matrix »"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat 2020-2023 Communauté de KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mainteneur"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Auteur initial de Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Mainteneur de Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Xavier Besnard"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "xavier.besnard@neuf.fr"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Une bibliothèque Qt5 pour écrire des clients multi-plate-formes pour Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilé en regard de %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Un client pour le protocole de communications Matrix »"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Prend en charge le thème d'URL « matrix : »"
|
||||
@@ -659,24 +659,24 @@ msgstr "<i>[Ce message a été supprimé]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Ce message a été supprimé : %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[RÉDIGÉ]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[RÉDIGÉ : %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] " utilisateur %1 :"
|
||||
msgstr[1] " %1 utilisateurs :"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1091,7 +1091,7 @@ msgstr "Lat : %1, Long : %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Message chiffré"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1 : %2"
|
||||
@@ -1328,6 +1328,17 @@ msgstr "Émoticônes"
|
||||
msgid "Stickers"
|
||||
msgstr "Étiquettes auto-collantes"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Envoyer un emplacement"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1354,6 +1365,19 @@ msgstr "Rejeter"
|
||||
msgid "Accept"
|
||||
msgstr "Accepter"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notifications"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Vous êtes déjà dans ce salon."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1587,22 +1611,22 @@ msgstr "Sélectionner un fichier local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Image du presse-papier"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Aller au premier message non lu."
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Aller au message le plus ancien."
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Faites glisser les éléments ici pour les partager"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1610,13 +1634,13 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 est entrain d'écrire"
|
||||
msgstr[1] "%2 sont entrain d'écrire"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activer le chiffrement"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
@@ -1624,7 +1648,7 @@ msgstr ""
|
||||
"Il est impossible de désactiver le chiffrement, une fois que celui-ci est "
|
||||
"activé."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2026,18 +2050,18 @@ msgstr "Ouvrir un salon privé"
|
||||
msgid "Copy link"
|
||||
msgstr "Copier un lien"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Vérification de la session"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentement de l'utilisateur"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2047,17 +2071,17 @@ msgstr ""
|
||||
"avant de pouvoir l'utiliser. Veuillez cliquer sur le bouton ci-dessous pour "
|
||||
"les lire."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Démarrer une conversation"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Voulez-vous démarrer une discussion avec %1 ?"
|
||||
@@ -2252,7 +2276,7 @@ msgid "Ban"
|
||||
msgstr "Bannir"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2331,27 +2355,27 @@ msgstr "Rechercher « %1 »"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configurer les raccourcis Internet..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Supprimer des messages"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Supprimer un message"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Raison pour la suppression des messages récents de cet utilisateur"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Raison pour la suppression de ce message"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2652,8 +2676,8 @@ msgstr "Quitter un salon"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explorer les salons"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Créer des salons et des fils de discussions"
|
||||
@@ -2812,59 +2836,65 @@ msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Rechercher dans ce salon"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Supprimer le salon des signets"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Ajouter le salon comme signet"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Rechercher un utilisateur dans un salon"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Inviter des utilisateurs dans un salon"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "Membre %1"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Aucun numéro de membre"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Général"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Sécurité"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
@@ -4099,9 +4129,6 @@ msgstr "Quitter"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Enregistrer sous"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Fermer"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (modifié)"
|
||||
|
||||
|
||||
143
po/hu/neochat.po
143
po/hu/neochat.po
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-05-09 22:36+0200\n"
|
||||
"Last-Translator: K. Áron <aronkvh@gmail.com>\n"
|
||||
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
|
||||
@@ -129,91 +129,91 @@ msgstr "Célhely"
|
||||
msgid "Network Error"
|
||||
msgstr "Hálózati hiba"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix kliens"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© Black Hat, 2018-2020, A KDE közösség, 2020-2022"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Karbantartó"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "A Spectral eredeti készítője"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "A Quotient karbantartója"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Kiszel Kristóf, Kovács Áron"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "kiszel.kristof@gmail.com, aronkvh@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Qt5 könyvtár cross-platform Matrix kliensek létrehozásához"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (fordítva ezzel: %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Kliens a matrix kommunikációs protokollhoz"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Támogatja a 'matrix:' url sémát"
|
||||
@@ -661,24 +661,24 @@ msgstr "<i>[Törölt üzenet]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Törölt üzenet: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[KITAKARVA]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[KITAKARVA: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 felhasználó: "
|
||||
msgstr[1] "%1 felhasználó: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1093,7 +1093,7 @@ msgstr "Hossz.: %1, Szél.: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Titkosított üzenet"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1331,6 +1331,17 @@ msgstr "Emojik"
|
||||
msgid "Stickers"
|
||||
msgstr "Matricák"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Meghívás Hely"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Bezárás"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1357,6 +1368,19 @@ msgstr "Elutasítás"
|
||||
msgid "Accept"
|
||||
msgstr "Elfogadás"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Értesítések"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Már tagja vagy ennek a szobának."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1590,22 +1614,22 @@ msgstr "Helyi fájl kiválasztása"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Vágólap kép"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ugrás az első olvasatlan üzenetre"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ugrás a legújabb üzenetre"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Húzz ide elemeket a megosztásukhoz"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1613,19 +1637,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 gépel"
|
||||
msgstr[1] "%2 gépel"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "A titkosítás bekapcsolása"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "A titkosítást nem lehet majd kikapcsolni, ha egyszer bekapcsolta."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2019,18 +2043,18 @@ msgstr "Egy privát csevegés megnyitása"
|
||||
msgid "Copy link"
|
||||
msgstr "Link másolása"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Munkamenet-ellenőrzés"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Felhasználói hozzájárulás"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2039,17 +2063,17 @@ msgstr ""
|
||||
"A kezdőkiszolgálója a használati feltételek elfogadását kéri, mielőtt "
|
||||
"használhatná azt. Kattintson a lenti gombra az elolvasásukhoz."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Megnyitás"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Csevegés indítása"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Szeretnél csevegést indítani vele: %1 ?"
|
||||
@@ -2244,7 +2268,7 @@ msgid "Ban"
|
||||
msgstr "Letiltás"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2323,27 +2347,27 @@ msgstr "Keresés: '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Webes parancsikonok konfigurálása ..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Az üzenetek eltávolítása"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Az üzenet eltávolítása"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "A felhasználó legutóbbi üzeneteinek eltávolításának oka"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Az üzenet eltávolításának oka"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2644,8 +2668,8 @@ msgstr "Szoba elhagyása"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Szobák felfedezése"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Szobák és privát beszélgetések létrehozása"
|
||||
@@ -2806,59 +2830,65 @@ msgid "Search"
|
||||
msgstr "Keresés"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Keresés a szobában"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Eltávolítás a kedvencek közül"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Kedvenc"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Tagok"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Keresés a szobában lévő felhasználók között"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Meghívás a szobába"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 tag"
|
||||
msgstr[1] "%1 tag"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Nincs tagszám"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Általános"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Biztonság"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Engedélyek"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Értesítések"
|
||||
@@ -4099,9 +4129,6 @@ msgstr "Kilépés"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Mentés másként"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Bezárás"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(szerkesztve)"
|
||||
|
||||
|
||||
147
po/ia/neochat.po
147
po/ia/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-11 22:43+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-21 22:03+0200\n"
|
||||
"Last-Translator: giovanni <g.sora@tiscali.it>\n"
|
||||
"Language-Team: Interlingua <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ia\n"
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
msgid "Login Failed: Access Token invalid or revoked"
|
||||
msgstr "Accesso falleva: token de accesso invalide o revocate"
|
||||
msgstr "Accesso falleva: indicio (token) de accesso invalide o revocate"
|
||||
|
||||
#: src/controller.cpp:265 src/controller.cpp:270 src/login.cpp:99
|
||||
#, kde-format
|
||||
@@ -122,92 +122,92 @@ msgstr "Destination"
|
||||
msgid "Network Error"
|
||||
msgstr "Error de rete"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "Neochat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Cliente de Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020 -2023 Communitate de KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenitor"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original de Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Mantenitor de Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Giovanni Sora"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "g.sora@tiscali.it"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Un bibliotheca de Qt5 per scriber clientes de cross-platform (platteformas "
|
||||
"cruciate) per Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (construite contra %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente per le protocollo de cmmmunication de matrice"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Supporta matrix: url schema"
|
||||
@@ -652,24 +652,24 @@ msgstr "<i>[Iste message ha essite delite]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Iste message esseva delite: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REAGITE]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REAGITE: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 Usator: "
|
||||
msgstr[1] "%1 Usatores:"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1084,7 +1084,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Message Cryptate"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1318,6 +1318,17 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Etiquettas Gummate (Stickers)"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Invia un location"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Claude"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1344,6 +1355,19 @@ msgstr "Rejecta"
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notificationes"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Tu ja es in iste sala"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1577,22 +1601,22 @@ msgstr "Selige file local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Image de Area de transferentia"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Salta al prime message non legite"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Salta al ultime message"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Trahe elementos hic per compartir los"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1600,19 +1624,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 es typante"
|
||||
msgstr[1] "%2 es typante"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activa cryptation"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1973,18 +1997,18 @@ msgstr "Aperi in conversation private"
|
||||
msgid "Copy link"
|
||||
msgstr "Copia Ligamine"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Veification de Session"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consenso de usator"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -1994,17 +2018,17 @@ msgstr ""
|
||||
"conditiones ante poter usar lo. Pro favor tu clicca le button a basso per "
|
||||
"leger los."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Aperi"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Initia un conversation"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Tu vole initiar un conversation con %1"
|
||||
@@ -2199,7 +2223,7 @@ msgid "Ban"
|
||||
msgstr "Prohibi (Ban)"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2278,27 +2302,27 @@ msgstr "Cerca '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configura vias breve de Web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Remove messages"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Remove message"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2599,8 +2623,8 @@ msgstr "Lassa sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explora salas"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Crea salas e conversationes"
|
||||
@@ -2759,59 +2783,65 @@ msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Cerca in iste sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Remove sala ex favoritos"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Face sala favorite"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Cerca usator in sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invita usator a sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 Member"
|
||||
msgstr[1] "%1 Membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Necun computo de membro"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Securitate"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permissiones"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificationes"
|
||||
@@ -4014,9 +4044,6 @@ msgstr "Quita"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Salveguarda como"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Claude"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(edited)"
|
||||
|
||||
|
||||
221
po/id/neochat.po
221
po/id/neochat.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-05-19 10:51+0700\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
"Language: id\n"
|
||||
@@ -80,16 +80,14 @@ msgid "Contact your matrix server administrator for support."
|
||||
msgstr "Hubungi administrator server Matrix Anda untuk dukungan."
|
||||
|
||||
#: src/controller.cpp:531
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Pembuatan ruangan gagal: \"%1\""
|
||||
msgstr "Pembuatan ruangan gagal: %1"
|
||||
|
||||
#: src/controller.cpp:552
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Pembuatan ruangan gagal: \"%1\""
|
||||
msgstr "Pembuatan space gagal: %1"
|
||||
|
||||
#: src/controller.cpp:566
|
||||
#, kde-format
|
||||
@@ -125,90 +123,90 @@ msgstr "Tujuan"
|
||||
msgid "Network Error"
|
||||
msgstr "Kesalahan Jaringan"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Klien Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 Komunitas KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Pemelihara"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Penulis asli Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Pemelihara Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Linerly"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "linerly@protonmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Sebuah pustaka Qt5 untuk membuat klien lintas platform untuk Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (dibangun pada %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Klien untuk protokol komunikasi Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Mendukung skema URL matrix:"
|
||||
@@ -635,18 +633,16 @@ msgid "Custom"
|
||||
msgstr "Kustom"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Own Stickers"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own Stickers'"
|
||||
msgid "Own Stickers"
|
||||
msgstr "Stiker Sendiri"
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emojis"
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr "Emoji"
|
||||
msgstr "Emoji Sendiri"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
@@ -658,24 +654,24 @@ msgstr "<i>[Pesan ini telah dihapus]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Pesan ini telah dihapus: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[DIHAPUS]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[DIHAPUS: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "%1 pengguna: "
|
||||
msgstr[1] "%1 pengguna"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1090,7 +1086,7 @@ msgstr "Lintang: %1, Bujur: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Pesan Terenkripsi"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1303,10 +1299,9 @@ msgid "Available Room Versions"
|
||||
msgstr "Versi Ruangan yang Tersedia"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Stickers"
|
||||
#, kde-format
|
||||
msgid "No stickers"
|
||||
msgstr "Stiker"
|
||||
msgstr "Tidak ada stiker"
|
||||
|
||||
#: src/qml/Component/Emoji/EmojiGrid.qml:83
|
||||
#, kde-format
|
||||
@@ -1327,6 +1322,17 @@ msgstr "Emoji"
|
||||
msgid "Stickers"
|
||||
msgstr "Stiker"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Kirim Lokasi"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Tutup"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1353,6 +1359,19 @@ msgstr "Tolak"
|
||||
msgid "Accept"
|
||||
msgstr "Terima"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notifikasi"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Anda sudah ada di ruangan ini."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1585,22 +1604,22 @@ msgstr "Pilih berkas lokal"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Gambar papan klip"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Pergi ke pesan pertama yang belum dibaca"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Pergi ke pesan terkini"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Seret item ke sini untuk membagikannya"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1608,19 +1627,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 sedang mengetik"
|
||||
msgstr[1] "%2 sedang mengetik"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Aktifkan Enkripsi"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Menonaktifkan enkripsi tidak dimungkinkan setelah diaktifkan."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1663,38 +1682,30 @@ msgstr "Oke"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:15
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create a Space"
|
||||
msgstr "Tinggalkan Space"
|
||||
msgstr "Buat Space"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Create a Space"
|
||||
msgstr "Tinggalkan Space"
|
||||
msgstr "Buat Space"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:27
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@option:check"
|
||||
#| msgid "Space members"
|
||||
#, kde-format
|
||||
msgid "Space name"
|
||||
msgstr "Anggota space"
|
||||
msgstr "Nama space"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:31
|
||||
#, kde-format
|
||||
msgid "Space topic (optional)"
|
||||
msgstr ""
|
||||
msgstr "Topik space (opsional)"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create space"
|
||||
msgstr "Tinggalkan Space"
|
||||
msgstr "Buat space"
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/EmojiSas.qml:23
|
||||
#, kde-format
|
||||
@@ -2010,18 +2021,18 @@ msgstr "Buka sebuah obrolan privat"
|
||||
msgid "Copy link"
|
||||
msgstr "Salin tautan"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verifikasi Sesi"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Persetujuan pengguna"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2030,17 +2041,17 @@ msgstr ""
|
||||
"Homeserver Anda membutuhkan Anda untuk menerima syarat dan kondisi sebelum "
|
||||
"Anda dapat menggunakannya. Mohon klik tombol di bawah untuk membacanya."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Buka"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Mulai sebuah obrolan"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Apakah Anda ingin memulai sebuah obrolan dengan %1?"
|
||||
@@ -2235,7 +2246,7 @@ msgid "Ban"
|
||||
msgstr "Cekal"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2314,27 +2325,27 @@ msgstr "Cari '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Konfigurasi Pintasan Web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Hapus Pesan"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Hapus Pesan"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Alasan untuk menghapus pesan terkini pengguna ini"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Alasan untuk menghapus pesan ini"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2635,8 +2646,8 @@ msgstr "Tinggalkan Ruangan"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Jelajahi ruangan"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Buat ruangan dan percakapan"
|
||||
@@ -2795,59 +2806,65 @@ msgid "Search"
|
||||
msgstr "Cari"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Cari di ruangan ini"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Hilangkan ruangan dari favorit"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Buat ruangan sebagai favorit"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Anggota"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Cari pengguna di ruangan"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Undang pengguna ke ruangan"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 anggota"
|
||||
msgstr[1] "%1 Anggota"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Tidak ada hitungan anggota"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Umum"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Keamanan"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Perizinan"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notifikasi"
|
||||
@@ -3511,19 +3528,17 @@ msgstr "Tambahkan Stiker"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:59
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Edit Emoji"
|
||||
msgstr "Tambahkan Emoji..."
|
||||
msgstr "Sunting Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:109
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Add Emoji"
|
||||
msgstr "Tambahkan Emoji..."
|
||||
msgstr "Tambahkan Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, kde-format
|
||||
@@ -3531,8 +3546,7 @@ msgid "Sticker"
|
||||
msgstr "Stiker"
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emojis"
|
||||
#, kde-format
|
||||
msgid "Emoji"
|
||||
msgstr "Emoji"
|
||||
|
||||
@@ -3557,18 +3571,15 @@ msgid "Description:"
|
||||
msgstr "Deskripsi:"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:77
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "As in 'This sticker has no description'"
|
||||
#| msgid "No Description"
|
||||
#, kde-format
|
||||
msgctxt "As in 'This sticker/emoji has no description'"
|
||||
msgid "No Description"
|
||||
msgstr "Tidak ada deskripsi"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgid "Add Emoji"
|
||||
msgstr "Tambahkan Emoji..."
|
||||
msgstr "Tambahkan Emoji"
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, kde-format
|
||||
@@ -3859,10 +3870,9 @@ msgid "Appearance"
|
||||
msgstr "Tampilan"
|
||||
|
||||
#: src/qml/Settings/SettingsPage.qml:37
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Stickers"
|
||||
#, kde-format
|
||||
msgid "Stickers & Emojis"
|
||||
msgstr "Stiker"
|
||||
msgstr "Stiker & Emoji"
|
||||
|
||||
#: src/qml/Settings/SettingsPage.qml:44
|
||||
#, kde-format
|
||||
@@ -4074,9 +4084,6 @@ msgstr "Keluar"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Simpan sebagai"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Tutup"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (disunting)"
|
||||
|
||||
|
||||
142
po/ie/neochat.po
142
po/ie/neochat.po
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
@@ -128,92 +128,92 @@ msgstr "Inviar un invitation"
|
||||
msgid "Network Error"
|
||||
msgstr "Errore de rete"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Un cliente de Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 li comunité de KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "OIS"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "mistresssilvara@hotmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Un biblioteca usante Qt5 por scrir transplatformal clientes por Matrix."
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Un cliente del protocol de communication Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Ínsupportat schema de URL"
|
||||
@@ -701,24 +701,24 @@ msgstr "<i>[Ti missage esset removet]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Ti missage esset removet: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[CENSURAT]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[CENSURAT: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1142,7 +1142,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Ciffrat missage"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1387,6 +1387,17 @@ msgstr "Converter smileys a emojis"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Inviar un invitation"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Cluder"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1413,6 +1424,19 @@ msgstr "Rejecter"
|
||||
msgid "Accept"
|
||||
msgstr "Acceptar"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notificationes"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Vu ja es in ti chambre."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1648,22 +1672,22 @@ msgstr "Selecter un local file"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Image in li Paperiere"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ear al prim ínleet missage"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ear al ultim missage"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1671,19 +1695,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 tippa"
|
||||
msgstr[1] "%2 tippa"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Fine de vive"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2058,35 +2082,35 @@ msgstr "Aperte un privat conversation"
|
||||
msgid "Copy link"
|
||||
msgstr "Copiar"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verification del session"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consente del usator"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Aperter"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Iniciar conversation"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Esque vu vole iniciar un conversation con %1?"
|
||||
@@ -2282,7 +2306,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2364,29 +2388,29 @@ msgstr "Serchar por «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configurar abreviationes de web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Report Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "Raportar li missage"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Report Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "Raportar li missage"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, fuzzy, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Raportante spam..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, fuzzy, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Raportante spam..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2689,8 +2713,8 @@ msgstr "Forlassar li chambre"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explorar chambres"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2858,30 +2882,35 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Saliente Cinnamon"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, fuzzy, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Remover ex li preferat"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, fuzzy, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "chambre"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Saliente Cinnamon"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invitar un usator"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2890,29 +2919,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membre"
|
||||
msgstr[1] "%1 membres"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Sin númere de membres"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Securitá"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificationes"
|
||||
@@ -4172,9 +4201,6 @@ msgstr "Surtir"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Gardar quam"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Cluder"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (Modificat)"
|
||||
|
||||
|
||||
143
po/it/neochat.po
143
po/it/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 15:52+0200\n"
|
||||
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
|
||||
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
|
||||
@@ -122,90 +122,90 @@ msgstr "Destinazione"
|
||||
msgid "Network Error"
|
||||
msgstr "Errore di rete"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Client Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 La comunità KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsabile"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autore originale di Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Responsabile di Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Vincenzo Reale"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "smart2128vr@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Una libreria Qt5 per scrivere client multipiattaforma per Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilato con %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client per il protocollo di comunicazione matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Supporta schema URL matrix:"
|
||||
@@ -653,24 +653,24 @@ msgstr "<i>[Questo messaggio è stato eliminato]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Questo messaggio è stato eliminato: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REDATTO]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REDATTO: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 utente: "
|
||||
msgstr[1] "%1 utenti: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1085,7 +1085,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Messaggio cifrato"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1321,6 +1321,17 @@ msgstr "Emoji"
|
||||
msgid "Stickers"
|
||||
msgstr "Adesivi"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Invia una località"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Chiudi"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1347,6 +1358,19 @@ msgstr "Rifiuta"
|
||||
msgid "Accept"
|
||||
msgstr "Accetta"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Notifiche"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Sei già in questa stanza."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1580,22 +1604,22 @@ msgstr "Scegli file locale"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Immagine dagli appunti"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Passa al primo messaggio non letto"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Salta all'ultimo messaggio"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Trascina qui gli elementi per condividerli"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1603,20 +1627,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 sta scrivendo"
|
||||
msgstr[1] "%2 stanno scrivendo"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Attiva la cifratura"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
"Non sarà possibile disattivare la cifratura dopo che è stata abilitata."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2013,18 +2037,18 @@ msgstr "Apri una chat privata"
|
||||
msgid "Copy link"
|
||||
msgstr "Copia collegamento"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verifica della sessione"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consenso dell'utente"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2033,17 +2057,17 @@ msgstr ""
|
||||
"Il tuo server ti richiede di accettare i suoi termini e le sue condizioni "
|
||||
"prima di poterlo utilizzare. Fai clic sul pulsante in basso per leggerli."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Apri"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Avvia una chat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Vuoi iniziare una chat con %1?"
|
||||
@@ -2238,7 +2262,7 @@ msgid "Ban"
|
||||
msgstr "Bando"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2317,27 +2341,27 @@ msgstr "Cerca «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configura le scorciatoie web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Rimuovi i messaggi"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Rimuovi il messaggio"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Motivo per la rimozione dei messaggi recenti di questo utente"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Motivo per la rimozione di questo messaggio"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2638,8 +2662,8 @@ msgstr "Lascia la stanza"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Esplora le stanze"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Crea stanze e chat"
|
||||
@@ -2798,59 +2822,65 @@ msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Cerca in questa stanza"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Rimuovi la stanza dai preferiti"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Rendi preferita la stanza"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membri"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Cerca l'utente nella stanza"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Invita utente alla stanza"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membro"
|
||||
msgstr[1] "%1 membri"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Nessun conteggio dei membri"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Generale"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Sicurezza"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permessi"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notifiche"
|
||||
@@ -4084,9 +4114,6 @@ msgstr "Esci"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Salva come"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Chiudi"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (modificato)"
|
||||
|
||||
|
||||
136
po/ja/neochat.po
136
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
@@ -118,90 +118,90 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -644,23 +644,23 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1073,7 +1073,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1307,6 +1307,16 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1333,6 +1343,17 @@ msgstr ""
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1563,41 +1584,41 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1958,35 +1979,35 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2181,7 +2202,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2260,27 +2281,27 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2579,8 +2600,8 @@ msgstr ""
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2740,57 +2761,62 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
141
po/ka/neochat.po
141
po/ka/neochat.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-10 06:34+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-25 10:17+0200\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ka\n"
|
||||
@@ -122,91 +122,91 @@ msgstr "დანიშნულება"
|
||||
msgid "Network Error"
|
||||
msgstr "ქსელის შეცდომა"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix -ის კლიენტი"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
"© 2018-2020 Black Hat, 2020-2023 KDE -ის საზოგადოება, ყველა უფლება დაცულია"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "წამყვანი პროგრამისტი"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "ჯეიმს გრეჰემი"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral- ის ორიგინალური ავტორი"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "ალექსეი რუსაკოვი"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "კოვოტიენტის პროგრამისტი"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Temuri Doghonadze"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "Temuri.doghonadze@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Qt5 ბიბლიოთეკა Matrix-ისთვის კლიენტების დასაწერად"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (აგებულია %2-ით)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "კლიენტი Matrix-ის კომუნიკაციის პროტოკოლისთვის"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Matrix-ის მხარდჭერა: ბმული სქემა"
|
||||
@@ -651,24 +651,24 @@ msgstr "<i>[ეს შეტყობინება წაშლილია]</
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[ეს შეტყობინება წაშლილია: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ჩასწორებული]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ჩასწორებულია: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 მომხმარებელი: "
|
||||
msgstr[1] "%1 მომხმარებელი: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1083,7 +1083,7 @@ msgstr "გან: %1, გრძ: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "დაშიფრული შეტყობინება"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1319,6 +1319,16 @@ msgstr "ემოჯიები"
|
||||
msgid "Stickers"
|
||||
msgstr "სტიკერები"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "მდებარეობის ნახვა"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "დახურვა"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1345,6 +1355,17 @@ msgstr "უარყოფა"
|
||||
msgid "Accept"
|
||||
msgstr "დასტური"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "მდებარეობები"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "ამ ოთახში მდებარეობები გაზიარებული არაა."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1578,22 +1599,22 @@ msgstr "აირჩიეთ ლოკალური ფაილი"
|
||||
msgid "Clipboard image"
|
||||
msgstr "ბუფერის გამოსახულება"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "პირველ წაუკითხავ შეტყობინებაზე გადასვლა"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "უახლეს შეტყობინებებზე გადასვლა"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "გადმოათრიეთ საგნები აქ, მათ გასაზიარებლად"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1601,19 +1622,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 კრეფს"
|
||||
msgstr[1] "%2 კრეფს"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "დაშიფვრის გააქტიურება"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "დაშიფვრის გამორთვა მისი ჩართვის შემდეგ შეუძლებელია."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1986,18 +2007,18 @@ msgstr "პირადი საუბრის გახსნა"
|
||||
msgid "Copy link"
|
||||
msgstr "ბმულის კოპირება"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "სესიის გადამოწმება"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "მომხმარებლის თანხმობა"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2006,17 +2027,17 @@ msgstr ""
|
||||
"თქვენი სახლის სერვერის გამოყენებამდე საჭიროა მის პირობებს და ლიცენზიას "
|
||||
"დაეთანხმოთ. მის წასაკითხად ქვემოთ ღილაკს დააჭირეთ."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "გახსნა"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "საუბრის დაწყება"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "გნებავთ დაიწყოთ საუბარი %1-სთან?"
|
||||
@@ -2211,7 +2232,7 @@ msgid "Ban"
|
||||
msgstr "ბანი"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2290,27 +2311,27 @@ msgstr "%1-იs მოძებნა"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "ვებ მალსახმობების მორგება..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "შეტყობინებების წაშლა"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "შეტყობინების წაშლა"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "ამ მომხმარებლის უახლესი მომხმარებლების წაშლის მიზეზი"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "ამ შეტყობინების წაშლის მიზეზი"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2611,8 +2632,8 @@ msgstr "ოთახიდან გასვლა"
|
||||
msgid "Explore rooms"
|
||||
msgstr "ოთახების დათვალიერება"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "ჩატებისა და ოთახების შექმნა"
|
||||
@@ -2772,58 +2793,63 @@ msgstr "ძებნა"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "ამ ოთახისთვის მდებარეობების ჩვენება"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "ოთახის რჩეულებიდან წაშლა"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "ოთახის რჩეულად მონიშვნა"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "წევრები"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "ოთახში მომხმარებლის ძებნა"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "მომხმარებლის ოთახში მოწვევა"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 წევრი"
|
||||
msgstr[1] "%1 წევრი"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "წევრების რაოდენობის გარეშე"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "ზოგადი"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "უსაფრთხოება"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "უფლებები"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "გაფრთხილებები"
|
||||
@@ -4036,9 +4062,6 @@ msgstr "დატოვება"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "შენახვა, როგორც"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "დახურვა"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (ჩასწორებულია)"
|
||||
|
||||
|
||||
143
po/ko/neochat.po
143
po/ko/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-09 13:27+0200\n"
|
||||
"Last-Translator: Shinjo Park <kde@peremen.name>\n"
|
||||
"Language-Team: Korean <kde-kr@kde.org>\n"
|
||||
@@ -129,91 +129,91 @@ msgstr "초대 보내기"
|
||||
msgid "Network Error"
|
||||
msgstr "네트워크 오류"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix 클라이언트"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "박신조"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "kde@peremen.name"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "크로스 플랫폼 Matrix 클라이언트를 작성할 수 있는 Qt5 라이브러리"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix 대화 프로토콜 클라이언트"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Supports appstream: url scheme"
|
||||
msgid "Supports matrix: url scheme"
|
||||
@@ -724,23 +724,23 @@ msgstr "<i>[이 메시지가 삭제됨]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[이 메시지가 삭제됨: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[검열됨]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[검열됨: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1182,7 +1182,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "메시지 편집"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1436,6 +1436,17 @@ msgstr "사용자 정의 이모지"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "초대 보내기"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "닫기"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1462,6 +1473,19 @@ msgstr "거부"
|
||||
msgid "Accept"
|
||||
msgstr "수락"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "알림 표시"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "이 대화방에서 NeoChat 열기"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1696,42 +1720,42 @@ msgstr "로컬 파일 선택"
|
||||
msgid "Clipboard image"
|
||||
msgstr "클립보드의 그림"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "첫 읽지 않은 메시지로 이동"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "최신 메시지로 이동"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "공유할 항목을 여기에 드래그"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 님이 메시지를 입력하는 중"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "님이 종단간 암호화를 활성화함"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2107,19 +2131,19 @@ msgstr "개인 대화 열기"
|
||||
msgid "Copy link"
|
||||
msgstr "복사"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "알림 표시"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "사용자 동의"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2128,17 +2152,17 @@ msgstr ""
|
||||
"홈 서버를 사용하기 전에 사용 조건에 동의해야 합니다. 아래 단추를 클릭하여 읽"
|
||||
"으십시오."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "열기"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "대화 시작"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "%1 님과 대화를 시작하시겠습니까?"
|
||||
@@ -2335,7 +2359,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2417,29 +2441,29 @@ msgstr "'%1' 검색"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "웹 바로 가기 설정..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "메시지 편집"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "메시지 편집"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2753,8 +2777,8 @@ msgstr "대화방 떠나기"
|
||||
msgid "Explore rooms"
|
||||
msgstr "대화방 탐색"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2926,33 +2950,39 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "이 대화방에서 NeoChat 열기"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "책갈피에서 대화방 삭제"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "책갈피에 대화방 추가"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "구성원"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "이 대화방에서 NeoChat 열기"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 invited you to a room"
|
||||
msgid "Invite user to room"
|
||||
msgstr "%1 님이 대화방에 초대함"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2960,29 +2990,29 @@ msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "구성원 %1명"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "구성원 집계 없음"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "일반"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "보안"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgid "Notifications"
|
||||
@@ -4294,9 +4324,6 @@ msgstr "끝내기"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "다른 이름으로 저장"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "닫기"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(편집됨)"
|
||||
|
||||
|
||||
136
po/lt/neochat.po
136
po/lt/neochat.po
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-02-25 01:00+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -122,90 +122,90 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -652,17 +652,17 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -671,7 +671,7 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1088,7 +1088,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1322,6 +1322,16 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1348,6 +1358,17 @@ msgstr ""
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1580,22 +1601,22 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1604,19 +1625,19 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1977,35 +1998,35 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2200,7 +2221,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2279,27 +2300,27 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2598,8 +2619,8 @@ msgstr ""
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2759,30 +2780,35 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2791,28 +2817,28 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
145
po/nl/neochat.po
145
po/nl/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 11:04+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 12:16+0200\n"
|
||||
"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: nl\n"
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 23.04.1\n"
|
||||
"X-Generator: Lokalize 23.04.2\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
#, kde-format
|
||||
@@ -122,90 +122,90 @@ msgstr "Bestemming"
|
||||
msgid "Network Error"
|
||||
msgstr "Netwerkfout"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "Neochat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-client"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 KDE-gemeenschap"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Onderhouder"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Oorspronkelijke auteur van Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Onderhouder van Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Freek de Kruijf - 2020 t/m 2022"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "freekdekruijf@kde.nl"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Een Qt5 bibliotheek om cross-platform clients voor Matrix te schrijven"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (gebouwd tegen %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Client voor het matrix communicatieprotocol"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Ondersteunt matrix: url schema"
|
||||
@@ -650,24 +650,24 @@ msgstr "<i>[Dit bericht is verwijderd]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Dit bericht is verwijderd: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[GEREDIGEERD]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[GEREDIGEERD: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 gebruiker: "
|
||||
msgstr[1] "%1 gebruikers "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1082,7 +1082,7 @@ msgstr "Bte: %1, Lte: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Versleuteld bericht"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1318,6 +1318,16 @@ msgstr "Emoji's"
|
||||
msgid "Stickers"
|
||||
msgstr "Stickers"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Locatie bekijken"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Sluiten"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1344,6 +1354,17 @@ msgstr "Afwijzen"
|
||||
msgid "Accept"
|
||||
msgstr "Accepteren"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Locaties"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Er worden geen locaties in deze room gedeeld."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1577,22 +1598,22 @@ msgstr "Lokaal bestand kiezen"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Afbeelding in klembord"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Naar het eerste ongelezen bericht gaan"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Naar het laatste bericht gaan"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Items hierheen verslepen om ze te delen"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1600,13 +1621,13 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 is bezig met typen"
|
||||
msgstr[1] "%2 zijn bezig met het typen"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Versleuteling activeren"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
@@ -1614,7 +1635,7 @@ msgstr ""
|
||||
"Het zal niet mogelijk zijn om de versleuteling te deactiveren nadat het is "
|
||||
"ingeschakeld."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2008,18 +2029,18 @@ msgstr "Een privé chat openen"
|
||||
msgid "Copy link"
|
||||
msgstr "Koppeling kopiëren"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verificatie van sessie"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Toestemming van gebruiker"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2028,17 +2049,17 @@ msgstr ""
|
||||
"Uw homeserver vereist dat u met deze termen en voorwaarden instemt alvorens "
|
||||
"u deze kunt gebruiken. Klik op de ondersteunde knop om ze te lezen."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Openen"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Een chat starten"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Wilt u een chat beginnen met %1?"
|
||||
@@ -2233,7 +2254,7 @@ msgid "Ban"
|
||||
msgstr "Verbannen"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2312,27 +2333,27 @@ msgstr "Zoeken naar '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Websnelkoppelingen configureren..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Berichten verwijderen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Bericht verwijderen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Reden om deze recente berichten van de gebruiker te verwijderen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Reden om dit bericht te verwijderen"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2633,8 +2654,8 @@ msgstr "Room verlaten"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Rooms verkennen"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Rooms en chats aanmaken"
|
||||
@@ -2749,7 +2770,7 @@ msgstr "Welkom bij Matrix"
|
||||
#: src/qml/Panel/GroupChatDrawerHeader.qml:55
|
||||
#, kde-format
|
||||
msgid "No name"
|
||||
msgstr "Freek de Kruijf - 2020"
|
||||
msgstr "Geen naam"
|
||||
|
||||
#: src/qml/Panel/GroupChatDrawerHeader.qml:61
|
||||
#, kde-format
|
||||
@@ -2794,58 +2815,63 @@ msgstr "Zoeken"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Locaties in deze room tonen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Room uit favorieten verwijderen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Room als favoriet instellen"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Leden"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Gebruiker in room zoeken"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Gebruiker uitnodigen in room"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 lid"
|
||||
msgstr[1] "%1 leden"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Geen aantal leden"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Algemeen"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Beveiliging"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Toegangsrechten"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Meldingen"
|
||||
@@ -4067,9 +4093,6 @@ msgstr "Afsluiten"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Opslaan als"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Sluiten"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (bewerkt)"
|
||||
|
||||
|
||||
278
po/nn/neochat.po
278
po/nn/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-09 00:48+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2021-12-15 11:17+0100\n"
|
||||
"Last-Translator: Øystein Steffensen-Alværvik <oysteins.omsetting@protonmail."
|
||||
"com>\n"
|
||||
@@ -125,90 +125,90 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr "Nettverksfeil"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-klient"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Karl Ove Hufthammer"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "karl@huftis.org"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:323
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Lynmeldingsklient for Matrix-protokollen"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -643,35 +643,35 @@ msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:469 src/models/messageeventmodel.cpp:478
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
msgid "<i>[This message was deleted]</i>"
|
||||
msgstr "<i>[Denne meldinga er sletta]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:470
|
||||
#: src/models/messageeventmodel.cpp:478
|
||||
#, kde-format
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Denne meldinga er sletta: %1]</i>"
|
||||
|
||||
# Eller «SENSURERT»?
|
||||
#: src/models/messageeventmodel.cpp:545
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[TREKT TILBAKE]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:545
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[TREKT TILBAKE: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:854
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:861
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -729,353 +729,353 @@ msgstr "Låg prioritet"
|
||||
msgid "Spaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/searchmodel.cpp:164
|
||||
#: src/models/searchmodel.cpp:261
|
||||
#, kde-format
|
||||
msgid "Today"
|
||||
msgstr "I dag"
|
||||
|
||||
#: src/models/searchmodel.cpp:167
|
||||
#: src/models/searchmodel.cpp:264
|
||||
#, kde-format
|
||||
msgid "Yesterday"
|
||||
msgstr "I går"
|
||||
|
||||
#: src/models/searchmodel.cpp:170
|
||||
#: src/models/searchmodel.cpp:267
|
||||
#, kde-format
|
||||
msgid "The day before yesterday"
|
||||
msgstr "I forgårs"
|
||||
|
||||
#: src/neochatroom.cpp:527
|
||||
#: src/neochatroom.cpp:530
|
||||
#, kde-format
|
||||
msgid "a file"
|
||||
msgstr "ei fil"
|
||||
|
||||
#: src/neochatroom.cpp:578
|
||||
#: src/neochatroom.cpp:581
|
||||
#, kde-format
|
||||
msgid "reinvited %1 to the room"
|
||||
msgstr "inviterte %1 på nytt til rommet"
|
||||
|
||||
#: src/neochatroom.cpp:580
|
||||
#: src/neochatroom.cpp:583
|
||||
#, kde-format
|
||||
msgctxt "Optional reason for an invitation"
|
||||
msgid ": %1"
|
||||
msgstr ": %1"
|
||||
|
||||
#: src/neochatroom.cpp:589 src/neochatroom.cpp:734
|
||||
#: src/neochatroom.cpp:592 src/neochatroom.cpp:737
|
||||
#, kde-format
|
||||
msgid "joined the room (repeated)"
|
||||
msgstr "kom inn i rommet (på nytt)"
|
||||
|
||||
#: src/neochatroom.cpp:591
|
||||
#: src/neochatroom.cpp:594
|
||||
#, kde-format
|
||||
msgid "invited %1 to the room"
|
||||
msgstr "inviterte %1 til rommet"
|
||||
|
||||
#: src/neochatroom.cpp:591 src/neochatroom.cpp:736
|
||||
#: src/neochatroom.cpp:594 src/neochatroom.cpp:739
|
||||
#, kde-format
|
||||
msgid "joined the room"
|
||||
msgstr "kom inn i rommet"
|
||||
|
||||
#: src/neochatroom.cpp:595
|
||||
#: src/neochatroom.cpp:598
|
||||
#, kde-format
|
||||
msgid ": %1"
|
||||
msgstr ": %1"
|
||||
|
||||
#: src/neochatroom.cpp:602 src/neochatroom.cpp:744
|
||||
#: src/neochatroom.cpp:605 src/neochatroom.cpp:747
|
||||
#, kde-format
|
||||
msgctxt "their refers to a singular user"
|
||||
msgid "cleared their display name"
|
||||
msgstr "fjerna visingsnamnet"
|
||||
|
||||
#: src/neochatroom.cpp:604
|
||||
#: src/neochatroom.cpp:607
|
||||
#, kde-format
|
||||
msgctxt "their refers to a singular user"
|
||||
msgid "changed their display name to %1"
|
||||
msgstr "endra visingsnamn til %1"
|
||||
|
||||
#: src/neochatroom.cpp:609 src/neochatroom.cpp:751
|
||||
#: src/neochatroom.cpp:612 src/neochatroom.cpp:754
|
||||
#, kde-format
|
||||
msgid " and "
|
||||
msgstr " og "
|
||||
|
||||
#: src/neochatroom.cpp:612 src/neochatroom.cpp:754
|
||||
#: src/neochatroom.cpp:615 src/neochatroom.cpp:757
|
||||
#, kde-format
|
||||
msgctxt "their refers to a singular user"
|
||||
msgid "cleared their avatar"
|
||||
msgstr "fjerna avataren"
|
||||
|
||||
#: src/neochatroom.cpp:618 src/neochatroom.cpp:760
|
||||
#: src/neochatroom.cpp:621 src/neochatroom.cpp:763
|
||||
#, kde-format
|
||||
msgid "set an avatar"
|
||||
msgstr "valde ein avatar"
|
||||
|
||||
#: src/neochatroom.cpp:620 src/neochatroom.cpp:762
|
||||
#: src/neochatroom.cpp:623 src/neochatroom.cpp:765
|
||||
#, kde-format
|
||||
msgctxt "their refers to a singular user"
|
||||
msgid "updated their avatar"
|
||||
msgstr "bytte avataren sin"
|
||||
|
||||
#: src/neochatroom.cpp:624 src/neochatroom.cpp:766
|
||||
#: src/neochatroom.cpp:627 src/neochatroom.cpp:769
|
||||
#, kde-format
|
||||
msgctxt "<user> changed nothing"
|
||||
msgid "changed nothing"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:630
|
||||
#: src/neochatroom.cpp:633
|
||||
#, kde-format
|
||||
msgid "withdrew %1's invitation"
|
||||
msgstr "trekte tilbake invitasjonen til %1"
|
||||
|
||||
#: src/neochatroom.cpp:630 src/neochatroom.cpp:772
|
||||
#: src/neochatroom.cpp:633 src/neochatroom.cpp:775
|
||||
#, kde-format
|
||||
msgid "rejected the invitation"
|
||||
msgstr "avviste invitasjonen"
|
||||
|
||||
#: src/neochatroom.cpp:634
|
||||
#: src/neochatroom.cpp:637
|
||||
#, kde-format
|
||||
msgid "unbanned %1"
|
||||
msgstr "oppheva utestenging av %1"
|
||||
|
||||
#: src/neochatroom.cpp:634 src/neochatroom.cpp:776
|
||||
#: src/neochatroom.cpp:637 src/neochatroom.cpp:779
|
||||
#, kde-format
|
||||
msgid "self-unbanned"
|
||||
msgstr "utestengde seg sjølv"
|
||||
|
||||
#: src/neochatroom.cpp:637
|
||||
#: src/neochatroom.cpp:640
|
||||
#, kde-format
|
||||
msgid "has put %1 out of the room: %2"
|
||||
msgstr "fjerna %1 frå rommet: %2"
|
||||
|
||||
#: src/neochatroom.cpp:638 src/neochatroom.cpp:778
|
||||
#: src/neochatroom.cpp:641 src/neochatroom.cpp:781
|
||||
#, kde-format
|
||||
msgid "left the room"
|
||||
msgstr "forlét rommet"
|
||||
|
||||
#: src/neochatroom.cpp:642
|
||||
#: src/neochatroom.cpp:645
|
||||
#, kde-format
|
||||
msgid "banned %1 from the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:644
|
||||
#: src/neochatroom.cpp:647
|
||||
#, kde-format
|
||||
msgid "banned %1 from the room: %2"
|
||||
msgstr "utestengde %1 frå rommet: %2"
|
||||
|
||||
#: src/neochatroom.cpp:647 src/neochatroom.cpp:783
|
||||
#: src/neochatroom.cpp:650 src/neochatroom.cpp:786
|
||||
#, kde-format
|
||||
msgid "self-banned from the room"
|
||||
msgstr "utestengde seg sjølv frå rommet"
|
||||
|
||||
#: src/neochatroom.cpp:651 src/neochatroom.cpp:786
|
||||
#: src/neochatroom.cpp:654 src/neochatroom.cpp:789
|
||||
#, kde-format
|
||||
msgid "requested an invite"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:651
|
||||
#: src/neochatroom.cpp:654
|
||||
#, kde-format
|
||||
msgid "requested an invite with reason: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:655 src/neochatroom.cpp:790
|
||||
#: src/neochatroom.cpp:658 src/neochatroom.cpp:793
|
||||
#, kde-format
|
||||
msgid "made something unknown"
|
||||
msgstr "gjorde noko ukjend"
|
||||
|
||||
#: src/neochatroom.cpp:658 src/neochatroom.cpp:793
|
||||
#: src/neochatroom.cpp:661 src/neochatroom.cpp:796
|
||||
#, kde-format
|
||||
msgid "cleared the room main alias"
|
||||
msgstr "fjerna hovudaliaset til rommet"
|
||||
|
||||
#: src/neochatroom.cpp:658
|
||||
#: src/neochatroom.cpp:661
|
||||
#, kde-format
|
||||
msgid "set the room main alias to: %1"
|
||||
msgstr "bytte hovudalias for rommet til: %1"
|
||||
|
||||
#: src/neochatroom.cpp:661 src/neochatroom.cpp:796
|
||||
#: src/neochatroom.cpp:664 src/neochatroom.cpp:799
|
||||
#, kde-format
|
||||
msgid "cleared the room name"
|
||||
msgstr "fjerna romnamnet"
|
||||
|
||||
#: src/neochatroom.cpp:661
|
||||
#: src/neochatroom.cpp:664
|
||||
#, kde-format
|
||||
msgid "set the room name to: %1"
|
||||
msgstr "bytte romnamnet til: %1"
|
||||
|
||||
#: src/neochatroom.cpp:664 src/neochatroom.cpp:799
|
||||
#: src/neochatroom.cpp:667 src/neochatroom.cpp:802
|
||||
#, kde-format
|
||||
msgid "cleared the topic"
|
||||
msgstr "tømte emnefeltet"
|
||||
|
||||
#: src/neochatroom.cpp:665
|
||||
#: src/neochatroom.cpp:668
|
||||
#, kde-format
|
||||
msgid "set the topic to: %1"
|
||||
msgstr "bytte emnet til: %1"
|
||||
|
||||
#: src/neochatroom.cpp:671 src/neochatroom.cpp:802
|
||||
#: src/neochatroom.cpp:674 src/neochatroom.cpp:805
|
||||
#, kde-format
|
||||
msgid "changed the room avatar"
|
||||
msgstr "bytte ut romavataren"
|
||||
|
||||
#: src/neochatroom.cpp:674 src/neochatroom.cpp:805
|
||||
#: src/neochatroom.cpp:677 src/neochatroom.cpp:808
|
||||
#, kde-format
|
||||
msgid "activated End-to-End Encryption"
|
||||
msgstr "slå på ende-til-ende-kryptering"
|
||||
|
||||
#: src/neochatroom.cpp:677
|
||||
#: src/neochatroom.cpp:680
|
||||
#, kde-format
|
||||
msgid "upgraded the room to version %1"
|
||||
msgstr "oppgraderte rommet til versjon %1"
|
||||
|
||||
#: src/neochatroom.cpp:678
|
||||
#: src/neochatroom.cpp:681
|
||||
#, kde-format
|
||||
msgid "created the room, version %1"
|
||||
msgstr "oppretta rommet, versjon %1"
|
||||
|
||||
#: src/neochatroom.cpp:681 src/neochatroom.cpp:811
|
||||
#: src/neochatroom.cpp:684 src/neochatroom.cpp:814
|
||||
#, kde-format
|
||||
msgctxt "'power level' means permission level"
|
||||
msgid "changed the power levels for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:685 src/neochatroom.cpp:815
|
||||
#: src/neochatroom.cpp:688 src/neochatroom.cpp:818
|
||||
#, kde-format
|
||||
msgid "changed the server access control lists for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:689
|
||||
#: src/neochatroom.cpp:692
|
||||
#, kde-format
|
||||
msgctxt "[User] added <name> widget"
|
||||
msgid "added %1 widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:692
|
||||
#: src/neochatroom.cpp:695
|
||||
#, kde-format
|
||||
msgctxt "[User] removed <name> widget"
|
||||
msgid "removed %1 widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:694
|
||||
#: src/neochatroom.cpp:697
|
||||
#, kde-format
|
||||
msgctxt "[User] configured <name> widget"
|
||||
msgid "configured %1 widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:696
|
||||
#: src/neochatroom.cpp:699
|
||||
#, kde-format
|
||||
msgid "updated %1 state"
|
||||
msgstr "oppdaterte %1-tilstand"
|
||||
|
||||
#: src/neochatroom.cpp:697
|
||||
#: src/neochatroom.cpp:700
|
||||
#, kde-format
|
||||
msgid "updated %1 state for %2"
|
||||
msgstr "oppdaterte %1-tilstand for %2"
|
||||
|
||||
#: src/neochatroom.cpp:704 src/neochatroom.cpp:834
|
||||
#: src/neochatroom.cpp:707 src/neochatroom.cpp:837
|
||||
#, kde-format
|
||||
msgid "Unknown event"
|
||||
msgstr "Ukjend hending"
|
||||
|
||||
#: src/neochatroom.cpp:717
|
||||
#: src/neochatroom.cpp:720
|
||||
#, kde-format
|
||||
msgid "sent a message"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:721
|
||||
#: src/neochatroom.cpp:724
|
||||
#, kde-format
|
||||
msgid "sent a sticker"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:727
|
||||
#: src/neochatroom.cpp:730
|
||||
#, kde-format
|
||||
msgid "reinvited someone to the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:736
|
||||
#: src/neochatroom.cpp:739
|
||||
#, kde-format
|
||||
msgid "invited someone to the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:746
|
||||
#: src/neochatroom.cpp:749
|
||||
#, kde-format
|
||||
msgctxt "their refers to a singular user"
|
||||
msgid "changed their display name"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:772
|
||||
#: src/neochatroom.cpp:775
|
||||
#, kde-format
|
||||
msgid "withdrew a user's invitation"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:776
|
||||
#: src/neochatroom.cpp:779
|
||||
#, kde-format
|
||||
msgid "unbanned a user"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:778
|
||||
#: src/neochatroom.cpp:781
|
||||
#, kde-format
|
||||
msgid "put a user out of the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:781
|
||||
#: src/neochatroom.cpp:784
|
||||
#, kde-format
|
||||
msgid "banned a user from the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:793
|
||||
#: src/neochatroom.cpp:796
|
||||
#, kde-format
|
||||
msgid "set the room main alias"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:796
|
||||
#: src/neochatroom.cpp:799
|
||||
#, kde-format
|
||||
msgid "set the room name"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:799
|
||||
#: src/neochatroom.cpp:802
|
||||
#, kde-format
|
||||
msgid "set the topic"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:808
|
||||
#: src/neochatroom.cpp:811
|
||||
#, kde-format
|
||||
msgid "upgraded the room version"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:808
|
||||
#: src/neochatroom.cpp:811
|
||||
#, kde-format
|
||||
msgid "created the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:819
|
||||
#: src/neochatroom.cpp:822
|
||||
#, kde-format
|
||||
msgid "added a widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:822
|
||||
#: src/neochatroom.cpp:825
|
||||
#, kde-format
|
||||
msgid "removed a widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:824
|
||||
#: src/neochatroom.cpp:827
|
||||
#, kde-format
|
||||
msgid "configured a widget"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:826
|
||||
#: src/neochatroom.cpp:829
|
||||
#, kde-format
|
||||
msgid "updated the state"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:831
|
||||
#: src/neochatroom.cpp:834
|
||||
#, kde-format
|
||||
msgid "started a poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:1730 src/neochatroom.cpp:1731
|
||||
#: src/neochatroom.cpp:1733 src/neochatroom.cpp:1734
|
||||
#, kde-format
|
||||
msgid "Report sent successfully."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatroom.cpp:2033 src/neochatroom.cpp:2041
|
||||
#: src/neochatroom.cpp:2036 src/neochatroom.cpp:2044
|
||||
#, kde-format
|
||||
msgctxt "'Lat' and 'Lon' as in Latitude and Longitude"
|
||||
msgid "Lat: %1, Lon: %2"
|
||||
@@ -1086,7 +1086,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1194,7 +1194,7 @@ msgctxt "@action:button"
|
||||
msgid "Cancel reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/ChatBox/ChatBox.qml:60
|
||||
#: src/qml/Component/ChatBox/ChatBox.qml:64
|
||||
#, kde-format
|
||||
msgid "NeoChat is offline. Please check your network connection."
|
||||
msgstr ""
|
||||
@@ -1320,6 +1320,16 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Lukk"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1346,6 +1356,17 @@ msgstr "Avvis"
|
||||
msgid "Accept"
|
||||
msgstr "Godta"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1577,22 +1598,22 @@ msgstr "Vel lokal fil"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Utklippstavle-bilete"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Gå til første ulesne melding"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Gå til nyaste melding"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Dra element her for å dela dei"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1600,19 +1621,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 skriv"
|
||||
msgstr[1] "%2 skriv"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1973,18 +1994,18 @@ msgstr "Start privat prat"
|
||||
msgid "Copy link"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Brukarsamtykke"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -1993,17 +2014,17 @@ msgstr ""
|
||||
"Heimetenaren krev at du godtek brukarvilkåra før du kan ta han i bruk. Trykk "
|
||||
"på knappen nedanfor for å lesa vilkåra."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Opna"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2198,7 +2219,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2277,27 +2298,27 @@ msgstr "Søk etter «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2598,8 +2619,8 @@ msgstr "Forlat rommet"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Utforsk rom"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2759,58 +2780,63 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Fjern rom frå favorittar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Gjer rom til favoritt"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Medlemmar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
143
po/pa/neochat.po
143
po/pa/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
@@ -131,91 +131,91 @@ msgstr "ਸੱਦਾ ਭੇਜੋ"
|
||||
msgid "Network Error"
|
||||
msgstr "ਨੈੱਟਵਰਕ ਗ਼ਲਤੀ"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "ਨਿਓ-ਚੈਟ"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "ਮੈਟਰਿਕਸ ਕਲਾਈਂਟ"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2021 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2021 KDE Community"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "ਕਾਰਲ ਸਚਵਾਨ"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "ਟੋਬਿਸ ਫੇਲਾ"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "ਅ.ਸ.ਆਲਮ ੨੦੨੧"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "alam.yellow@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -721,24 +721,24 @@ msgstr "<i>[ਇਹ ਸੁਨੇਹਾ ਹਟਾਇਆ ਗਿਆ ਸੀ]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[ਇਹ ਸੁਨੇਹਾ ਹਟਾਇਆ ਗਿਆ ਸੀ: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1173,7 +1173,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "ਸੁਨੇਹੇ ਨੂੰ ਸੋਧੋ"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1428,6 +1428,17 @@ msgstr "ਕਸਟਮ"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "ਸੱਦਾ ਭੇਜੋ"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "ਬੰਦ ਕਰੋ"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1454,6 +1465,19 @@ msgstr "ਰੱਦ ਕਰੋ"
|
||||
msgid "Accept"
|
||||
msgstr "ਮਨਜ਼ੂਰ ਕਰੋ"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਓ"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "ਇਸ ਰੂਮ ਵਿੱਚ ਨਿਓ-ਚੈਟ ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1688,22 +1712,22 @@ msgstr "ਲੋਕਲ ਫਾਇਲ ਚੁਣੋ"
|
||||
msgid "Clipboard image"
|
||||
msgstr "ਕਲਿੱਪਬੋਰਡ ਚਿੱਤਰ"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "ਪਹਿਲੇ ਨਾ-ਪੜ੍ਹੇ ਸੁਨੇਹੇ ਉੱਤੇ ਜਾਓ"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "ਸਭ ਤੋਂ ਨਵੇ ਸੁਨੇਹੇ ਉੱਤੇ ਜਾਓ"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1711,20 +1735,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 ਲਿਖ ਰਹੇ ਹਨ"
|
||||
msgstr[1] "%2 ਲਿਖ ਰਹੇ ਹਨ"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "ਸਿਰੇ ਤੋਂ ਸਿਰੇ ਤੱਕ ਇੰਕ੍ਰਿਪਸ਼ਨ ਸਰਗਰਮ ਕੀਤੀ"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2099,36 +2123,36 @@ msgstr "ਪ੍ਰਾਈਵੇਟ ਚੈਟ ਵਿੱਚ ਖੋਲ੍ਹੋ"
|
||||
msgid "Copy link"
|
||||
msgstr "ਕਾਪੀ ਕਰੋ"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਵੇਖਾਓ"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "ਵਰਤੋਂਕਾਰ ਸਹਿਮਤੀ"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "ਗੱਲਬਾਤ ਸ਼ੁਰੂ ਕਰੋ"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "ਕੀ ਤੁਸੀਂ %1 ਨਾਲ ਗੱਲਬਾਤ ਕਰਨੀ ਚਾਹੁੰਦੇ ਹੋ?"
|
||||
@@ -2327,7 +2351,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2409,29 +2433,29 @@ msgstr "'%1' ਲਈ ਖੋਜੋ"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "...ਵੈੱਬ ਸ਼ਾਰਟਕੱਟਾਂ ਦੀ ਸੰਰਚਨਾ ਕਰੋ"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "ਸੁਨੇਹੇ ਨੂੰ ਸੋਧੋ"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "ਸੁਨੇਹੇ ਨੂੰ ਸੋਧੋ"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2744,8 +2768,8 @@ msgstr "ਰੂਮ ਨੂੰ ਛੱਡੋ"
|
||||
msgid "Explore rooms"
|
||||
msgstr "ਰੂਮ ਛਾਣੋ"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2917,33 +2941,39 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "ਇਸ ਰੂਮ ਵਿੱਚ ਨਿਓ-ਚੈਟ ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਰੂਮ ਹਟਾਓ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "ਰੂਮ ਪਸੰਦੀਦਾ ਬਣਾਓ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "ਮੈਂਬਰ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "ਇਸ ਰੂਮ ਵਿੱਚ ਨਿਓ-ਚੈਟ ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 invited you to a room"
|
||||
msgid "Invite user to room"
|
||||
msgstr "%1 ਨੇ ਤੁਹਾਨੂੰ ਰੂਮ ਲਈ ਸੱਦਾ ਦਿੱਤਾ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2952,29 +2982,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 ਮੈਂਬਰ"
|
||||
msgstr[1] "%1 ਮੈਂਬਰ"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "ਕੋਈ ਮੈਂਬਰ ਗਿਣਤੀ ਨਹੀਂ"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "ਆਮ"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "ਸੁਰੱਖਿਆ"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgid "Notifications"
|
||||
@@ -4264,9 +4294,6 @@ msgstr "ਬਾਹਰ"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "ਇੰਝ ਸੰਭਾਲੋ"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "ਬੰਦ ਕਰੋ"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(ਸੋਧੇ)"
|
||||
|
||||
|
||||
143
po/pl/neochat.po
143
po/pl/neochat.po
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-04-29 11:30+0200\n"
|
||||
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
|
||||
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -125,91 +125,91 @@ msgstr "Miejsce docelowe"
|
||||
msgid "Network Error"
|
||||
msgstr "Błąd sieci"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Klient Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 Społeczność KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Opiekun"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Czarny kapelusz"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Pierwotny autor Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Opiekun Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Karol Kosek, Łukasz Wojniłowicz"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "krkk@krkk.ct8.pl, lukasz.wojnilowicz@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Biblioteka Qt5 do pisania wieloplatformowych programów dla Matriksa"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (zbudowane na %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Program do obsługi protokołu matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Obsługuje matriksa: schemat url"
|
||||
@@ -658,17 +658,17 @@ msgstr "<i>[Wiadomość została usunięta]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Wiadomość została usunięta: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ZREDAGOWANO]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ZREDAGOWANO: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -676,7 +676,7 @@ msgstr[0] "1 użytkownik: "
|
||||
msgstr[1] "%1 użytkowników: "
|
||||
msgstr[2] "%1 użytkowników: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1093,7 +1093,7 @@ msgstr "Szer.: %1, Dł.: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Zaszyfrowana wiadomość"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1338,6 +1338,17 @@ msgstr "Bez emoji"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "Wyślij położenie"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Zamknij"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1364,6 +1375,19 @@ msgstr "Odrzuć"
|
||||
msgid "Accept"
|
||||
msgstr "Zaakceptuj"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Powiadomienia"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Już jesteś w tym pokoju."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1598,22 +1622,22 @@ msgstr "Wybierz plik lokalny"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Obraz ze schowka"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Przeskocz do pierwszej nieprzeczytanej wiadomości"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Przeskocz do ostatniej wiadomości"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Przeciągnij tutaj elementy, aby je udostępnić"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1622,19 +1646,19 @@ msgstr[0] "%2 pisze"
|
||||
msgstr[1] "%2 piszą"
|
||||
msgstr[2] "%2 pisze"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Włącz szyfrowanie"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Nie będzie można wyłączyć szyfrowania po jego włączeniu."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2027,18 +2051,18 @@ msgstr "Rozpocznij prywatną rozmowę"
|
||||
msgid "Copy link"
|
||||
msgstr "Skopiuj odnośnik"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Sprawdzenie posiedzenia"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Zgoda użytkownika"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2047,17 +2071,17 @@ msgstr ""
|
||||
"Twój serwer domowy wymaga zgody na jego warunki, zanim będzie można go "
|
||||
"używać. Aby je przeczytać, naciśnij na przycisk poniżej."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Otwórz"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Rozpocznij rozmowę"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Czy chcesz rozpocząć rozmowę z %1?"
|
||||
@@ -2252,7 +2276,7 @@ msgid "Ban"
|
||||
msgstr "Zbanuj"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2331,27 +2355,27 @@ msgstr "Znajdź '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Ustawienia skrótów sieciowych..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Usuń wiadomości"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Usuń wiadomość"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Powód usunięcia ostatnich wiadomości tego użytkownika"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Powód usunięcia tej wiadomości"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2652,8 +2676,8 @@ msgstr "Opuść pokój"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Przeglądaj pokoje"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Twórz pokoje i rozmowy"
|
||||
@@ -2814,31 +2838,37 @@ msgid "Search"
|
||||
msgstr "Poszukaj"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Poszukaj w tym pokoju"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Usuń pokój z ulubionych"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Dodaj pokój do ulubionych"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Członkowie"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Poszukaj użytkownika w pokoju"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Zaproś użytkownika do pokoju"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2846,28 +2876,28 @@ msgstr[0] "%1 członek"
|
||||
msgstr[1] "%1 członków"
|
||||
msgstr[2] "%1 członków"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Brak liczby członków"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Ogólne"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Zabezpieczenia"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Uprawnienia"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Powiadomienia"
|
||||
@@ -4097,9 +4127,6 @@ msgstr "Zakończ"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Zapisz jako"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Zamknij"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (edytowana)"
|
||||
|
||||
|
||||
138
po/pt/neochat.po
138
po/pt/neochat.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 23:16+0100\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+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"
|
||||
"Language: pt\n"
|
||||
@@ -126,91 +126,91 @@ msgstr "Destino"
|
||||
msgid "Network Error"
|
||||
msgstr "Erro de Rede"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Cliente do Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 da Comunidade do KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Manutenção"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original do Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Manutenção do Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "José Nuno Pires"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "zepires@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Uma biblioteca do Qt5 para criar clientes multi-plataforma para o Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilado com a %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente para o protocolo de comunicações Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Suporta o esquema de URL's 'matrix:'"
|
||||
@@ -657,24 +657,24 @@ msgstr "<i>[Esta mensagem foi removida]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Esta mensagem foi removida: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REDIGIDO]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REDIGIDO: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 utilizador: "
|
||||
msgstr[1] "%1 utilizadores: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1089,7 +1089,7 @@ msgstr "Lat: %1, Lon: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Mensagem Encriptada"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1325,6 +1325,16 @@ msgstr "Emojis"
|
||||
msgid "Stickers"
|
||||
msgstr "Autocolantes"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Ver a Localização"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1351,6 +1361,17 @@ msgstr "Rejeitar"
|
||||
msgid "Accept"
|
||||
msgstr "Aceitar"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Localizações"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Não se encontram localizações partilhadas nesta sala."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1584,22 +1605,22 @@ msgstr "Escolher um ficheiro local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imagem da área de transferência"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ir para a primeira mensagem não-lida"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ir para a última mensagem"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arraste os itens para aqui para os partilhar"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1607,19 +1628,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 está a escrever"
|
||||
msgstr[1] "%2 estão a escrever"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Activar a Codificação"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Não será possível desactivar a codificação depois de activada."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2011,18 +2032,18 @@ msgstr "Abrir uma conversa privada"
|
||||
msgid "Copy link"
|
||||
msgstr "Copiar a ligação"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verificação da Sessão"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentimento do utilizador"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2031,17 +2052,17 @@ msgstr ""
|
||||
"O seu servidor caseiro obriga a que concorde com os seus termos e condições "
|
||||
"antes de o poder usar. Por favor carregue no botão abaixo para os ler."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Iniciar uma conversa"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Deseja iniciar uma conversa com %1?"
|
||||
@@ -2236,7 +2257,7 @@ msgid "Ban"
|
||||
msgstr "Banir"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2315,27 +2336,27 @@ msgstr "Procurar por '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configurar os Atalhos Web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Remover as Mensagens"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Remover a Mensagem"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Razão para remover as mensagens recentes deste utilizador"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Razão para remover esta mensagem"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2636,8 +2657,8 @@ msgstr "Sair da Sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explorar as salas"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Criar salas e conversas"
|
||||
@@ -2797,58 +2818,63 @@ msgstr "Procurar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Mostrar as localizações desta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Remover a sala dos favoritos"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Adicionar a sala aos favoritos"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Procurar um utilizador nesta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Convidar o utilizador para a sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membro"
|
||||
msgstr[1] "%1 membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Sem número de membros"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Geral"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Segurança"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Permissões"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Notificações"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-07 13:33-0300\n"
|
||||
"Last-Translator: Luiz Fernando Ranghetti <elchevive@opensuse.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
|
||||
@@ -124,92 +124,92 @@ msgstr "Destino"
|
||||
msgid "Network Error"
|
||||
msgstr "Erro de rede"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Cliente Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 A comunidade KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenedor"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Autor original do Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Mantenedor do Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Luiz Fernando Ranghetti, Thiago Masato Costa Sueto"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "elchevive@opensuse.org, herzenschein@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Uma biblioteca Qt5 para escrever clientes multiplataformas para o Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (compilado com %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Cliente para o protocolo de comunicação Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Supports appstream: url scheme"
|
||||
msgid "Supports matrix: url scheme"
|
||||
@@ -718,24 +718,24 @@ msgstr "<i>[Esta mensagem foi excluída]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Esta mensagem foi excluída: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[CENSURADO]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[CENSURADO: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1176,7 +1176,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Mensagem criptografada"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1430,6 +1430,17 @@ msgstr "Emoji personalizado"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Enviar convite"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1456,6 +1467,19 @@ msgstr "Rejeitar"
|
||||
msgid "Accept"
|
||||
msgstr "Aceitar"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Mostrar notificações"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Você já está nesta sala."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1691,22 +1715,22 @@ msgstr "Escolher arquivo local"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Imagem da área de transferência"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Ir para primeira mensagem não lida"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Ir para a mensagem mais antiga"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Arraste itens aqui para compartilhar"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1714,20 +1738,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 está digitando"
|
||||
msgstr[1] "%2 estão digitando"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "ativou criptografia ponta-a-ponta"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2103,19 +2127,19 @@ msgstr "Abrir um bate-papo privado:"
|
||||
msgid "Copy link"
|
||||
msgstr "Copiar"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Mostrar notificações"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Consentimento do usuário"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2124,17 +2148,17 @@ msgstr ""
|
||||
"O seu homeserver requer que você concorde com seus termos e condições antes "
|
||||
"de ser usado. Clique no botão abaixo para lê-los."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Iniciar um bate-papo"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Você gostaria de iniciar um bate-papo com %1?"
|
||||
@@ -2331,7 +2355,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2413,29 +2437,29 @@ msgstr "Pesquisar por '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Configurar os atalhos da Web..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "Editar mensagem"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "Editar mensagem"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2749,8 +2773,8 @@ msgstr "Sair da sala"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Explorar salas"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2922,33 +2946,39 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Abrir o NeoChat nesta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Remover sala dos favoritos"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Marcar sala como favorito"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "Abrir o NeoChat nesta sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 invited you to a room"
|
||||
msgid "Invite user to room"
|
||||
msgstr "%1 convidou você para uma sala"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2957,29 +2987,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 membro"
|
||||
msgstr[1] "%1 membros"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Sem contagem de membros"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Geral"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Segurança"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgid "Notifications"
|
||||
@@ -4298,9 +4328,6 @@ msgstr "Sair"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Salvar como"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Fechar"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(editado)"
|
||||
|
||||
|
||||
142
po/ru/neochat.po
142
po/ru/neochat.po
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-04-27 15:01+0300\n"
|
||||
"Last-Translator: Olesya Gerasimenko <translation-team@basealt.ru>\n"
|
||||
"Language-Team: Basealt Translation Team\n"
|
||||
@@ -127,17 +127,17 @@ msgstr "Назначение"
|
||||
msgid "Network Error"
|
||||
msgstr "Ошибка соединения"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Клиент Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
@@ -145,75 +145,75 @@ msgstr ""
|
||||
"© Black Hat 2018-2020\n"
|
||||
"© Сообщество KDE 2020-2022"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Сопровождающий"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Первоначальный автор Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Алексей Русаков"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Сопровождающий Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Александр Яворский, Павел Чернышов, Олеся Герасименко"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "kekcuha@gmail.com, farline99@yandex.ru, translation-team@basealt.ru"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Библиотека Qt5 для написания кроссплатформенных клиентов Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (собрано с версией %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Клиент для протокола связи Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Адрес, соответствующий схеме Matrix"
|
||||
@@ -666,17 +666,17 @@ msgstr "<i>[Это сообщение было удалено]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Cообщение было удалено: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ОТРЕДАКТИРОВАНО]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ОТРЕДАКТИРОВАНО: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -685,7 +685,7 @@ msgstr[1] "%1 пользователя: "
|
||||
msgstr[2] "%1 пользователей: "
|
||||
msgstr[3] "1 пользователь: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1104,7 +1104,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Зашифрованное сообщение"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1350,6 +1350,16 @@ msgstr "Не найдено ни одного эмодзи"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Отправить приглашение"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Закрыть"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1376,6 +1386,19 @@ msgstr "Отклонить"
|
||||
msgid "Accept"
|
||||
msgstr "Принять"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Уведомления"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Вы уже находитесь в этой комнате."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1611,22 +1634,22 @@ msgstr "Выберите файл на компьютере"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Изображение из буфера обмена"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Перейти к первому непрочитанному сообщению"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Перейти к последнему сообщению"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Чтобы опубликовать файла, перетащите их сюда"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1636,19 +1659,19 @@ msgstr[1] "%2 набирают сообщение"
|
||||
msgstr[2] "%2 набирают сообщение"
|
||||
msgstr[3] "%2 набирает сообщение"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Включить шифрование"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Отключить шифрование после его включения будет невозможно."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2024,18 +2047,18 @@ msgstr "Открыть личный чат"
|
||||
msgid "Copy link"
|
||||
msgstr "Копировать ссылку"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Проверка сеанса"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Согласие пользователя"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2045,17 +2068,17 @@ msgstr ""
|
||||
"условиями, прежде чем сможете его использовать. Нажмите на кнопку, "
|
||||
"расположенную ниже, ниже, чтобы прочитать их."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Открыть"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Начать общение"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Начать чат с %1?"
|
||||
@@ -2250,7 +2273,7 @@ msgid "Ban"
|
||||
msgstr "Заблокировать"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2329,27 +2352,27 @@ msgstr "Поиск «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Настроить веб-сокращения…"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Удалить сообщения"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Удалить сообщение"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Причина удаления последних сообщений этого пользователя"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Причина удаления этого сообщения"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2652,8 +2675,8 @@ msgstr "Покинуть комнату"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Просмотреть комнаты"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Создать комнаты и чаты"
|
||||
@@ -2814,31 +2837,37 @@ msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Искать в этой комнате"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Убрать комнату из избранного"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Добавить комнату в избранное"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Участники"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Искать пользователя в комнате"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Пригласить пользователя в комнату"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2847,28 +2876,28 @@ msgstr[1] "%1 участника"
|
||||
msgstr[2] "%1 участников"
|
||||
msgstr[3] "%1 участник"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Количество участников не подсчитывается"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Общие"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Безопасность"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Разрешения"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Уведомления"
|
||||
@@ -4112,9 +4141,6 @@ msgstr "Выход"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Сохранить как"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Закрыть"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (изменено)"
|
||||
|
||||
|
||||
143
po/sk/neochat.po
143
po/sk/neochat.po
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-04-18 17:58+0200\n"
|
||||
"Last-Translator: Roman Paholik <wizzardsk@gmail.com>\n"
|
||||
"Language-Team: Slovak <kde-sk@linux.sk>\n"
|
||||
@@ -130,91 +130,91 @@ msgstr "Odoslať pozvanie"
|
||||
msgid "Network Error"
|
||||
msgstr "Chyba siete"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix client"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020 KDE komunita"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Roman Paholík"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "wizzardsk@gmail.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Klient pre komunikačný protokol matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Supports appstream: url scheme"
|
||||
msgid "Supports matrix: url scheme"
|
||||
@@ -743,17 +743,17 @@ msgstr "<i>[Táto správa bola odstránená]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Táto správa bola odstránená: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[REVIDOVANÉ]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[REVIDOVANÉ: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -761,7 +761,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1201,7 +1201,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Upraviť správu"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1459,6 +1459,17 @@ msgstr "Vlastné"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Odoslať pozvanie"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Zatvoriť"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1485,6 +1496,19 @@ msgstr "Odmietnuť"
|
||||
msgid "Accept"
|
||||
msgstr "Prijať"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Zobraziť upozornenia"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Otvoriť NeoChat v tejto miestnosti"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1719,22 +1743,22 @@ msgstr "Vybrať miestny súbor"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Obrázok schránky"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Skočiť na prvú neprečítanú správu"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Prejsť na najnovšiu správu"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Presuňte položky sem na zdieľanie"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1743,20 +1767,20 @@ msgstr[0] "%2 píše"
|
||||
msgstr[1] "%2 píšu"
|
||||
msgstr[2] "%2 píšu"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "aktivoval End-to-End šifrovanie"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2130,19 +2154,19 @@ msgstr "Otvoriť súkromný chat"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopírovať"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Zobraziť upozornenia"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Používateľský súhlas"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2152,17 +2176,17 @@ msgstr ""
|
||||
"zmluvnými podmienkami. Ak si ich chcete prečítať, kliknite na tlačidlo "
|
||||
"nižšie."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Otvoriť"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Začať rozhovor"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Chcete začať rozhovor s %1?"
|
||||
@@ -2364,7 +2388,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2446,29 +2470,29 @@ msgstr "Hľadať '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Nastaviť webové skratky..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "Upraviť správu"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "Upraviť správu"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2778,8 +2802,8 @@ msgstr "Opustiť miestnosť"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Prehliadať miestnosti"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2951,33 +2975,39 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Otvoriť NeoChat v tejto miestnosti"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Odstrániť miestnosť z obľúbených"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Nastaviť miestnosť ako pbľúbenú"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Členovia"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "Otvoriť NeoChat v tejto miestnosti"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "invited %1 to the room"
|
||||
msgid "Invite user to room"
|
||||
msgstr "pozval %1 do miestnosti"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2987,29 +3017,29 @@ msgstr[0] "%1 Člen"
|
||||
msgstr[1] "%1 Členovia"
|
||||
msgstr[2] "%1 Členov"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Žiadny počet členov"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Všeobecné"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Bezpečnosť"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Show notifications"
|
||||
msgid "Notifications"
|
||||
@@ -4307,9 +4337,6 @@ msgstr "Ukončiť"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Uložiť ako"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Zatvoriť"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(upravené)"
|
||||
|
||||
|
||||
145
po/sl/neochat.po
145
po/sl/neochat.po
@@ -8,16 +8,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 08:30+0200\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 07:31+0200\n"
|
||||
"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
|
||||
"Language-Team: Slovenian <lugos-slo@lugos.si>\n"
|
||||
"Language: sl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
|
||||
"%100==4 ? 3 : 0);\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
|
||||
"%100<=4 ? 2 : 3);\n"
|
||||
"X-Generator: Poedit 3.3.1\n"
|
||||
|
||||
#: src/controller.cpp:262
|
||||
@@ -124,90 +124,90 @@ msgstr "Cilj"
|
||||
msgid "Network Error"
|
||||
msgstr "Napaka omrežja"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrixov odjemalec"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 skupnost KDE"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Vzdrževalec"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Izvorni avtor programa Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Vzdrževalec programa Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Matjaž Jeran,Martin Srebotnjak"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "matjaz.jeran@amis.net,miles@filmsi.net"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Knjižnica Qt5 za pisanje odjemalcev za več platform za Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (zgrajeno na %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Odjemalec za komunikacijski protokol matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Podpira matriko: shema url"
|
||||
@@ -656,17 +656,17 @@ msgstr "<i>[To sporočilo je bilo izbrisano]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[To sporočilo je bilo izbrisano: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[PREKRIVANJE PODATKOV]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[PREKRIVANJE PODATKOV: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -675,7 +675,7 @@ msgstr[1] "%1 uporabnika: "
|
||||
msgstr[2] "%1 uporabniki: "
|
||||
msgstr[3] "%1 uporabnikov: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Širina: %1, Dolžina: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Šifrirano sporočilo"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1330,6 +1330,16 @@ msgstr "Čustvenčki"
|
||||
msgid "Stickers"
|
||||
msgstr "Nalepke"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Poglej lokacijo"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Zapri"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1356,6 +1366,17 @@ msgstr "Zavračam"
|
||||
msgid "Accept"
|
||||
msgstr "Sprejemam"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Lokacije"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Ni deljenih lokacij v tej sobi."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1590,22 +1611,22 @@ msgstr "Izberi lokalno datoteko"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Slika odložišča"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Skoči na prvo neprebrano sporočilo"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Skoči na nedavno sporočilo"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Povleci predmete sem, da jih deliš z drugimi"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1615,19 +1636,19 @@ msgstr[1] "%2 tipkata"
|
||||
msgstr[2] "%2 tipkajo"
|
||||
msgstr[3] "%2 tipka"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Aktiviraj šifriranje"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Ne bo mogoče deaktivirati šifriranja, potem ko je omogočeno."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2012,18 +2033,18 @@ msgstr "Odpri zasebni razgovor"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopiraj povezavo"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Verifikacija seje"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Privoljenje uporabnika"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2032,17 +2053,17 @@ msgstr ""
|
||||
"Vaš domači strežnik zahteva, da se strinjate s pogoji njegove rabe pred "
|
||||
"dovoljenjem za uporabo. Prosimo, kliknite spodnji gumb, da jih preberete."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Odpri"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Začni pogovor"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Ali želite začeti pogovor s %1?"
|
||||
@@ -2237,7 +2258,7 @@ msgid "Ban"
|
||||
msgstr "Prepoved"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2316,27 +2337,27 @@ msgstr "Poišči za '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Nastavi spletne bližnjice…"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Odstrani sporočila"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Odstrani sporočilo"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Razlog za odstranjevanje nedavnih sporočil tega uporabnika"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Razlog za odstranjevanje tega sporočila"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2637,8 +2658,8 @@ msgstr "Zapusti sobo"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Razišči sobe"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Ustvari sobe in klepete"
|
||||
@@ -2798,30 +2819,35 @@ msgstr "Išči"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Pokaži lokacije za to sobo"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Odstrani sobo izmed priljubljenih"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Proglasi sobo za priljubljeno"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Člani"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Išči uporabnika v sobi"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Povabite uporabnika v sobo"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2830,28 +2856,28 @@ msgstr[1] "%1 člana"
|
||||
msgstr[2] "%1 člani"
|
||||
msgstr[3] "%1 članov"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Ni števila članov"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Splošno"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Varnost"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Dovoljenja"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Obvestila"
|
||||
@@ -4064,9 +4090,6 @@ msgstr "Zapusti"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Shrani kot"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Zapri"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (urejano)"
|
||||
|
||||
|
||||
143
po/sv/neochat.po
143
po/sv/neochat.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-28 16:37+0200\n"
|
||||
"Last-Translator: Stefan Asserhäll <stefan.asserhall@bredband.net>\n"
|
||||
"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -130,91 +130,91 @@ msgstr "Skicka inbjudan"
|
||||
msgid "Network Error"
|
||||
msgstr "Nätverksfel"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix-klient"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2018-2020 Black Hat, 2020-2022 KDE Community"
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2022 KDE-gemenskapen"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Stefan Asserhäll"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "stefan.asserhall@bredband.net"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Att Qt5-bibliotek för att skriva Matrix-klienter för flera plattformar"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Klient för kommunikationsprotokollet Matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Supports appstream: url scheme"
|
||||
msgid "Supports matrix: url scheme"
|
||||
@@ -740,24 +740,24 @@ msgstr "<i>[Meddelandet har tagits bort]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Meddelandet har tagits bort: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ÄNDRAD]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ÄNDRAD: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "[action 1], [action 2 and action 3]"
|
||||
#| msgid ", "
|
||||
@@ -1198,7 +1198,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Redigera meddelande"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1452,6 +1452,17 @@ msgstr "Egna emoji"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send invitation"
|
||||
msgid "View Location"
|
||||
msgstr "Skicka inbjudan"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Stäng"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1478,6 +1489,19 @@ msgstr "Avslå"
|
||||
msgid "Accept"
|
||||
msgstr "Acceptera"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Underrättelser"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Öppna NeoChat för rummet"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1713,22 +1737,22 @@ msgstr "Välj lokal fil"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Klippbordsbild"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Gå till första olästa meddelande"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Gå till sista meddelande"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Dra objekt hit för att dela dem"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1736,20 +1760,20 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 skriver"
|
||||
msgstr[1] "%2 skriver"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "activated End-to-End Encryption"
|
||||
msgid "Activate Encryption"
|
||||
msgstr "aktiverade kryptering hela vägen"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2147,18 +2171,18 @@ msgstr "Starta en privat chatt"
|
||||
msgid "Copy link"
|
||||
msgstr "Kopiera"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Sessionsverifikation"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Användargodkännande"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2167,17 +2191,17 @@ msgstr ""
|
||||
"Din hemserver kräver att du godkänner dess villkor innan den kan användas. "
|
||||
"Klicka på knappen nedan för att läsa dem."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Öppna"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Starta en chatt"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Vill du starta en chatt med %1?"
|
||||
@@ -2374,7 +2398,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2456,31 +2480,31 @@ msgstr "Sök efter '%1'"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Anpassa webbgenvägar..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Report Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "Rapportera meddelande"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Report Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "Rapportera meddelande"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reason for reporting this message"
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Anledning att meddelandet rapporteras"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reason for reporting this message"
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Anledning att meddelandet rapporteras"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
@@ -2786,8 +2810,8 @@ msgstr "Lämna rum"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Utforska rum"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Rooms and private chats:"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2960,32 +2984,38 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Öppna NeoChat för rummet"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Ta bort rum från favoriter"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Gör rum till favorit"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Medlemmar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open NeoChat in this room"
|
||||
msgid "Search user in room"
|
||||
msgstr "Öppna NeoChat för rummet"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Bjöd in användare till ett rum"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1 Member"
|
||||
#| msgid_plural "%1 Members"
|
||||
@@ -2994,29 +3024,29 @@ msgid_plural "%1 members"
|
||||
msgstr[0] "%1 medlem"
|
||||
msgstr[1] "%1 medlemmar"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No Member Count"
|
||||
msgid "No member count"
|
||||
msgstr "Ingen medlemsräkning"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Allmänt"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Säkerhet"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Underrättelser"
|
||||
@@ -4324,9 +4354,6 @@ msgstr "Avsluta"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Spara som"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Stäng"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (redigerad)"
|
||||
|
||||
|
||||
147
po/ta/neochat.po
147
po/ta/neochat.po
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-11 17:29+0530\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-18 14:28+0530\n"
|
||||
"Last-Translator: Kishore G <kishore96@gmail.com>\n"
|
||||
"Language-Team: Tamil <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ta\n"
|
||||
@@ -123,90 +123,90 @@ msgstr "சேருமிடம்"
|
||||
msgid "Network Error"
|
||||
msgstr "பிணைய சிக்கல்"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "நியோச்சாட்"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix வாங்கி"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 பிளாக் ஹாட், 2020-2023 கே.டீ.யீ. சமூகம்"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "கார்ல் ஷுவான்"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "பராமரிப்பாளர்"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "டோபியாஸ் ஃபெல்லா"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "ஜேம்சு கிரஹாம்"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "பிளாக் ஹாட்"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral-ஐ முதலில் இயற்றியவர்"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "அலெக்செய் ருசாக்கொவ்"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Quotient-இன் பராமரிப்பாளர்"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "கோ. கிஷோர்"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "Kde-l10n-ta@kde.org"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "மேட்ரிக்ஸுக்கான பல்லியங்குதள செயலிகளை எழுத உதவும் Qt5 நிரலகம்"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (%2 கொண்டு தொகுக்கப்பட்டது)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix தொடர்பு நெறிமுறைக்கான வாங்கி"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "matrix: முகவரி திட்டமுறையை ஆதரிக்கும்"
|
||||
@@ -557,7 +557,7 @@ msgstr ", "
|
||||
#, kde-format
|
||||
msgctxt "[action 1, action 2] or [action 3]"
|
||||
msgid " or "
|
||||
msgstr "அல்லது"
|
||||
msgstr " அல்லது "
|
||||
|
||||
#: src/models/collapsestateproxymodel.cpp:94
|
||||
#, kde-format
|
||||
@@ -653,24 +653,24 @@ msgstr "<i>[இந்த செய்தி நீக்கப்பட்டத
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[இந்த செய்தி நீக்கப்பட்டது: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[தணிக்கை செய்யப்பட்டது]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[தணிக்கை செய்யப்பட்டது: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "1 பயனர்: "
|
||||
msgstr[1] "%1 பயனர்கள்: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1085,7 +1085,7 @@ msgstr "அட்ச: %1, தீர்க்க: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "மறையாக்கப்பட்டுள்ள செய்தி"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1321,6 +1321,17 @@ msgstr "முகவடிகள்"
|
||||
msgid "Stickers"
|
||||
msgstr "ஒட்டிகள்"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a Location"
|
||||
msgid "View Location"
|
||||
msgstr "இடத்தை அனுப்பு"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "மூடு"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1347,6 +1358,19 @@ msgstr "மறு"
|
||||
msgid "Accept"
|
||||
msgstr "ஏற்றுக்கொள்"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "அறிவிப்புகள்"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "நீங்கள் ஏற்கனவே இவ்வரங்கில் உள்ளிர்கள்."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1579,22 +1603,22 @@ msgstr "உள்ளமைக் கோப்பைத் தேர்ந்த
|
||||
msgid "Clipboard image"
|
||||
msgstr "பிடிப்புப்பலகைப் படம்"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "படிக்காத முதல் செய்திக்குத் தாவு"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "கடைசி செய்திக்குத் தாவு"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "எதையாவது பகிர, அதை இங்கு இழுத்துப் போடுங்கள்"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1602,19 +1626,19 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 தட்டச்சிடுகிறார்"
|
||||
msgstr[1] "%2 தட்டச்சிடுகிறார்கள்"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "மறையாக்கத்தை செயல்படுத்து"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "மறையாக்கத்தை செயல்படுத்தியபின் அதை முடக்க முடியாது."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1986,18 +2010,18 @@ msgstr "தனிப்பட்ட உரையாடலைத் துவக
|
||||
msgid "Copy link"
|
||||
msgstr "இணைப்பை நகலெடு"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "அமர்வு உறுதிப்பாடு"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "பயனர் ஒப்புதல்"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2006,17 +2030,17 @@ msgstr ""
|
||||
"பயன்படுத்துமுன் அதன் விதிமுறைகளை ஏற்குமாறு உங்கள் தாய் சேவையகம் உங்களை "
|
||||
"கட்டாயப்படுத்துகிறது. அவற்றைப் படிக்க கீழுள்ள பட்டனைத் தட்டுங்கள்."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "திற"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "உரையாடலைத் துவக்கு"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "உறுதியாக %1 என்பவருடன் உரையாடலைத் துவக்க வேண்டுமா?"
|
||||
@@ -2211,7 +2235,7 @@ msgid "Ban"
|
||||
msgstr "தடை செய்"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2290,27 +2314,27 @@ msgstr "'%1' என்பதை தேடு"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "இணைய சுருக்குவழிகளை அமை..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "செய்திகளை நீக்குவது"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "செய்தியை நீக்குவது"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "இப்பயனரின் சமீபத்திய செய்திகளை நீக்குவதற்கான காரணம்"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "இச்செய்தியை நீக்குவதற்கான காரணம்"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2611,8 +2635,8 @@ msgstr "அரங்கிலிருந்து வெளியேறு"
|
||||
msgid "Explore rooms"
|
||||
msgstr "அரங்குகளை உலாவுங்கள்"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "அரங்குகளையும் தனிப்பட்ட உரையாடல்களையும் உருவாக்கு"
|
||||
@@ -2771,59 +2795,65 @@ msgid "Search"
|
||||
msgstr "தேடல்"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "இவ்வரங்கில் தேடு"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "பிடித்தவற்றிலிருந்து அரங்கை நீக்கு"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "அரங்கைப் பிடித்ததாகக் குறி"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "உறுப்பினர்கள்"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "அரங்கில் பயனரை கண்டுபிடி"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "பயனரை ஓர் அரங்குக்கு வரவழை"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 உறுப்பினர்"
|
||||
msgstr[1] "%1 உறுப்பினர்கள்"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "உறுப்பினர்களின் எண்ணிக்கை தெரியாதது"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "பொது"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "பாதுகாப்பு"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "அனுமதிகள்"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "அறிவிப்புகள்"
|
||||
@@ -4032,9 +4062,6 @@ msgstr "வெளியேறு"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "வேறு பெயரில் சேமி"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "மூடு"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr "(திருத்தப்பட்டது)"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-20 03:30+0000\n"
|
||||
"Last-Translator: Weblate Admin <admin@example.com>\n"
|
||||
"Language-Team: Toki Pona <http://weblate.blackquill.cc/projects/ante-toki-pi-"
|
||||
@@ -129,90 +129,90 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "kulupu pi ante toki pi toki pona"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -675,17 +675,17 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -694,7 +694,7 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1120,7 +1120,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr "o ante e toki"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1362,6 +1362,16 @@ msgstr "sitelen Emosi sina"
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "o weka"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1388,6 +1398,17 @@ msgstr ""
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1623,22 +1644,22 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1648,19 +1669,19 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2030,35 +2051,35 @@ msgstr "o open e tomo toki pi sina tu taso"
|
||||
msgid "Copy link"
|
||||
msgstr "o tu e lipu tawa lipu jo"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "o open"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2255,7 +2276,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2337,29 +2358,29 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Messages"
|
||||
msgstr "o ante e toki"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgid "Remove Message"
|
||||
msgstr "o ante e toki"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2661,8 +2682,8 @@ msgstr ""
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open a private chat"
|
||||
msgid "Create rooms and chats"
|
||||
@@ -2826,30 +2847,35 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2858,28 +2884,28 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
@@ -4073,9 +4099,6 @@ msgstr ""
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "o awen sona"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "o weka"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (ante)"
|
||||
|
||||
|
||||
141
po/tr/neochat.po
141
po/tr/neochat.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 12:30+0300\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 12:54+0300\n"
|
||||
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
|
||||
"Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
|
||||
"Language: tr\n"
|
||||
@@ -123,90 +123,90 @@ msgstr "Hedef"
|
||||
msgid "Network Error"
|
||||
msgstr "Ağ Hatası"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix istemcisi"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© 2018-2020 Black Hat, 2020-2023 KDE Topluluğu"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Bakımcı"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral'in özgün yazarı"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Aleksey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Quotient bakımcısı"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Emir SARI"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "emir_sari@icloud.com"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "Matrix için çapraz platform istemciler yazmak için bir Qt5 kitaplığı"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (%2 üzerine yapılı)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix iletişim protokolü için istemci"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "matrix: URL şemasını destekler"
|
||||
@@ -651,24 +651,24 @@ msgstr "<i>[Bu ileti silindi]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Bu ileti silindi: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[DEĞİŞTİRİLDİ]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[DEĞİŞTİRİLDİ: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] "%1 kullanıcı: "
|
||||
msgstr[1] "%1 kullanıcı: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1083,7 +1083,7 @@ msgstr "Enlem: %1, Boylam: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Şifreli İleti"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1319,6 +1319,16 @@ msgstr "Emojiler"
|
||||
msgid "Stickers"
|
||||
msgstr "Yapışkanlar"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Konumu Görüntüle"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Kapat"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1345,6 +1355,17 @@ msgstr "Reddet"
|
||||
msgid "Accept"
|
||||
msgstr "Kabul Et"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Konumlar"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "Bu odada paylaşılmış bir konum yok."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1576,22 +1597,22 @@ msgstr "Yerel dosya seçin"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Pano görseli"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "İlk okunmamış iletiye atla"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "En son iletiye atla"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Onları paylaşmak için ögeleri buraya sürükleyin"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1599,13 +1620,13 @@ msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 yazıyor"
|
||||
msgstr[1] "%2 yazıyor"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Şifrelemeyi Etkinleştir"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
@@ -1613,7 +1634,7 @@ msgstr ""
|
||||
"Şifreleme etkinleştirildikten sonra onu devre dışı bırakmak olanaklı "
|
||||
"olmayacak."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1997,18 +2018,18 @@ msgstr "Özel bir sohbet aç"
|
||||
msgid "Copy link"
|
||||
msgstr "Bağlantıyı kopyala"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Oturum Doğrulama"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Kullanıcı onayı"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2017,17 +2038,17 @@ msgstr ""
|
||||
"Ana sunucunuz, kullanım öncesinde kullanım koşullarını kabul etmenizi "
|
||||
"gerektiriyor. Okumak için aşağıdaki düğmeye tıklayın."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Aç"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Bir sohbet başlat"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "%1 ile bir sohbet başlatmak istiyor musunuz?"
|
||||
@@ -2222,7 +2243,7 @@ msgid "Ban"
|
||||
msgstr "Yasakla"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2301,27 +2322,27 @@ msgstr "'%1' ara"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Web Kısayollarını Yapılandır..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "İletileri Kaldır"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "İletiyi Kaldır"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Bu kullanıcının son iletisini kaldırma gerekçesi"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Bu iletiyi kaldırma gerekçesi"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2622,8 +2643,8 @@ msgstr "Odadan Ayrıl"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Odaları Keşfet"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Odalar ve sohbetler oluştur"
|
||||
@@ -2783,58 +2804,63 @@ msgstr "Ara"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Bu oda için olan konumları göster"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Odayı sık kullanılanlardan kaldır"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Odayı sık kullanılanlara ekle"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Üyeler"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Kullanıcıyı odada ara"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Kullanıcıyı odaya davet et"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] "%1 üye"
|
||||
msgstr[1] "%1 üye"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Üye sayısı yok"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Genel"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Güvenlik"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "İzinler"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Bildirimler"
|
||||
@@ -4046,9 +4072,6 @@ msgstr "Çık"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Farklı Kaydet"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Kapat"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (düzenlendi)"
|
||||
|
||||
|
||||
141
po/uk/neochat.po
141
po/uk/neochat.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-06-09 17:30+0300\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 08:02+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
|
||||
"Language: uk\n"
|
||||
@@ -127,92 +127,92 @@ msgstr "Призначення"
|
||||
msgid "Network Error"
|
||||
msgstr "Помилка у мережі"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Клієнт Matrix"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr "© Black Hat, 2018-2020, Спільнота KDE, 2020–2023"
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Супровідник"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Перший автор Spectral"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Супровідник Quotient"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Юрій Чорноіван"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "yurchor@ukr.net"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
"Бібліотека Qt5 для написання багатоплатформових клієнтських програм для "
|
||||
"Matrix"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (зібрано з %2)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Клієнт для протоколу обміну даними matrix"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "Передбачає підтримку схеми адрес matrix:"
|
||||
@@ -663,17 +663,17 @@ msgstr "<i>[Це повідомлення було вилучено]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[Це повідомлення було вилучено: %1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr "[ЗМІНЕНО]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr "[ЗМІНЕНО: %1]"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
@@ -682,7 +682,7 @@ msgstr[1] "%1 користувачі: "
|
||||
msgstr[2] "%1 користувачів: "
|
||||
msgstr[3] "%1 користувач: "
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1101,7 +1101,7 @@ msgstr "Шир: %1, Довг: %2"
|
||||
msgid "Encrypted Message"
|
||||
msgstr "Зашифроване повідомлення"
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr "%1: %2"
|
||||
@@ -1339,6 +1339,16 @@ msgstr "Емоційки"
|
||||
msgid "Stickers"
|
||||
msgstr "Наліпки"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr "Надіслати дані місця"
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr "Закрити"
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1365,6 +1375,17 @@ msgstr "Відкинути"
|
||||
msgid "Accept"
|
||||
msgstr "Прийняти"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "Місця"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "У цій кімнаті не оприлюднюються місця перебування."
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1600,22 +1621,22 @@ msgstr "Виберіть локальний файл"
|
||||
msgid "Clipboard image"
|
||||
msgstr "Зображення з буфера"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "Перейти до першого непрочитаного повідомлення"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "Перейти до останнього повідомлення"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "Перетягніть пункти сюди, щоб оприлюднити їх"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
@@ -1625,19 +1646,19 @@ msgstr[1] "%2 вводять текст…"
|
||||
msgstr[2] "%2 вводять текст…"
|
||||
msgstr[3] "%2 вводить текст…"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "Задіяти шифрування"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "Після вмикання шифрування його не можна буде вимкнути."
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -2023,18 +2044,18 @@ msgstr "Відкрити особисте спілкування"
|
||||
msgid "Copy link"
|
||||
msgstr "Копіювати посилання"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr "Перевірка сеансу"
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "Згода користувача"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -2044,17 +2065,17 @@ msgstr ""
|
||||
"використання. Будь ласка, натисніть розташовану нижче кнопку для того, щоб "
|
||||
"ознайомитися з ними."
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "Відкрити"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "Почати спілкування"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "Хочете розпочати спілкування з %1?"
|
||||
@@ -2249,7 +2270,7 @@ msgid "Ban"
|
||||
msgstr "Заблокувати"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2328,27 +2349,27 @@ msgstr "Пошук «%1»"
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "Налаштувати вебскорочення…"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr "Вилучити повідомлення"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr "Вилучити повідомлення"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr "Причина вилучення нещодавніх повідомлень цього користувача"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr "Причина вилучення цього повідомлення"
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2649,8 +2670,8 @@ msgstr "Полишити кімнату"
|
||||
msgid "Explore rooms"
|
||||
msgstr "Ознайомитися з кімнатами"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr "Створити кімнати і спілкування"
|
||||
@@ -2810,30 +2831,35 @@ msgstr "Пошук"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr "Показувати місця перебування для цієї кімнати"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "Вилучити кімнату з улюблених"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "Зробити кімнату улюбленою"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "Учасники"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr "Шукати користувача у кімнаті"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "Запросити користувача до кімнати"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
@@ -2842,28 +2868,28 @@ msgstr[1] "%1 учасники"
|
||||
msgstr[2] "%1 учасників"
|
||||
msgstr[3] "%1 учасник"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr "Немає лічильника учасників"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "Загальне"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Захист"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "Права доступу"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "Сповіщення"
|
||||
@@ -4089,9 +4115,6 @@ msgstr "Вийти"
|
||||
#~ msgid "Save as"
|
||||
#~ msgstr "Зберегти як"
|
||||
|
||||
#~ msgid "Close"
|
||||
#~ msgstr "Закрити"
|
||||
|
||||
#~ msgid " (edited)"
|
||||
#~ msgstr " (змінено)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"PO-Revision-Date: 2023-05-22 14:01\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2023-06-17 04:12\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Language: zh_CN\n"
|
||||
@@ -80,16 +80,14 @@ msgid "Contact your matrix server administrator for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/controller.cpp:531
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "聊天室创建失败:\"%1\""
|
||||
msgstr ""
|
||||
|
||||
#: src/controller.cpp:552
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "聊天室创建失败:\"%1\""
|
||||
msgstr ""
|
||||
|
||||
#: src/controller.cpp:566
|
||||
#, kde-format
|
||||
@@ -125,62 +123,62 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr "网络错误"
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr "NeoChat"
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr "Matrix 客户端"
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr "Carl Schwan"
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "维护人员"
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr "Tobias Fella"
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr "James Graham"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr "Black Hat"
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr "Spectral 的原作者"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr "Alexey Rusakov"
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr "Quotient 的维护人员"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
@@ -188,7 +186,7 @@ msgstr ""
|
||||
"KDE China (中国), Guo Yunhe (郭云鹤), Yang Boyuan (杨博远), Coelacanthus, "
|
||||
"Tyson Tan (钛山), Gary Wang"
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
@@ -196,23 +194,23 @@ msgstr ""
|
||||
"kde-china@kde.org, i@guoyunhe.me, 073plan@gmail.com, coelacanthus@kde.org, "
|
||||
"tysontan@tysontan.com, git@blumia.net"
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr "一个用于编写跨平台 Matrix 客户端的 Qt5 库"
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr "%1 (使用 %2 构建)"
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr "Matrix 通信协议客户端"
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr "支持 matrix: URL 协议"
|
||||
@@ -640,11 +638,10 @@ msgid "Own Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/imagepacksmodel.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "As in 'The user's own emojis"
|
||||
msgid "Own Emojis"
|
||||
msgstr "添加表情..."
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:477 src/models/messageeventmodel.cpp:486
|
||||
#, kde-format
|
||||
@@ -656,23 +653,23 @@ msgstr "<i>[这条消息已被删除]</i>"
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr "<i>[这条消息已被删除:%1]</i>"
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1085,7 +1082,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1319,6 +1316,16 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1345,6 +1352,19 @@ msgstr "拒绝"
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Notifications"
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr "通知"
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "You are already in this room."
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr "你已经在这个聊天室了。"
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1575,41 +1595,41 @@ msgstr "选择本地文件"
|
||||
msgid "Clipboard image"
|
||||
msgstr "剪贴板图像"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr "跳转到第一条未读消息"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr "跳转到最新消息"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr "拖动项目到此处来分享"
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] "%2 正在輸入"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr "激活加密"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr "启用后无法停用加密。"
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1652,26 +1672,20 @@ msgstr "确定"
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:15
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:40
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create a Space"
|
||||
msgstr "离开空间"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Create a Space"
|
||||
msgstr "离开空间"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:27
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@option:check"
|
||||
#| msgid "Space members"
|
||||
#, kde-format
|
||||
msgid "Space name"
|
||||
msgstr "空间成员"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:31
|
||||
#, kde-format
|
||||
@@ -1679,11 +1693,9 @@ msgid "Space topic (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/CreateSpaceDialog.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "'Space' is a matrix space"
|
||||
#| msgid "Leave Space"
|
||||
#, kde-format
|
||||
msgid "Create space"
|
||||
msgstr "离开空间"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/KeyVerification/EmojiSas.qml:23
|
||||
#, kde-format
|
||||
@@ -1978,18 +1990,18 @@ msgstr "打开私聊"
|
||||
msgid "Copy link"
|
||||
msgstr "复制链接"
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr "用户许可"
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
@@ -1998,17 +2010,17 @@ msgstr ""
|
||||
"您的主服务器需要您同意它的条款和条件,然后才能使用。请点击下面的按钮阅读它"
|
||||
"们。"
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr "打开"
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr "开始聊天"
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr "您想要与 %1 开始聊天吗?"
|
||||
@@ -2203,7 +2215,7 @@ msgid "Ban"
|
||||
msgstr "封禁"
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2282,27 +2294,27 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr "配置网页快捷键..."
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2601,8 +2613,8 @@ msgstr "离开聊天室"
|
||||
msgid "Explore rooms"
|
||||
msgstr "探索聊天室"
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2761,58 +2773,64 @@ msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Search in this room"
|
||||
msgid "Show locations for this room"
|
||||
msgstr "在此聊天室中搜索"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr "从收藏夹中移除聊天室"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr "收藏聊天室"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr "成员"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr "邀请用户到聊天室"
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr "常规"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "安全"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr "权限"
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr "通知"
|
||||
@@ -3460,19 +3478,17 @@ msgstr ""
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:59
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Edit Emoji"
|
||||
msgstr "添加表情..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:31
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:109
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Add Emoji"
|
||||
msgstr "添加表情..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Settings/EmoticonEditorPage.qml:40
|
||||
#, kde-format
|
||||
@@ -3511,10 +3527,9 @@ msgid "No Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Emoji..."
|
||||
#, kde-format
|
||||
msgid "Add Emoji"
|
||||
msgstr "添加表情..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Settings/EmoticonFormCard.qml:118
|
||||
#, kde-format
|
||||
@@ -3967,13 +3982,3 @@ msgstr "显示"
|
||||
#, kde-format
|
||||
msgid "Quit"
|
||||
msgstr "退出"
|
||||
|
||||
#~ msgctxt "@title:window"
|
||||
#~ msgid "Custom Emojis"
|
||||
#~ msgstr "自定义表情"
|
||||
|
||||
#~ msgid "Images (*.png *.gif *.webp)"
|
||||
#~ msgstr "图片 (*.png *.gif *.webp)"
|
||||
|
||||
#~ msgid "Custom Emojis"
|
||||
#~ msgstr "自定义表情"
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-06-11 00:47+0000\n"
|
||||
"POT-Creation-Date: 2023-06-24 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-12-30 18:05+0900\n"
|
||||
"Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
|
||||
"Language-Team: Traditional Chinese <zh-l10n@linux.org.tw>\n"
|
||||
@@ -124,90 +124,90 @@ msgstr ""
|
||||
msgid "Network Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:161
|
||||
#: src/main.cpp:164
|
||||
#, kde-format
|
||||
msgid "NeoChat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:163
|
||||
#: src/main.cpp:166
|
||||
#, kde-format
|
||||
msgid "Matrix client"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:165
|
||||
#: src/main.cpp:168
|
||||
#, kde-format
|
||||
msgid "© 2018-2020 Black Hat, 2020-2023 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166
|
||||
#: src/main.cpp:169
|
||||
#, kde-format
|
||||
msgid "Carl Schwan"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:166 src/main.cpp:167 src/main.cpp:168
|
||||
#: src/main.cpp:169 src/main.cpp:170 src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:167
|
||||
#: src/main.cpp:170
|
||||
#, kde-format
|
||||
msgid "Tobias Fella"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:168
|
||||
#: src/main.cpp:171
|
||||
#, kde-format
|
||||
msgid "James Graham"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Black Hat"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:169
|
||||
#: src/main.cpp:172
|
||||
#, kde-format
|
||||
msgid "Original author of Spectral"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Alexey Rusakov"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:170
|
||||
#: src/main.cpp:173
|
||||
#, kde-format
|
||||
msgid "Maintainer of Quotient"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:171
|
||||
#: src/main.cpp:174
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:175
|
||||
#: src/main.cpp:178
|
||||
#, kde-format
|
||||
msgid "A Qt5 library to write cross-platform clients for Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:178
|
||||
#: src/main.cpp:181
|
||||
#, kde-format
|
||||
msgctxt "<version number> (built against <possibly different version number>)"
|
||||
msgid "%1 (built against %2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:324
|
||||
#: src/main.cpp:332
|
||||
#, kde-format
|
||||
msgid "Client for the matrix communication protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:325
|
||||
#: src/main.cpp:333
|
||||
#, kde-format
|
||||
msgid "Supports matrix: url scheme"
|
||||
msgstr ""
|
||||
@@ -650,23 +650,23 @@ msgstr ""
|
||||
msgid "<i>[This message was deleted: %1]</i>"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:553
|
||||
#: src/models/messageeventmodel.cpp:556
|
||||
#, kde-format
|
||||
msgid "[REDACTED: %1]"
|
||||
msgstr ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:862
|
||||
#: src/models/messageeventmodel.cpp:870
|
||||
#, kde-format
|
||||
msgid "1 user: "
|
||||
msgid_plural "%1 users: "
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/models/messageeventmodel.cpp:869
|
||||
#: src/models/messageeventmodel.cpp:877
|
||||
#, kde-format
|
||||
msgctxt "list separator"
|
||||
msgid ", "
|
||||
@@ -1079,7 +1079,7 @@ msgstr ""
|
||||
msgid "Encrypted Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:254
|
||||
#: src/notificationsmanager.cpp:217 src/qml/main.qml:257
|
||||
#, kde-format
|
||||
msgid "%1: %2"
|
||||
msgstr ""
|
||||
@@ -1313,6 +1313,16 @@ msgstr ""
|
||||
msgid "Stickers"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:23
|
||||
#, kde-format
|
||||
msgid "View Location"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/FullScreenMap.qml:64
|
||||
#, kde-format
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/HoverActions.qml:79
|
||||
#, kde-format
|
||||
msgid "This message was sent from a verified device"
|
||||
@@ -1339,6 +1349,17 @@ msgstr ""
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:17 src/qml/Panel/RoomDrawer.qml:155
|
||||
#, kde-format
|
||||
msgctxt "Locations on a map"
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/LocationPage.qml:51
|
||||
#, kde-format
|
||||
msgid "There are no locations shared in this room."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/Login/Homeserver.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
@@ -1569,41 +1590,41 @@ msgstr ""
|
||||
msgid "Clipboard image"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:202
|
||||
#: src/qml/Component/TimelineView.qml:203
|
||||
#, kde-format
|
||||
msgid "Jump to first unread message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:225
|
||||
#: src/qml/Component/TimelineView.qml:226
|
||||
#, kde-format
|
||||
msgid "Jump to latest message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:251
|
||||
#: src/qml/Component/TimelineView.qml:252
|
||||
#, kde-format
|
||||
msgid "Drag items here to share them"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Component/TimelineView.qml:277
|
||||
#: src/qml/Component/TimelineView.qml:278
|
||||
#, kde-format
|
||||
msgctxt "Message displayed when some users are typing"
|
||||
msgid "%2 is typing"
|
||||
msgid_plural "%2 are typing"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:17
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:36
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:19
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:38
|
||||
#, kde-format
|
||||
msgid "Activate Encryption"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:20
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:22
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"It will not be possible to deactivate the encryption after it is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:30
|
||||
#: src/qml/Dialog/ConfirmEncryptionDialog.qml:32
|
||||
#: src/qml/Dialog/ConfirmLogout.qml:29 src/qml/Page/ImageEditorPage.qml:125
|
||||
#: src/qml/Settings/AccountEditorPage.qml:183
|
||||
#, kde-format
|
||||
@@ -1964,35 +1985,35 @@ msgstr ""
|
||||
msgid "Copy link"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:295
|
||||
#: src/qml/main.qml:298
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Session Verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:305
|
||||
#: src/qml/main.qml:308
|
||||
#, kde-format
|
||||
msgid "User consent"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:310
|
||||
#: src/qml/main.qml:313
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your homeserver requires you to agree to its terms and conditions before "
|
||||
"being able to use it. Please click the button below to read them."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:315
|
||||
#: src/qml/main.qml:318
|
||||
#, kde-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:349
|
||||
#: src/qml/main.qml:352
|
||||
#, kde-format
|
||||
msgid "Start a chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/main.qml:351
|
||||
#: src/qml/main.qml:354
|
||||
#, kde-format
|
||||
msgid "Do you want to start a chat with %1?"
|
||||
msgstr ""
|
||||
@@ -2187,7 +2208,7 @@ msgid "Ban"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/BanSheet.qml:41
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:47
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:49
|
||||
#: src/qml/Menu/Timeline/ReportSheet.qml:41 src/qml/Page/InviteUserPage.qml:22
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
@@ -2266,27 +2287,27 @@ msgstr ""
|
||||
msgid "Configure Web Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:18
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:20
|
||||
#, kde-format
|
||||
msgid "Remove Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this user's recent messages"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:22
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:24
|
||||
#, kde-format
|
||||
msgid "Reason for removing this message"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:34
|
||||
#: src/qml/Menu/Timeline/RemoveSheet.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button 'Remove' as in 'Remove this message'"
|
||||
msgid "Remove"
|
||||
@@ -2585,8 +2606,8 @@ msgstr ""
|
||||
msgid "Explore rooms"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:66
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:120
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:63
|
||||
#: src/qml/Page/RoomList/ExploreComponent.qml:117
|
||||
#, kde-format
|
||||
msgid "Create rooms and chats"
|
||||
msgstr ""
|
||||
@@ -2746,57 +2767,62 @@ msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#, kde-format
|
||||
msgid "Show locations for this room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Remove room from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:150
|
||||
#: src/qml/Panel/RoomDrawer.qml:162
|
||||
#, kde-format
|
||||
msgid "Make room favorite"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:156
|
||||
#: src/qml/Panel/RoomDrawer.qml:168
|
||||
#, kde-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:165
|
||||
#: src/qml/Panel/RoomDrawer.qml:177
|
||||
#, kde-format
|
||||
msgid "Search user in room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:182
|
||||
#: src/qml/Panel/RoomDrawer.qml:194
|
||||
#, kde-format
|
||||
msgid "Invite user to room"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "%1 member"
|
||||
msgid_plural "%1 members"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/qml/Panel/RoomDrawer.qml:189
|
||||
#: src/qml/Panel/RoomDrawer.qml:201
|
||||
#, kde-format
|
||||
msgid "No member count"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:16 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/RoomSettings/Categories.qml:18 src/qml/RoomSettings/General.qml:20
|
||||
#: src/qml/Settings/SettingsPage.qml:13
|
||||
#, kde-format
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:27 src/qml/RoomSettings/Security.qml:19
|
||||
#: src/qml/RoomSettings/Categories.qml:29 src/qml/RoomSettings/Security.qml:19
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:38
|
||||
#: src/qml/RoomSettings/Categories.qml:40
|
||||
#, kde-format
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: src/qml/RoomSettings/Categories.qml:49 src/qml/Settings/SettingsPage.qml:25
|
||||
#: src/qml/RoomSettings/Categories.qml:51 src/qml/Settings/SettingsPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
@@ -56,6 +56,9 @@ add_library(neochat STATIC
|
||||
events/stickerevent.cpp
|
||||
models/reactionmodel.cpp
|
||||
delegatesizehelper.cpp
|
||||
models/livelocationsmodel.cpp
|
||||
models/locationsmodel.cpp
|
||||
locationhelper.cpp
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(neochat
|
||||
@@ -65,12 +68,6 @@ ecm_qt_declare_logging_category(neochat
|
||||
DEFAULT_SEVERITY Info
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(neochat
|
||||
HEADER "voip_logging.h"
|
||||
IDENTIFIER "voip"
|
||||
CATEGORY_NAME "org.kde.neochat.voip"
|
||||
)
|
||||
|
||||
add_executable(neochat-app
|
||||
main.cpp
|
||||
res.qrc
|
||||
@@ -117,20 +114,6 @@ endif()
|
||||
|
||||
target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR})
|
||||
target_link_libraries(neochat PUBLIC Qt::Core Qt::Quick Qt::Qml Qt::Gui Qt::Multimedia Qt::Network Qt::QuickControls2 KF${QT_MAJOR_VERSION}::I18n KF${QT_MAJOR_VERSION}::Kirigami2 KF${QT_MAJOR_VERSION}::Notifications KF${QT_MAJOR_VERSION}::ConfigCore KF${QT_MAJOR_VERSION}::ConfigGui KF${QT_MAJOR_VERSION}::CoreAddons KF${QT_MAJOR_VERSION}::SonnetCore KF${QT_MAJOR_VERSION}::ItemModels Quotient${QUOTIENT_SUFFIX} cmark::cmark ${QTKEYCHAIN_LIBRARIES} QCoro::Core)
|
||||
|
||||
if (TARGET PkgConfig::GSTREAMER)
|
||||
target_link_libraries(neochat PUBLIC PkgConfig::GSTREAMER)
|
||||
target_sources(neochat PRIVATE
|
||||
call/callmanager.cpp
|
||||
call/callsession.cpp
|
||||
call/audiosources.cpp
|
||||
call/videosources.cpp
|
||||
call/devicemonitor.cpp
|
||||
models/callparticipantsmodel.cpp
|
||||
call/callparticipant.cpp
|
||||
)
|
||||
target_compile_definitions(neochat PUBLIC GSTREAMER_AVAILABLE)
|
||||
endif()
|
||||
kconfig_add_kcfg_files(neochat GENERATE_MOC neochatconfig.kcfgc)
|
||||
|
||||
if(NEOCHAT_FLATPAK)
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "audiosources.h"
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QString>
|
||||
|
||||
#include "devicemonitor.h"
|
||||
|
||||
#include "neochatconfig.h"
|
||||
|
||||
int AudioSources::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return DeviceMonitor::instance().audioSources().size();
|
||||
}
|
||||
|
||||
QVariant AudioSources::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (index.row() >= DeviceMonitor::instance().audioSources().size()) {
|
||||
return QVariant(QStringLiteral("DEADBEEF"));
|
||||
}
|
||||
if (role == TitleRole) {
|
||||
return DeviceMonitor::instance().audioSources()[index.row()]->title;
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> AudioSources::roleNames() const
|
||||
{
|
||||
return {
|
||||
{TitleRole, "title"},
|
||||
};
|
||||
}
|
||||
|
||||
AudioSources::AudioSources()
|
||||
: QAbstractListModel()
|
||||
{
|
||||
connect(&DeviceMonitor::instance(), &DeviceMonitor::audioSourceAdded, this, [this]() {
|
||||
beginResetModel();
|
||||
endResetModel();
|
||||
Q_EMIT currentIndexChanged();
|
||||
});
|
||||
connect(&DeviceMonitor::instance(), &DeviceMonitor::audioSourceRemoved, this, [this]() {
|
||||
beginResetModel();
|
||||
endResetModel();
|
||||
Q_EMIT currentIndexChanged();
|
||||
});
|
||||
}
|
||||
|
||||
GstDevice *AudioSources::currentDevice() const
|
||||
{
|
||||
const auto config = NeoChatConfig::self();
|
||||
const QString name = config->microphone();
|
||||
for (const auto &audioSource : DeviceMonitor::instance().audioSources()) {
|
||||
if (audioSource->title == name) {
|
||||
qDebug() << "WebRTC: microphone:" << name;
|
||||
return audioSource->device;
|
||||
}
|
||||
}
|
||||
return DeviceMonitor::instance().audioSources()[0]->device;
|
||||
}
|
||||
|
||||
void AudioSources::setCurrentIndex(int index) const
|
||||
{
|
||||
if (DeviceMonitor::instance().audioSources().size() == 0) {
|
||||
return;
|
||||
}
|
||||
NeoChatConfig::setMicrophone(DeviceMonitor::instance().audioSources()[index]->title);
|
||||
NeoChatConfig::self()->save();
|
||||
}
|
||||
|
||||
int AudioSources::currentIndex() const
|
||||
{
|
||||
const auto config = NeoChatConfig::self();
|
||||
const QString name = config->microphone();
|
||||
if (name.isEmpty()) {
|
||||
return getDefaultDeviceIndex();
|
||||
}
|
||||
for (auto i = 0; i < DeviceMonitor::instance().audioSources().size(); i++) {
|
||||
if (DeviceMonitor::instance().audioSources()[i]->title == name) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int AudioSources::getDefaultDeviceIndex() const
|
||||
{
|
||||
for (auto i = 0; i < DeviceMonitor::instance().audioSources().size(); i++) {
|
||||
if (DeviceMonitor::instance().audioSources()[i]->isDefault) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QAbstractListModel>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
class AudioSources : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged)
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
TitleRole = Qt::UserRole + 1,
|
||||
};
|
||||
|
||||
static AudioSources &instance()
|
||||
{
|
||||
static AudioSources _instance;
|
||||
return _instance;
|
||||
}
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
GstDevice *currentDevice() const;
|
||||
|
||||
void setCurrentIndex(int index) const;
|
||||
int currentIndex() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void currentIndexChanged();
|
||||
|
||||
private:
|
||||
AudioSources();
|
||||
int getDefaultDeviceIndex() const;
|
||||
};
|
||||
@@ -1,199 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "calldevices.h"
|
||||
#include "audiodevicesmodel.h"
|
||||
#include "neochatconfig.h"
|
||||
#include "videodevicesmodel.h"
|
||||
#include <QStringView>
|
||||
#include <cstring>
|
||||
#include <optional>
|
||||
|
||||
#include "voiplogging.h"
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
extern "C" {
|
||||
#include "gst/gst.h"
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
|
||||
CallDevices::CallDevices()
|
||||
: QObject()
|
||||
, m_audioDevicesModel(new AudioDevicesModel(this))
|
||||
, m_videoDevicesModel(new VideoDevicesModel(this))
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
AudioDevicesModel *CallDevices::audioDevicesModel() const
|
||||
{
|
||||
return m_audioDevicesModel;
|
||||
}
|
||||
|
||||
VideoDevicesModel *CallDevices::videoDevicesModel() const
|
||||
{
|
||||
return m_videoDevicesModel;
|
||||
}
|
||||
|
||||
void CallDevices::addDevice(GstDevice *device)
|
||||
{
|
||||
if (!device)
|
||||
return;
|
||||
|
||||
gchar *type = gst_device_get_device_class(device);
|
||||
bool isVideo = !std::strncmp(type, "Video", 5);
|
||||
g_free(type);
|
||||
if (isVideo) {
|
||||
m_videoDevicesModel->addDevice(device);
|
||||
m_videoDevicesModel->setDefaultDevice();
|
||||
} else {
|
||||
m_audioDevicesModel->addDevice(device);
|
||||
m_audioDevicesModel->setDefaultDevice();
|
||||
}
|
||||
}
|
||||
|
||||
void CallDevices::removeDevice(GstDevice *device, bool changed)
|
||||
{
|
||||
if (device) {
|
||||
if (m_audioDevicesModel->removeDevice(device, changed) || m_videoDevicesModel->removeDevice(device, changed))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
gboolean newBusMessage(GstBus *bus, GstMessage *msg, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(bus)
|
||||
Q_UNUSED(user_data)
|
||||
|
||||
switch (GST_MESSAGE_TYPE(msg)) {
|
||||
case GST_MESSAGE_DEVICE_ADDED: {
|
||||
GstDevice *device;
|
||||
gst_message_parse_device_added(msg, &device);
|
||||
CallDevices::instance().addDevice(device);
|
||||
Q_EMIT CallDevices::instance().devicesChanged();
|
||||
break;
|
||||
}
|
||||
case GST_MESSAGE_DEVICE_REMOVED: {
|
||||
GstDevice *device;
|
||||
gst_message_parse_device_removed(msg, &device);
|
||||
CallDevices::instance().removeDevice(device, false);
|
||||
Q_EMIT CallDevices::instance().devicesChanged();
|
||||
break;
|
||||
}
|
||||
case GST_MESSAGE_DEVICE_CHANGED: {
|
||||
GstDevice *device;
|
||||
GstDevice *oldDevice;
|
||||
gst_message_parse_device_changed(msg, &device, &oldDevice);
|
||||
CallDevices::instance().removeDevice(oldDevice, true);
|
||||
CallDevices::instance().addDevice(device);
|
||||
Q_EMIT CallDevices::instance().devicesChanged();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void CallDevices::init()
|
||||
{
|
||||
static GstDeviceMonitor *monitor = nullptr;
|
||||
if (!monitor) {
|
||||
monitor = gst_device_monitor_new();
|
||||
Q_ASSERT(monitor);
|
||||
GstCaps *caps = gst_caps_new_empty_simple("audio/x-raw");
|
||||
gst_device_monitor_add_filter(monitor, "Audio/Source", caps);
|
||||
gst_device_monitor_add_filter(monitor, "Audio/Duplex", caps);
|
||||
gst_caps_unref(caps);
|
||||
caps = gst_caps_new_empty_simple("video/x-raw");
|
||||
gst_device_monitor_add_filter(monitor, "Video/Source", caps);
|
||||
gst_device_monitor_add_filter(monitor, "Video/Duplex", caps);
|
||||
gst_caps_unref(caps);
|
||||
|
||||
GstBus *bus = gst_device_monitor_get_bus(monitor);
|
||||
gst_bus_add_watch(bus, newBusMessage, nullptr);
|
||||
gst_object_unref(bus);
|
||||
if (!gst_device_monitor_start(monitor)) {
|
||||
qCCritical(voip) << "Failed to start device monitor";
|
||||
return;
|
||||
} else {
|
||||
qCDebug(voip) << "Device monitor started";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CallDevices::hasMicrophone() const
|
||||
{
|
||||
return m_audioDevicesModel->hasMicrophone();
|
||||
}
|
||||
|
||||
bool CallDevices::hasCamera() const
|
||||
{
|
||||
return m_videoDevicesModel->hasCamera();
|
||||
}
|
||||
|
||||
QStringList CallDevices::resolutions(const QString &cameraName) const
|
||||
{
|
||||
return m_videoDevicesModel->resolutions(cameraName);
|
||||
}
|
||||
|
||||
QStringList CallDevices::frameRates(const QString &cameraName, const QString &resolution) const
|
||||
{
|
||||
if (auto s = m_videoDevicesModel->getVideoSource(cameraName); s) {
|
||||
if (auto it = std::find_if(s->caps.cbegin(),
|
||||
s->caps.cend(),
|
||||
[&](const auto &c) {
|
||||
return c.resolution == resolution;
|
||||
});
|
||||
it != s->caps.cend())
|
||||
return it->frameRates;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
GstDevice *CallDevices::audioDevice() const
|
||||
{
|
||||
return m_audioDevicesModel->currentDevice();
|
||||
}
|
||||
|
||||
GstDevice *CallDevices::videoDevice(QPair<int, int> &resolution, QPair<int, int> &frameRate) const
|
||||
{
|
||||
return m_videoDevicesModel->currentDevice(resolution, frameRate);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
bool CallDevices::hasMicrophone() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CallDevices::hasCamera() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
QStringList CallDevices::names(bool, const QString &) const
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
QStringList CallDevices::resolutions(const QString &) const
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
QStringList CallDevices::frameRates(const QString &, const QString &) const
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,64 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Contributors
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <QObject>
|
||||
|
||||
typedef struct _GstDevice GstDevice;
|
||||
|
||||
class CallDevices;
|
||||
class AudioDevicesModel;
|
||||
class VideoDevicesModel;
|
||||
|
||||
class CallDevices : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(AudioDevicesModel *audioDevices READ audioDevicesModel CONSTANT);
|
||||
Q_PROPERTY(VideoDevicesModel *videoDevices READ videoDevicesModel CONSTANT);
|
||||
|
||||
public:
|
||||
static CallDevices &instance()
|
||||
{
|
||||
static CallDevices instance;
|
||||
return instance;
|
||||
}
|
||||
CallDevices(CallDevices const &) = delete;
|
||||
void operator=(CallDevices const &) = delete;
|
||||
|
||||
bool hasMicrophone() const;
|
||||
bool hasCamera() const;
|
||||
QStringList names(bool isVideo, const QString &defaultDevice) const;
|
||||
QStringList resolutions(const QString &cameraName) const;
|
||||
QStringList frameRates(const QString &cameraName, const QString &resolution) const;
|
||||
|
||||
AudioDevicesModel *audioDevicesModel() const;
|
||||
VideoDevicesModel *videoDevicesModel() const;
|
||||
|
||||
void addDevice(GstDevice *device);
|
||||
void removeDevice(GstDevice *device, bool changed);
|
||||
|
||||
Q_SIGNALS:
|
||||
void devicesChanged();
|
||||
|
||||
private:
|
||||
CallDevices();
|
||||
|
||||
void init();
|
||||
GstDevice *audioDevice() const;
|
||||
GstDevice *videoDevice(QPair<int, int> &resolution, QPair<int, int> &frameRate) const;
|
||||
|
||||
AudioDevicesModel *m_audioDevicesModel;
|
||||
VideoDevicesModel *m_videoDevicesModel;
|
||||
|
||||
friend class CallSession;
|
||||
friend class Audio;
|
||||
};
|
||||
@@ -1,617 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2020-2021 Nheko Authors
|
||||
// SPDX-FileCopyrightText: 2021-2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "callmanager.h"
|
||||
|
||||
#include "controller.h"
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include "voiplogging.h"
|
||||
#include <KLocalizedString>
|
||||
#include <QDateTime>
|
||||
|
||||
#include <QMediaPlaylist>
|
||||
#include <QMimeDatabase>
|
||||
#include <qcoro/qcorosignal.h>
|
||||
#include <qt_connection_util.h>
|
||||
|
||||
#include "neochatconfig.h"
|
||||
|
||||
#define CALL_VERSION "1"
|
||||
|
||||
CallManager::CallManager()
|
||||
{
|
||||
init();
|
||||
connect(&Controller::instance(), &Controller::activeConnectionChanged, this, [this] {
|
||||
updateTurnServers();
|
||||
});
|
||||
}
|
||||
|
||||
QCoro::Task<void> CallManager::updateTurnServers()
|
||||
{
|
||||
if (m_cachedTurnUrisValidUntil > QDateTime::currentDateTime()) {
|
||||
co_return;
|
||||
}
|
||||
Controller::instance().activeConnection()->getTurnServers();
|
||||
|
||||
auto servers = co_await qCoro(Controller::instance().activeConnection(), &Connection::turnServersChanged);
|
||||
m_cachedTurnUrisValidUntil = QDateTime::currentDateTime().addSecs(servers["ttl"].toInt());
|
||||
|
||||
const auto password = servers["password"].toString();
|
||||
const auto username = servers["username"].toString();
|
||||
const auto uris = servers["uris"].toArray();
|
||||
|
||||
m_cachedTurnUris.clear();
|
||||
for (const auto &u : uris) {
|
||||
QString uri = u.toString();
|
||||
auto c = uri.indexOf(':');
|
||||
if (c == -1) {
|
||||
qCWarning(voip) << "Invalid TURN URI:" << uri;
|
||||
continue;
|
||||
}
|
||||
QString scheme = uri.left(c);
|
||||
if (scheme != "turn" && scheme != "turns") {
|
||||
qCWarning(voip) << "Invalid TURN scheme:" << scheme;
|
||||
continue;
|
||||
}
|
||||
m_cachedTurnUris += QStringLiteral("%1://%2:%3@%4").arg(scheme, QUrl::toPercentEncoding(username), QUrl::toPercentEncoding(password), uri.mid(c + 1));
|
||||
}
|
||||
}
|
||||
|
||||
QString CallManager::callId() const
|
||||
{
|
||||
return m_callId;
|
||||
}
|
||||
|
||||
void CallManager::handleCallEvent(NeoChatRoom *room, const Quotient::RoomEvent *event)
|
||||
{
|
||||
if (const auto &inviteEvent = eventCast<const CallInviteEvent>(event)) {
|
||||
handleInvite(room, inviteEvent);
|
||||
} else if (const auto &hangupEvent = eventCast<const CallHangupEvent>(event)) {
|
||||
handleHangup(room, hangupEvent);
|
||||
} else if (const auto &candidatesEvent = eventCast<const CallCandidatesEvent>(event)) {
|
||||
handleCandidates(room, candidatesEvent);
|
||||
} else if (const auto &answerEvent = eventCast<const CallAnswerEvent>(event)) {
|
||||
handleAnswer(room, answerEvent);
|
||||
} else if (const auto &negotiateEvent = eventCast<const CallNegotiateEvent>(event)) {
|
||||
handleNegotiate(room, negotiateEvent);
|
||||
}
|
||||
}
|
||||
|
||||
void CallManager::checkStartCall()
|
||||
{
|
||||
if ((m_incomingCandidates.isEmpty() && !m_incomingSdp.contains("candidates"_ls)) || m_incomingSdp.isEmpty()) {
|
||||
qCDebug(voip) << "Not ready to start this call yet";
|
||||
return;
|
||||
}
|
||||
m_session->acceptAnswer(m_incomingSdp, m_incomingCandidates, m_remoteUser->id());
|
||||
m_incomingCandidates.clear();
|
||||
m_incomingSdp.clear();
|
||||
setGlobalState(ACTIVE);
|
||||
}
|
||||
|
||||
void CallManager::handleAnswer(NeoChatRoom *room, const Quotient::CallAnswerEvent *event)
|
||||
{
|
||||
if (globalState() != OUTGOING) {
|
||||
qCDebug(voip) << "Ignoring answer while in state" << globalState();
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->callId() != m_callId) {
|
||||
qCDebug(voip) << "Ignoring answer for unknown call id" << event->callId() << ". Our call id is" << m_callId;
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->senderId() == room->localUser()->id() && partyId() == event->contentJson()["party_id"].toString()) {
|
||||
qCDebug(voip) << "Ignoring echo for answer";
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->senderId() == room->localUser()->id()) {
|
||||
qCDebug(voip) << "Call was accepted on a different device";
|
||||
// Show the user that call was accepted on a different device
|
||||
// Stop ringing
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO handle that MSC wrt to accepting on other devices
|
||||
m_session->setMetadata(event->contentJson()["org.matrix.msc3077.sdp_stream_metadata"].toObject());
|
||||
m_remotePartyId = event->contentJson()["party_id"].toString();
|
||||
m_incomingSdp = event->sdp();
|
||||
checkStartCall();
|
||||
}
|
||||
|
||||
void CallManager::handleCandidates(NeoChatRoom *room, const Quotient::CallCandidatesEvent *event)
|
||||
{
|
||||
// TODO what if candidates come before invite? this looks wrong
|
||||
if (globalState() == IDLE) {
|
||||
qCDebug(voip) << "Ignoring candidates in state" << globalState();
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->senderId() == room->localUser()->id()) {
|
||||
qCDebug(voip) << "Ignoring candidates sent by ourself";
|
||||
return;
|
||||
}
|
||||
|
||||
if (globalState() == ACTIVE) {
|
||||
QVector<Candidate> candidates;
|
||||
for (const auto &candidate : event->candidates()) {
|
||||
candidates += Candidate{candidate.toObject()["candidate"].toString(),
|
||||
candidate.toObject()["sdpMLineIndex"].toInt(),
|
||||
candidate.toObject()["sdpMid"].toString()};
|
||||
}
|
||||
m_session->acceptCandidates(candidates);
|
||||
return;
|
||||
}
|
||||
|
||||
qCDebug(voip) << "Storing" << event->candidates().size() << "incoming candidates";
|
||||
for (const auto &candidate : event->candidates()) {
|
||||
m_incomingCandidates +=
|
||||
Candidate{candidate.toObject()["candidate"].toString(), candidate.toObject()["sdpMLineIndex"].toInt(), candidate.toObject()["sdpMid"].toString()};
|
||||
}
|
||||
|
||||
if (globalState() == OUTGOING) {
|
||||
checkStartCall();
|
||||
}
|
||||
}
|
||||
|
||||
void CallManager::handleInvite(NeoChatRoom *room, const Quotient::CallInviteEvent *event)
|
||||
{
|
||||
if (event->senderId() == room->localUser()->id()) {
|
||||
qCDebug(voip) << "Igoring invite sent by ourself";
|
||||
return;
|
||||
}
|
||||
if (globalState() != IDLE) {
|
||||
// TODO handle glare
|
||||
qCDebug(voip) << "Ignoring invite while already in a call";
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->originTimestamp() < QDateTime::currentDateTime().addSecs(-60)) {
|
||||
qCDebug(voip) << "Ignoring outdated invite; sent at:" << event->originTimestamp() << "current:" << QDateTime::currentDateTime();
|
||||
return;
|
||||
}
|
||||
|
||||
setGlobalState(INCOMING);
|
||||
|
||||
m_incomingSdp = event->sdp();
|
||||
setRemoteUser(dynamic_cast<NeoChatUser *>(room->user(event->senderId())));
|
||||
setRoom(room);
|
||||
setCallId(event->callId());
|
||||
setPartyId(generatePartyId());
|
||||
m_remotePartyId = event->contentJson()["party_id"].toString();
|
||||
setLifetime(event->lifetime());
|
||||
Q_EMIT incomingCall(remoteUser(), room, event->lifetime(), callId());
|
||||
ring(event->lifetime());
|
||||
}
|
||||
|
||||
void CallManager::handleNegotiate(NeoChatRoom *room, const Quotient::CallNegotiateEvent *event)
|
||||
{
|
||||
Q_UNUSED(room);
|
||||
if (event->callId() != m_callId) {
|
||||
qCDebug(voip) << "Ignoring negotiate for unknown call id" << event->callId() << ". Our call id is" << m_callId;
|
||||
return;
|
||||
}
|
||||
if (event->partyId() != m_remotePartyId) {
|
||||
qCDebug(voip) << "Ignoring negotiate for unknown party id" << event->partyId() << ". Remote party id is" << m_remotePartyId;
|
||||
return;
|
||||
}
|
||||
if (event->senderId() != m_remoteUser->id()) {
|
||||
qCDebug(voip) << "Ignoring negotiate for unknown user id" << event->senderId() << ". Remote user id is" << m_remoteUser->id();
|
||||
return;
|
||||
}
|
||||
// TODO DUPLICATES FFS
|
||||
m_session->setMetadata(event->contentJson()["org.matrix.msc3077.sdp_stream_metadata"].toObject());
|
||||
m_session->renegotiateOffer(event->sdp(), m_remoteUser->id(), event->contentJson()["description"]["type"] == QStringLiteral("answer"));
|
||||
}
|
||||
|
||||
void CallManager::ring(int lifetime)
|
||||
{
|
||||
// TODO put a better default ringtone in the kcfg
|
||||
// TODO which one? ship one? plasma-mobile-sounds?
|
||||
if (!QFileInfo::exists(NeoChatConfig::ringtone())) {
|
||||
qCWarning(voip) << "Ringtone file doesn't exist. Not audibly ringing";
|
||||
return;
|
||||
}
|
||||
auto ringtone = QUrl::fromLocalFile(NeoChatConfig::ringtone());
|
||||
m_playlist.setPlaybackMode(QMediaPlaylist::Loop);
|
||||
m_playlist.clear();
|
||||
m_ringPlayer.setPlaylist(&m_playlist);
|
||||
m_playlist.addMedia(ringtone);
|
||||
m_ringPlayer.play();
|
||||
QTimer::singleShot(lifetime, this, [this]() {
|
||||
stopRinging();
|
||||
Q_EMIT callEnded();
|
||||
});
|
||||
}
|
||||
|
||||
void CallManager::stopRinging()
|
||||
{
|
||||
m_ringPlayer.stop();
|
||||
}
|
||||
|
||||
void CallManager::handleHangup(NeoChatRoom *room, const Quotient::CallHangupEvent *event)
|
||||
{
|
||||
if (globalState() == IDLE) {
|
||||
qCDebug(voip) << "Ignoring hangup since we're not in a call";
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->senderId() == room->localUser()->id()) {
|
||||
qCDebug(voip) << "Ignoring hangup we sent ourselves";
|
||||
// TODO hangup-to-decline by different device?
|
||||
return;
|
||||
}
|
||||
|
||||
if (event->callId() != m_callId) {
|
||||
qCDebug(voip) << "Hangup not for this call. Event's call id:" << event->callId() << ". Our call id" << m_callId;
|
||||
return;
|
||||
}
|
||||
|
||||
stopRinging();
|
||||
if (m_session) {
|
||||
m_session->end();
|
||||
delete m_session;
|
||||
}
|
||||
setGlobalState(IDLE);
|
||||
Q_EMIT callEnded();
|
||||
}
|
||||
|
||||
void CallManager::acceptCall()
|
||||
{
|
||||
// TODO metadata for this case
|
||||
if (globalState() != INCOMING) {
|
||||
qCWarning(voip) << "Not accepting call while state is" << globalState();
|
||||
return;
|
||||
}
|
||||
|
||||
stopRinging();
|
||||
|
||||
if (!checkPlugins()) {
|
||||
qCCritical(voip) << "Missing plugins; can't accept call";
|
||||
}
|
||||
|
||||
updateTurnServers();
|
||||
// TODO wait until candidates are here
|
||||
|
||||
m_session = CallSession::acceptCall(m_incomingSdp, m_incomingCandidates, m_cachedTurnUris, m_remoteUser->id(), this);
|
||||
m_participants->clear();
|
||||
connect(m_session.data(), &CallSession::stateChanged, this, [this] {
|
||||
Q_EMIT stateChanged();
|
||||
if (state() == CallSession::ICEFAILED) {
|
||||
Q_EMIT callEnded();
|
||||
}
|
||||
}); // TODO refactor away?
|
||||
m_incomingCandidates.clear();
|
||||
connectSingleShot(m_session.data(), &CallSession::answerCreated, this, [this](const QString &_sdp, const QVector<Candidate> &candidates) {
|
||||
const auto &[uuids, sdp] = mangleSdp(_sdp);
|
||||
QVector<std::pair<QString, QString>> msidToPurpose;
|
||||
for (const auto &uuid : uuids) {
|
||||
msidToPurpose += {uuid, "m.usermedia"}; // TODO
|
||||
}
|
||||
auto answer = createAnswer(m_callId, sdp, msidToPurpose);
|
||||
m_room->postJson("m.call.answer", answer);
|
||||
qCWarning(voip) << "Sending Answer";
|
||||
auto c = createCandidates(m_callId, candidates);
|
||||
auto cand = createCandidates(m_callId, candidates);
|
||||
m_room->postJson("m.call.candidates", cand);
|
||||
qCWarning(voip) << "Sending Candidates";
|
||||
setGlobalState(ACTIVE);
|
||||
});
|
||||
}
|
||||
|
||||
void CallManager::hangupCall()
|
||||
{
|
||||
qCDebug(voip) << "Ending call";
|
||||
if (m_session) {
|
||||
m_session->end();
|
||||
delete m_session;
|
||||
m_session = nullptr;
|
||||
}
|
||||
stopRinging();
|
||||
m_room->postJson("m.call.hangup", createHangup(m_callId));
|
||||
setGlobalState(IDLE);
|
||||
Q_EMIT callEnded();
|
||||
}
|
||||
|
||||
NeoChatUser *CallManager::remoteUser() const
|
||||
{
|
||||
return m_remoteUser;
|
||||
}
|
||||
|
||||
NeoChatRoom *CallManager::room() const
|
||||
{
|
||||
return m_room;
|
||||
}
|
||||
|
||||
CallSession::State CallManager::state() const
|
||||
{
|
||||
if (!m_session) {
|
||||
return CallSession::DISCONNECTED;
|
||||
}
|
||||
return m_session->state();
|
||||
}
|
||||
|
||||
int CallManager::lifetime() const
|
||||
{
|
||||
return m_lifetime;
|
||||
}
|
||||
|
||||
void CallManager::ignoreCall()
|
||||
{
|
||||
setLifetime(0);
|
||||
setCallId({});
|
||||
setRoom(nullptr);
|
||||
setRemoteUser(nullptr);
|
||||
}
|
||||
|
||||
void CallManager::startCall(NeoChatRoom *room)
|
||||
{
|
||||
if (m_session) {
|
||||
// Don't start calls if there already is one
|
||||
Q_EMIT Controller::instance().errorOccured(i18n("A call is already started"));
|
||||
return;
|
||||
}
|
||||
if (room->users().size() != 2) {
|
||||
// Don't start calls if the room doesn't have exactly two members
|
||||
Q_EMIT Controller::instance().errorOccured(i18n("Calls are limited to 1:1 rooms"));
|
||||
return;
|
||||
}
|
||||
|
||||
auto missingPlugins = CallSession::missingPlugins();
|
||||
if (!missingPlugins.isEmpty()) {
|
||||
qCCritical(voip) << "Missing GStreamer plugins:" << missingPlugins;
|
||||
Q_EMIT Controller::instance().errorOccured("Missing GStreamer plugins.");
|
||||
return;
|
||||
}
|
||||
|
||||
setLifetime(60000);
|
||||
setRoom(room);
|
||||
setRemoteUser(otherUser(room));
|
||||
|
||||
updateTurnServers();
|
||||
|
||||
setCallId(generateCallId());
|
||||
setPartyId(generatePartyId());
|
||||
|
||||
m_participants->clear();
|
||||
for (const auto &user : m_room->users()) {
|
||||
auto participant = new CallParticipant(m_session);
|
||||
participant->m_user = dynamic_cast<NeoChatUser *>(user);
|
||||
m_participants->addParticipant(participant);
|
||||
}
|
||||
|
||||
m_session = CallSession::startCall(m_cachedTurnUris, this);
|
||||
setGlobalState(OUTGOING);
|
||||
connect(m_session, &CallSession::stateChanged, this, [this] {
|
||||
Q_EMIT stateChanged();
|
||||
if (state() == CallSession::ICEFAILED) {
|
||||
Q_EMIT callEnded();
|
||||
}
|
||||
});
|
||||
|
||||
connectSingleShot(m_session.data(), &CallSession::offerCreated, this, [this](const QString &_sdp, const QVector<Candidate> &candidates) {
|
||||
const auto &[uuids, sdp] = mangleSdp(_sdp);
|
||||
QVector<std::pair<QString, QString>> msidToPurpose;
|
||||
for (const auto &uuid : uuids) {
|
||||
msidToPurpose += {uuid, "m.usermedia"}; // TODO
|
||||
}
|
||||
qCWarning(voip) << "Sending Invite";
|
||||
qCWarning(voip) << "Sending Candidates";
|
||||
auto invite = createInvite(m_callId, sdp, msidToPurpose);
|
||||
auto c = createCandidates(m_callId, candidates);
|
||||
m_room->postJson("m.call.invite", invite);
|
||||
m_room->postJson("m.call.candidates", c);
|
||||
});
|
||||
|
||||
connect(m_session, &CallSession::renegotiate, this, [this](const QString &sdp, const QString &type) {
|
||||
QVector<std::pair<QString, QString>> msidToPurpose;
|
||||
const auto &[uuids, _sdp] = mangleSdp(sdp);
|
||||
for (const auto &uuid : uuids) {
|
||||
msidToPurpose += {uuid, "m.usermedia"}; // TODO
|
||||
}
|
||||
QJsonObject json{
|
||||
{QStringLiteral("lifetime"), 60000},
|
||||
{QStringLiteral("version"), 1},
|
||||
{QStringLiteral("description"), QJsonObject{{QStringLiteral("type"), type}, {QStringLiteral("sdp"), _sdp}}}, // AAAAA
|
||||
{QStringLiteral("party_id"), m_partyId},
|
||||
{QStringLiteral("call_id"), m_callId},
|
||||
};
|
||||
QJsonObject metadata;
|
||||
for (const auto &[stream, purpose] : msidToPurpose) {
|
||||
QJsonObject data = {{"purpose", purpose}};
|
||||
metadata[stream] = data;
|
||||
}
|
||||
json["org.matrix.msc3077.sdp_stream_metadata"] = metadata;
|
||||
m_room->postJson("m.call.negotiate", json);
|
||||
});
|
||||
}
|
||||
|
||||
QString CallManager::generateCallId() const
|
||||
{
|
||||
return QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz");
|
||||
}
|
||||
|
||||
QString CallManager::generatePartyId() const
|
||||
{
|
||||
return QUuid::createUuid().toString();
|
||||
}
|
||||
|
||||
void CallManager::setCallId(const QString &callId)
|
||||
{
|
||||
m_callId = callId;
|
||||
Q_EMIT callIdChanged();
|
||||
}
|
||||
|
||||
void CallManager::setPartyId(const QString &partyId)
|
||||
{
|
||||
m_partyId = partyId;
|
||||
}
|
||||
|
||||
void CallManager::setMuted(bool muted)
|
||||
{
|
||||
if (!m_session) {
|
||||
return;
|
||||
}
|
||||
m_session->setMuted(muted);
|
||||
Q_EMIT mutedChanged();
|
||||
}
|
||||
|
||||
bool CallManager::muted() const
|
||||
{
|
||||
if (!m_session) {
|
||||
return false;
|
||||
}
|
||||
return m_session->muted();
|
||||
}
|
||||
|
||||
bool CallManager::init()
|
||||
{
|
||||
qRegisterMetaType<Candidate>();
|
||||
qRegisterMetaType<QVector<Candidate>>();
|
||||
GError *error = nullptr;
|
||||
if (!gst_init_check(nullptr, nullptr, &error)) {
|
||||
QString strError;
|
||||
if (error) {
|
||||
strError += error->message;
|
||||
g_error_free(error);
|
||||
}
|
||||
qCCritical(voip) << "Failed to initialize GStreamer:" << strError;
|
||||
return false;
|
||||
}
|
||||
|
||||
gchar *version = gst_version_string();
|
||||
qCDebug(voip) << "GStreamer version" << version;
|
||||
g_free(version);
|
||||
|
||||
// Required to register the qml types
|
||||
auto _sink = gst_element_factory_make("qmlglsink", nullptr);
|
||||
Q_ASSERT(_sink);
|
||||
gst_object_unref(_sink);
|
||||
return true;
|
||||
}
|
||||
|
||||
void CallManager::setLifetime(int lifetime)
|
||||
{
|
||||
m_lifetime = lifetime;
|
||||
Q_EMIT lifetimeChanged();
|
||||
}
|
||||
|
||||
void CallManager::setRoom(NeoChatRoom *room)
|
||||
{
|
||||
m_room = room;
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
void CallManager::setRemoteUser(NeoChatUser *user)
|
||||
{
|
||||
m_remoteUser = user;
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
NeoChatUser *CallManager::otherUser(NeoChatRoom *room)
|
||||
{
|
||||
return dynamic_cast<NeoChatUser *>(room->users()[0]->id() == room->localUser()->id() ? room->users()[1] : room->users()[0]);
|
||||
}
|
||||
|
||||
QJsonObject CallManager::createCandidates(const QString &callId, const QVector<Candidate> &candidates) const
|
||||
{
|
||||
QJsonArray candidatesJson;
|
||||
for (const auto &candidate : candidates) {
|
||||
candidatesJson += QJsonObject{{"candidate", candidate.candidate}, {"sdpMid", candidate.sdpMid}, {"sdpMLineIndex", candidate.sdpMLineIndex}};
|
||||
}
|
||||
return QJsonObject{{"call_id", callId}, {"candidates", candidatesJson}, {"version", CALL_VERSION}, {"party_id", "todopartyid"}};
|
||||
}
|
||||
|
||||
void CallManager::setGlobalState(GlobalState globalState)
|
||||
{
|
||||
if (m_globalState == globalState) {
|
||||
return;
|
||||
}
|
||||
m_globalState = globalState;
|
||||
Q_EMIT globalStateChanged();
|
||||
}
|
||||
|
||||
CallManager::GlobalState CallManager::globalState() const
|
||||
{
|
||||
return m_globalState;
|
||||
}
|
||||
|
||||
CallParticipantsModel *CallManager::callParticipants() const
|
||||
{
|
||||
return m_participants;
|
||||
}
|
||||
|
||||
std::pair<QStringList, QString> CallManager::mangleSdp(const QString &_sdp)
|
||||
{
|
||||
QString sdp = _sdp;
|
||||
QRegularExpression regex("msid:user[0-9]+@host-[0-9a-f]+ webrtctransceiver([0-9])");
|
||||
auto iter = regex.globalMatch(sdp);
|
||||
QStringList uuids;
|
||||
|
||||
while (iter.hasNext()) {
|
||||
auto uuid = QUuid::createUuid();
|
||||
auto match = iter.next();
|
||||
uuids += uuid.toString();
|
||||
sdp.replace(match.captured(), QStringLiteral("msid:") + uuid.toString() + QStringLiteral(" foo"));
|
||||
}
|
||||
return {uuids, sdp};
|
||||
}
|
||||
|
||||
QJsonObject CallManager::createInvite(const QString &callId, const QString &sdp, const QVector<std::pair<QString, QString>> &msidToPurpose) const
|
||||
{
|
||||
QJsonObject metadata;
|
||||
for (const auto &[msid, purpose] : msidToPurpose) {
|
||||
metadata[msid] = QJsonObject{{"purpose", purpose}};
|
||||
}
|
||||
return {{"call_id", callId},
|
||||
{"party_id", "todopartyid"},
|
||||
{"lifetime", 60000},
|
||||
{"capabilities", QJsonObject{{"m.call.transferee", false}}},
|
||||
{"offer", QJsonObject{{"sdp", sdp}, {"type", "offer"}}},
|
||||
{"org.matrix.msc3077.sdp_stream_metadata", metadata},
|
||||
{"version", CALL_VERSION}};
|
||||
}
|
||||
|
||||
QJsonObject CallManager::createHangup(const QString &callId) const
|
||||
{
|
||||
return {{"call_id", callId}, {"party_id", "todopartyid"}, {"version", CALL_VERSION}};
|
||||
}
|
||||
|
||||
QJsonObject CallManager::createAnswer(const QString &callId, const QString &sdp, const QVector<std::pair<QString, QString>> &msidToPurpose) const
|
||||
{
|
||||
Q_ASSERT(!callId.isEmpty());
|
||||
QJsonObject metadata;
|
||||
for (const auto &[msid, purpose] : msidToPurpose) {
|
||||
metadata[msid] = QJsonObject{{"purpose", purpose}};
|
||||
}
|
||||
return {{"call_id", callId},
|
||||
{"party_id", "todopartyid"},
|
||||
{"lifetime", "lifetime"},
|
||||
{"capabilities", QJsonObject{{"m.call.transferee", false}}},
|
||||
{"offer", QJsonObject{{"sdp", sdp}, {"type", "offer"}}},
|
||||
{"org.matrix.msc3077.sdp_stream_metadata", metadata},
|
||||
{"version", CALL_VERSION}};
|
||||
}
|
||||
|
||||
void CallManager::toggleCamera()
|
||||
{
|
||||
m_session->toggleCamera();
|
||||
}
|
||||
QString CallManager::partyId() const
|
||||
{
|
||||
return m_partyId;
|
||||
}
|
||||
|
||||
bool CallManager::checkPlugins() const
|
||||
{
|
||||
auto missingPlugins = m_session->missingPlugins();
|
||||
if (!missingPlugins.isEmpty()) {
|
||||
qCCritical(voip) << "Missing GStreamer plugins:" << missingPlugins;
|
||||
Q_EMIT Controller::instance().errorOccured("Missing GStreamer plugins.");
|
||||
}
|
||||
return !missingPlugins.isEmpty();
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2020-2021 Nheko Authors
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "neochatroom.h"
|
||||
#include "neochatuser.h"
|
||||
#include <QAbstractListModel>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <events/roomevent.h>
|
||||
|
||||
#include "callsession.h"
|
||||
|
||||
#include "models/callparticipantsmodel.h"
|
||||
#include <events/callevents.h>
|
||||
|
||||
#include <QMediaPlayer>
|
||||
#include <QMediaPlaylist>
|
||||
#include <QTimer>
|
||||
#include <qcoro/task.h>
|
||||
|
||||
#include <qobjectdefs.h>
|
||||
|
||||
class CallSession;
|
||||
class QQuickItem;
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
class CallManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum GlobalState {
|
||||
IDLE,
|
||||
INCOMING,
|
||||
OUTGOING,
|
||||
ACTIVE,
|
||||
};
|
||||
Q_ENUM(GlobalState);
|
||||
|
||||
Q_PROPERTY(GlobalState globalState READ globalState NOTIFY globalStateChanged)
|
||||
Q_PROPERTY(NeoChatUser *remoteUser READ remoteUser NOTIFY remoteUserChanged)
|
||||
Q_PROPERTY(QString callId READ callId NOTIFY callIdChanged)
|
||||
Q_PROPERTY(NeoChatRoom *room READ room NOTIFY roomChanged)
|
||||
Q_PROPERTY(int lifetime READ lifetime NOTIFY lifetimeChanged)
|
||||
Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged)
|
||||
Q_PROPERTY(QQuickItem *item MEMBER m_item) // TODO allow for different devices for each session
|
||||
Q_PROPERTY(CallSession::State state READ state NOTIFY stateChanged)
|
||||
Q_PROPERTY(CallParticipantsModel *callParticipants READ callParticipants CONSTANT)
|
||||
|
||||
static CallManager &instance()
|
||||
{
|
||||
static CallManager _instance;
|
||||
return _instance;
|
||||
}
|
||||
|
||||
[[nodiscard]] QString callId() const;
|
||||
[[nodiscard]] QString partyId() const;
|
||||
|
||||
CallSession::State state() const;
|
||||
|
||||
NeoChatUser *remoteUser() const;
|
||||
NeoChatRoom *room() const;
|
||||
|
||||
int lifetime() const;
|
||||
|
||||
bool muted() const;
|
||||
void setMuted(bool muted);
|
||||
|
||||
CallManager::GlobalState globalState() const;
|
||||
|
||||
void handleCallEvent(NeoChatRoom *room, const RoomEvent *event);
|
||||
|
||||
Q_INVOKABLE void startCall(NeoChatRoom *room);
|
||||
Q_INVOKABLE void acceptCall();
|
||||
Q_INVOKABLE void hangupCall();
|
||||
Q_INVOKABLE void ignoreCall();
|
||||
|
||||
Q_INVOKABLE void toggleCamera();
|
||||
|
||||
QCoro::Task<void> updateTurnServers();
|
||||
|
||||
[[nodiscard]] CallParticipantsModel *callParticipants() const;
|
||||
|
||||
QQuickItem *m_item = nullptr;
|
||||
|
||||
Q_SIGNALS:
|
||||
void currentCallIdChanged();
|
||||
void incomingCall(NeoChatUser *user, NeoChatRoom *room, int timeout, const QString &callId);
|
||||
void callEnded();
|
||||
void remoteUserChanged();
|
||||
void callIdChanged();
|
||||
void roomChanged();
|
||||
void stateChanged();
|
||||
void lifetimeChanged();
|
||||
void mutedChanged();
|
||||
void globalStateChanged();
|
||||
|
||||
private:
|
||||
CallManager();
|
||||
QString m_callId;
|
||||
|
||||
QVector<Candidate> m_incomingCandidates;
|
||||
QString m_incomingSdp;
|
||||
|
||||
[[nodiscard]] bool checkPlugins() const;
|
||||
|
||||
QStringList m_cachedTurnUris;
|
||||
QDateTime m_cachedTurnUrisValidUntil = QDateTime::fromSecsSinceEpoch(0);
|
||||
|
||||
NeoChatUser *m_remoteUser = nullptr;
|
||||
NeoChatRoom *m_room = nullptr;
|
||||
QString m_remotePartyId;
|
||||
QString m_partyId;
|
||||
int m_lifetime = 0;
|
||||
|
||||
GlobalState m_globalState = IDLE;
|
||||
|
||||
void handleInvite(NeoChatRoom *room, const CallInviteEvent *event);
|
||||
void handleHangup(NeoChatRoom *room, const CallHangupEvent *event);
|
||||
void handleCandidates(NeoChatRoom *room, const CallCandidatesEvent *event);
|
||||
void handleAnswer(NeoChatRoom *room, const CallAnswerEvent *event);
|
||||
void handleNegotiate(NeoChatRoom *room, const CallNegotiateEvent *event);
|
||||
void checkStartCall();
|
||||
|
||||
void ring(int lifetime);
|
||||
void stopRinging();
|
||||
|
||||
[[nodiscard]] QString generateCallId() const;
|
||||
[[nodiscard]] QString generatePartyId() const;
|
||||
bool init();
|
||||
|
||||
bool m_initialised = false;
|
||||
QPointer<CallSession> m_session = nullptr;
|
||||
|
||||
void setLifetime(int lifetime);
|
||||
void setRoom(NeoChatRoom *room);
|
||||
void setRemoteUser(NeoChatUser *user);
|
||||
void setCallId(const QString &callId);
|
||||
void setPartyId(const QString &partyId);
|
||||
void setGlobalState(GlobalState state);
|
||||
|
||||
std::pair<QStringList, QString> mangleSdp(const QString &sdp);
|
||||
|
||||
CallParticipantsModel *m_participants = new CallParticipantsModel();
|
||||
|
||||
NeoChatUser *otherUser(NeoChatRoom *room);
|
||||
|
||||
[[nodiscard]] QJsonObject createCandidates(const QString &callId, const QVector<Candidate> &candidates) const;
|
||||
[[nodiscard]] QJsonObject createInvite(const QString &callId, const QString &sdp, const QVector<std::pair<QString, QString>> &msidToPurpose) const;
|
||||
[[nodiscard]] QJsonObject createHangup(const QString &callId) const;
|
||||
[[nodiscard]] QJsonObject createAnswer(const QString &callId, const QString &sdp, const QVector<std::pair<QString, QString>> &msidToPurpose) const;
|
||||
|
||||
QMediaPlayer m_ringPlayer;
|
||||
QMediaPlaylist m_playlist;
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2022 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "callnegotiateevent.h"
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
CallNegotiateEvent::CallNegotiateEvent(const QString &callId,
|
||||
const QString &partyId,
|
||||
int lifetime,
|
||||
const QString &sdp,
|
||||
bool answer,
|
||||
QVector<std::pair<QString, QString>> msidToPurpose)
|
||||
: EventTemplate(callId,
|
||||
{
|
||||
{QStringLiteral("lifetime"), lifetime},
|
||||
{QStringLiteral("version"), 1},
|
||||
{QStringLiteral("description"),
|
||||
QJsonObject{{QStringLiteral("type"), answer ? QStringLiteral("answer") : QStringLiteral("offer")}, {QStringLiteral("sdp"), sdp}}},
|
||||
{QStringLiteral("party_id"), partyId},
|
||||
})
|
||||
{
|
||||
QJsonObject metadata;
|
||||
for (const auto &[stream, purpose] : msidToPurpose) {
|
||||
QJsonObject data = {{"purpose", purpose}};
|
||||
metadata[stream] = purpose;
|
||||
}
|
||||
auto content = editJson();
|
||||
content["org.matrix.msc3077.sdp_stream_metadata"] = metadata;
|
||||
editJson()["content"] = content;
|
||||
}
|
||||
|
||||
CallNegotiateEvent::CallNegotiateEvent(const QJsonObject &json)
|
||||
: EventTemplate(json)
|
||||
{
|
||||
}
|
||||
|
||||
QString CallNegotiateEvent::partyId() const
|
||||
{
|
||||
return contentJson()["party_id"].toString();
|
||||
}
|
||||
|
||||
QString CallNegotiateEvent::sdp() const
|
||||
{
|
||||
return contentJson()["description"]["sdp"].toString();
|
||||
}
|
||||
|
||||
QJsonObject CallNegotiateEvent::sdpStreamMetadata() const
|
||||
{
|
||||
return contentJson()["org.matrix.msc3077.sdp_stream_metadata"].toObject();
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2022 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <events/callevents.h>
|
||||
|
||||
namespace Quotient
|
||||
{
|
||||
|
||||
class CallNegotiateEvent : public EventTemplate<CallNegotiateEvent, CallEvent>
|
||||
{
|
||||
public:
|
||||
QUO_EVENT(CallNegotiateEvent, "m.call.negotiate")
|
||||
|
||||
explicit CallNegotiateEvent(const QJsonObject &obj);
|
||||
|
||||
explicit CallNegotiateEvent(const QString &callId,
|
||||
const QString &partyId,
|
||||
int lifetime,
|
||||
const QString &sdp,
|
||||
bool answer,
|
||||
QVector<std::pair<QString, QString>> msidToPurpose);
|
||||
|
||||
QString partyId() const;
|
||||
QString sdp() const;
|
||||
// TODO make this a struct instead
|
||||
QJsonObject sdpStreamMetadata() const;
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "callparticipant.h"
|
||||
|
||||
NeoChatUser *CallParticipant::user() const
|
||||
{
|
||||
return m_user;
|
||||
}
|
||||
|
||||
bool CallParticipant::hasCamera() const
|
||||
{
|
||||
return m_hasCamera;
|
||||
}
|
||||
|
||||
CallParticipant::CallParticipant(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void CallParticipant::initCamera(QQuickItem *item)
|
||||
{
|
||||
QTimer::singleShot(500, this, [=] {
|
||||
Q_EMIT initialized(item);
|
||||
});
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
|
||||
#include "neochatuser.h"
|
||||
|
||||
class QQuickItem;
|
||||
|
||||
class CallParticipant : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(NeoChatUser *user READ user CONSTANT)
|
||||
Q_PROPERTY(bool hasCamera READ hasCamera NOTIFY hasCameraChanged)
|
||||
|
||||
public:
|
||||
NeoChatUser *m_user = nullptr;
|
||||
bool m_hasCamera = false;
|
||||
|
||||
Q_INVOKABLE void initCamera(QQuickItem *item);
|
||||
|
||||
[[nodiscard]] NeoChatUser *user() const;
|
||||
|
||||
[[nodiscard]] bool hasCamera() const;
|
||||
|
||||
explicit CallParticipant(QObject *parent = nullptr);
|
||||
|
||||
Q_SIGNALS:
|
||||
void initialized(QQuickItem *item);
|
||||
void heightChanged();
|
||||
void widthChanged();
|
||||
void hasCameraChanged();
|
||||
};
|
||||
@@ -1,916 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
||||
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
|
||||
// SPDX-FileCopyrightText: 2021-2022 Tobias Fella <fella@posteo.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "calldevices.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QThread>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#define GST_USE_UNSTABLE_API
|
||||
#include <gst/webrtc/webrtc.h>
|
||||
#undef GST_USE_UNSTABLE_API
|
||||
|
||||
#include "voiplogging.h"
|
||||
|
||||
#include "audiosources.h"
|
||||
#include "videosources.h"
|
||||
|
||||
#include <qcoro/qcorosignal.h>
|
||||
|
||||
#define private public
|
||||
#include "callsession.h"
|
||||
#undef private
|
||||
#include "callmanager.h"
|
||||
#include <qt_connection_util.h>
|
||||
|
||||
#define STUN_SERVER "stun://turn.matrix.org:3478" // TODO make STUN server configurable
|
||||
|
||||
#define INSTANCE \
|
||||
Q_ASSERT(user_data); \
|
||||
auto instance = static_cast<CallSession *>(user_data);
|
||||
|
||||
GstElement *createElement(const char *type, GstElement *pipe, const char *name = nullptr)
|
||||
{
|
||||
auto element = gst_element_factory_make(type, name);
|
||||
Q_ASSERT_X(element, __FUNCTION__, QStringLiteral("Failed to create element %1 %2").arg(type, name).toLatin1());
|
||||
if (pipe) {
|
||||
gst_bin_add_many(GST_BIN(pipe), element, nullptr);
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
GstElement *binGetByName(GstElement *bin, const char *name)
|
||||
{
|
||||
auto element = gst_bin_get_by_name(GST_BIN(bin), name);
|
||||
Q_ASSERT_X(element, __FUNCTION__, QStringLiteral("Failed to get element by name: %1").arg(name).toLatin1());
|
||||
return element;
|
||||
}
|
||||
|
||||
struct KeyFrameRequestData {
|
||||
GstElement *pipe = nullptr;
|
||||
GstElement *decodeBin = nullptr;
|
||||
gint packetsLost = 0;
|
||||
guint timerId = 0;
|
||||
QString statsField;
|
||||
} keyFrameRequestData;
|
||||
|
||||
std::pair<int, int> getResolution(GstPad *pad)
|
||||
{
|
||||
std::pair<int, int> ret;
|
||||
auto caps = gst_pad_get_current_caps(pad);
|
||||
auto structure = gst_caps_get_structure(caps, 0);
|
||||
gst_structure_get_int(structure, "width", &ret.first);
|
||||
gst_structure_get_int(structure, "height", &ret.second);
|
||||
gst_caps_unref(caps);
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::pair<int, int> getResolution(GstElement *pipe, const gchar *elementName, const gchar *padName)
|
||||
{
|
||||
auto element = binGetByName(pipe, elementName);
|
||||
auto pad = gst_element_get_static_pad(element, padName);
|
||||
auto ret = getResolution(pad);
|
||||
gst_object_unref(pad);
|
||||
gst_object_unref(element);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void setLocalDescription(GstPromise *promise, gpointer user_data)
|
||||
{
|
||||
INSTANCE
|
||||
qCDebug(voip) << "Setting local description";
|
||||
const GstStructure *reply = gst_promise_get_reply(promise);
|
||||
gboolean isAnswer = gst_structure_id_has_field(reply, g_quark_from_string("answer"));
|
||||
GstWebRTCSessionDescription *gstsdp = nullptr;
|
||||
gst_structure_get(reply, isAnswer ? "answer" : "offer", GST_TYPE_WEBRTC_SESSION_DESCRIPTION, &gstsdp, nullptr);
|
||||
gst_promise_unref(promise);
|
||||
auto webrtcbin = binGetByName(instance->m_pipe, "webrtcbin");
|
||||
Q_ASSERT(gstsdp);
|
||||
g_signal_emit_by_name(webrtcbin, "set-local-description", gstsdp, nullptr);
|
||||
gchar *sdp = gst_sdp_message_as_text(gstsdp->sdp);
|
||||
if (!instance->m_localSdp.isEmpty()) {
|
||||
// This is a renegotiation
|
||||
qWarning() << "emitting renegotiate";
|
||||
Q_EMIT instance->renegotiate(QString(sdp), isAnswer ? QStringLiteral("answer") : QStringLiteral("offer"));
|
||||
}
|
||||
instance->m_localSdp = QString(sdp);
|
||||
g_free(sdp);
|
||||
gst_webrtc_session_description_free(gstsdp);
|
||||
qCDebug(voip) << "Local description set:" << isAnswer;
|
||||
}
|
||||
|
||||
bool contains(std::string_view str1, std::string_view str2)
|
||||
{
|
||||
return std::search(str1.cbegin(),
|
||||
str1.cend(),
|
||||
str2.cbegin(),
|
||||
str2.cend(),
|
||||
[](unsigned char c1, unsigned char c2) {
|
||||
return std::tolower(c1) == std::tolower(c2);
|
||||
})
|
||||
!= str1.cend();
|
||||
}
|
||||
|
||||
void createOffer(GstElement *webrtc, CallSession *session)
|
||||
{
|
||||
// TODO ?!?
|
||||
if (!session->m_localSdp.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
qCWarning(voip) << "Creating Offer";
|
||||
auto promise = gst_promise_new_with_change_func(setLocalDescription, session, nullptr);
|
||||
g_signal_emit_by_name(webrtc, "create-offer", nullptr, promise);
|
||||
}
|
||||
|
||||
void createAnswer(GstPromise *promise, gpointer user_data)
|
||||
{
|
||||
INSTANCE
|
||||
qCDebug(voip) << "Creating Answer";
|
||||
gst_promise_unref(promise);
|
||||
promise = gst_promise_new_with_change_func(setLocalDescription, instance, nullptr);
|
||||
auto webrtcbin = binGetByName(instance->m_pipe, "webrtcbin");
|
||||
g_signal_emit_by_name(webrtcbin, "create-answer", nullptr, promise);
|
||||
}
|
||||
|
||||
bool getMediaAttributes(const GstSDPMessage *sdp, const char *mediaType, const char *encoding, int &payloadType, bool &receiveOnly, bool &sendOnly)
|
||||
{
|
||||
payloadType = -1;
|
||||
receiveOnly = false;
|
||||
sendOnly = false;
|
||||
for (guint mlineIndex = 0; mlineIndex < gst_sdp_message_medias_len(sdp); mlineIndex++) {
|
||||
const GstSDPMedia *media = gst_sdp_message_get_media(sdp, mlineIndex);
|
||||
if (!strcmp(gst_sdp_media_get_media(media), mediaType)) {
|
||||
receiveOnly = gst_sdp_media_get_attribute_val(media, "recvonly") != nullptr;
|
||||
sendOnly = gst_sdp_media_get_attribute_val(media, "sendonly") != nullptr;
|
||||
const gchar *rtpval = nullptr;
|
||||
for (guint n = 0; n == 0 || rtpval; n++) {
|
||||
rtpval = gst_sdp_media_get_attribute_val_n(media, "rtpmap", n);
|
||||
if (rtpval && contains(rtpval, encoding)) {
|
||||
payloadType = QString::fromLatin1(rtpval).toInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
GstWebRTCSessionDescription *parseSDP(const QString &sdp, GstWebRTCSDPType type)
|
||||
{
|
||||
GstSDPMessage *message;
|
||||
gst_sdp_message_new(&message);
|
||||
if (gst_sdp_message_parse_buffer((guint8 *)sdp.toLatin1().data(), sdp.size(), message) == GST_SDP_OK) {
|
||||
return gst_webrtc_session_description_new(type, message);
|
||||
} else {
|
||||
qCCritical(voip) << "Failed to parse remote SDP";
|
||||
gst_sdp_message_free(message);
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void addLocalICECandidate(GstElement *webrtc, guint mlineIndex, const gchar *candidate, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(webrtc);
|
||||
INSTANCE
|
||||
// qCWarning(voip) << "Adding local ICE Candidates";
|
||||
instance->m_localCandidates += Candidate{candidate, static_cast<int>(mlineIndex), QString()};
|
||||
}
|
||||
|
||||
void iceConnectionStateChanged(GstElement *webrtc, GParamSpec *pspec, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(pspec);
|
||||
INSTANCE
|
||||
GstWebRTCICEConnectionState newState;
|
||||
g_object_get(webrtc, "ice-connection-state", &newState, nullptr);
|
||||
switch (newState) {
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_NEW:
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING:
|
||||
instance->setState(CallSession::CONNECTING);
|
||||
break;
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_FAILED:
|
||||
instance->setState(CallSession::ICEFAILED);
|
||||
break;
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED:
|
||||
instance->setState(CallSession::CONNECTED);
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED:
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED:
|
||||
case GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GstElement *newAudioSinkChain(GstElement *pipe)
|
||||
{
|
||||
qCWarning(voip) << "New Audio Sink Chain";
|
||||
GstElement *queue = createElement("queue", pipe);
|
||||
GstElement *convert = createElement("audioconvert", pipe);
|
||||
GstElement *resample = createElement("audioresample", pipe);
|
||||
GstElement *sink = createElement("autoaudiosink", pipe);
|
||||
gst_element_link_many(queue, convert, resample, sink, nullptr);
|
||||
gst_element_sync_state_with_parent(queue);
|
||||
gst_element_sync_state_with_parent(convert);
|
||||
gst_element_sync_state_with_parent(resample);
|
||||
gst_element_sync_state_with_parent(sink);
|
||||
return queue;
|
||||
}
|
||||
|
||||
void sendKeyFrameRequest()
|
||||
{
|
||||
auto sinkpad = gst_element_get_static_pad(keyFrameRequestData.decodeBin, "sink");
|
||||
if (!gst_pad_push_event(sinkpad, gst_event_new_custom(GST_EVENT_CUSTOM_UPSTREAM, gst_structure_new_empty("GstForceKeyUnit")))) {
|
||||
qCWarning(voip) << "Keyframe request failed";
|
||||
}
|
||||
gst_object_unref(sinkpad);
|
||||
}
|
||||
|
||||
void onGetStats(GstPromise *promise, gpointer)
|
||||
{
|
||||
auto reply = gst_promise_get_reply(promise);
|
||||
GstStructure *rtpStats;
|
||||
if (!gst_structure_get(reply, keyFrameRequestData.statsField.toLatin1().data(), GST_TYPE_STRUCTURE, &rtpStats, nullptr)) {
|
||||
gst_promise_unref(promise);
|
||||
return;
|
||||
}
|
||||
auto packetsLost = 0;
|
||||
gst_structure_get_int(rtpStats, "packets-lost", &packetsLost);
|
||||
gst_structure_free(rtpStats);
|
||||
gst_promise_unref(promise);
|
||||
if (packetsLost > keyFrameRequestData.packetsLost) {
|
||||
qCWarning(voip) << "inbound video lost packet count:" << packetsLost;
|
||||
keyFrameRequestData.packetsLost = packetsLost;
|
||||
sendKeyFrameRequest();
|
||||
}
|
||||
}
|
||||
|
||||
// TODO port to QTimer?
|
||||
gboolean testPacketLoss(gpointer)
|
||||
{
|
||||
if (!keyFrameRequestData.pipe) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto webrtc = binGetByName(keyFrameRequestData.pipe, "webrtcbin");
|
||||
auto promise = gst_promise_new_with_change_func(onGetStats, nullptr, nullptr);
|
||||
g_signal_emit_by_name(webrtc, "get-stats", nullptr, promise);
|
||||
gst_object_unref(webrtc);
|
||||
return true;
|
||||
}
|
||||
|
||||
GstElement *newVideoSinkChain(GstElement *pipe, QQuickItem *quickItem)
|
||||
{
|
||||
Q_ASSERT(pipe);
|
||||
Q_ASSERT(quickItem);
|
||||
qCWarning(voip) << "Creating Video Sink Chain";
|
||||
auto queue = createElement("queue", pipe);
|
||||
auto compositor = createElement("compositor", pipe);
|
||||
auto glupload = createElement("glupload", pipe);
|
||||
auto glcolorconvert = createElement("glcolorconvert", pipe);
|
||||
auto qmlglsink = createElement("qmlglsink", nullptr);
|
||||
auto glsinkbin = createElement("glsinkbin", pipe);
|
||||
g_object_set(qmlglsink, "widget", quickItem, nullptr);
|
||||
g_object_set(glsinkbin, "sink", qmlglsink, nullptr);
|
||||
gst_element_link_many(queue, compositor, glupload, glcolorconvert, glsinkbin, nullptr);
|
||||
gst_element_sync_state_with_parent(queue);
|
||||
gst_element_sync_state_with_parent(compositor);
|
||||
gst_element_sync_state_with_parent(glupload);
|
||||
gst_element_sync_state_with_parent(glcolorconvert);
|
||||
gst_element_sync_state_with_parent(glsinkbin);
|
||||
return queue;
|
||||
}
|
||||
|
||||
static GstPadProbeReturn pad_cb(GstPad *pad, GstPadProbeInfo *info, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(pad);
|
||||
// auto stream = static_cast<VideoStream *>(user_data);
|
||||
auto event = GST_PAD_PROBE_INFO_EVENT(info);
|
||||
if (GST_EVENT_CAPS == GST_EVENT_TYPE(event)) {
|
||||
GstCaps *caps = gst_caps_new_any();
|
||||
int width, height;
|
||||
gst_event_parse_caps(event, &caps);
|
||||
auto structure = gst_caps_get_structure(caps, 0);
|
||||
gst_structure_get_int(structure, "width", &width);
|
||||
gst_structure_get_int(structure, "height", &height);
|
||||
// stream->setWidth(width);
|
||||
// stream->setHeight(height);
|
||||
// TODO needed?
|
||||
}
|
||||
return GST_PAD_PROBE_OK;
|
||||
}
|
||||
|
||||
void linkNewPad(GstElement *decodeBin, GstPad *newpad, gpointer user_data)
|
||||
{
|
||||
INSTANCE
|
||||
qCWarning(voip) << "Linking New Pad";
|
||||
auto sinkpad = gst_element_get_static_pad(decodeBin, "sink");
|
||||
auto sinkcaps = gst_pad_get_current_caps(sinkpad);
|
||||
auto structure = gst_caps_get_structure(sinkcaps, 0);
|
||||
|
||||
gchar *mediaType = nullptr;
|
||||
guint ssrc = 0;
|
||||
gst_structure_get(structure, "media", G_TYPE_STRING, &mediaType, "ssrc", G_TYPE_UINT, &ssrc, nullptr);
|
||||
gst_caps_unref(sinkcaps);
|
||||
gst_object_unref(sinkpad);
|
||||
|
||||
GstElement *queue = nullptr;
|
||||
if (!strcmp(mediaType, "audio")) {
|
||||
qCWarning(voip) << "Receiving audio stream";
|
||||
queue = newAudioSinkChain(instance->m_pipe);
|
||||
} else if (!strcmp(mediaType, "video")) {
|
||||
qCWarning(voip) << "Receiving video stream";
|
||||
auto fake = createElement("fakesink", instance->m_pipe);
|
||||
auto selector = createElement("output-selector", instance->m_pipe);
|
||||
auto selectorSink = gst_element_get_static_pad(selector, "sink");
|
||||
auto selectorSrc1 = gst_element_request_pad_simple(selector, "src_%u");
|
||||
gst_pad_link(newpad, selectorSink);
|
||||
auto fakepad = gst_element_get_static_pad(fake, "sink");
|
||||
gst_pad_link(selectorSrc1, fakepad);
|
||||
g_object_set(selector, "active-pad", selectorSrc1, nullptr);
|
||||
|
||||
auto msid = instance->ssrcToMsid[ssrc];
|
||||
|
||||
// gst_pad_add_probe(newpad, GST_PAD_PROBE_TYPE_EVENT_BOTH, pad_cb, stream, nullptr);
|
||||
auto manager = dynamic_cast<CallManager *>(instance->parent());
|
||||
auto participants = manager->callParticipants();
|
||||
auto user = dynamic_cast<NeoChatUser *>(manager->room()->user(instance->msidToUserId[msid]));
|
||||
participants->setHasCamera(user, true);
|
||||
|
||||
auto participant = participants->callParticipantForUser(user);
|
||||
|
||||
// gst_pad_add_probe(newpad, GST_PAD_PROBE_TYPE_EVENT_BOTH, pad_cb, nullptr, nullptr);
|
||||
connectSingleShot(participant, &CallParticipant::initialized, instance, [=](QQuickItem *item) {
|
||||
gst_pad_unlink(newpad, fakepad);
|
||||
auto queue = newVideoSinkChain(instance->m_pipe, item);
|
||||
auto queuepad = gst_element_get_static_pad(queue, "sink");
|
||||
Q_ASSERT(queuepad);
|
||||
auto selectorSrc = gst_element_request_pad_simple(selector, "src_%u");
|
||||
auto ok = GST_PAD_LINK_SUCCESSFUL(gst_pad_link(selectorSrc, queuepad));
|
||||
Q_ASSERT(ok);
|
||||
g_object_set(selector, "active-pad", selectorSrc, nullptr);
|
||||
instance->setState(CallSession::CONNECTED);
|
||||
keyFrameRequestData.pipe = instance->m_pipe;
|
||||
keyFrameRequestData.decodeBin = decodeBin;
|
||||
keyFrameRequestData.timerId = g_timeout_add_seconds(3, testPacketLoss, nullptr);
|
||||
keyFrameRequestData.statsField = QStringLiteral("rtp-inbound-stream-stats_") + QString::number(ssrc);
|
||||
gst_object_unref(queuepad);
|
||||
g_free(mediaType);
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
g_free(mediaType);
|
||||
qCWarning(voip) << "Unknown pad type:" << GST_PAD_NAME(newpad);
|
||||
return;
|
||||
}
|
||||
auto queuepad = gst_element_get_static_pad(queue, "sink");
|
||||
Q_ASSERT(queuepad);
|
||||
auto ok = GST_PAD_LINK_SUCCESSFUL(gst_pad_link(newpad, queuepad));
|
||||
Q_ASSERT(ok);
|
||||
gst_object_unref(queuepad);
|
||||
g_free(mediaType);
|
||||
}
|
||||
|
||||
void setWaitForKeyFrame(GstBin *decodeBin, GstElement *element, gpointer)
|
||||
{
|
||||
Q_UNUSED(decodeBin);
|
||||
if (!strcmp(gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(gst_element_get_factory(element))), "rtpvp8depay")) {
|
||||
g_object_set(element, "wait-for-keyframe", TRUE, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
void addDecodeBin(GstElement *webrtc, GstPad *newpad, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(webrtc);
|
||||
if (GST_PAD_DIRECTION(newpad) != GST_PAD_SRC) {
|
||||
return;
|
||||
}
|
||||
|
||||
INSTANCE
|
||||
|
||||
auto decodeBin = createElement("decodebin", instance->m_pipe);
|
||||
// Investigate hardware, see nheko source
|
||||
g_object_set(decodeBin, "force-sw-decoders", TRUE, nullptr);
|
||||
g_signal_connect(decodeBin, "pad-added", G_CALLBACK(linkNewPad), instance);
|
||||
g_signal_connect(decodeBin, "element-added", G_CALLBACK(setWaitForKeyFrame), nullptr);
|
||||
gst_element_sync_state_with_parent(decodeBin);
|
||||
auto sinkpad = gst_element_get_static_pad(decodeBin, "sink");
|
||||
if (GST_PAD_LINK_FAILED(gst_pad_link(newpad, sinkpad))) {
|
||||
// TODO: Error handling
|
||||
qCWarning(voip) << "Unable to link decodebin";
|
||||
}
|
||||
gst_object_unref(sinkpad);
|
||||
}
|
||||
|
||||
void iceGatheringStateChanged(GstElement *webrtc, GParamSpec *pspec, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(pspec);
|
||||
INSTANCE
|
||||
|
||||
GstWebRTCICEGatheringState newState;
|
||||
g_object_get(webrtc, "ice-gathering-state", &newState, nullptr);
|
||||
if (newState == GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE) {
|
||||
qCWarning(voip) << "GstWebRTCICEGatheringState -> Complete";
|
||||
if (instance->m_isOffering) {
|
||||
Q_EMIT instance->offerCreated(instance->m_localSdp, instance->m_localCandidates);
|
||||
instance->setState(CallSession::OFFERSENT);
|
||||
} else {
|
||||
Q_EMIT instance->answerCreated(instance->m_localSdp, instance->m_localCandidates);
|
||||
instance->setState(CallSession::ANSWERSENT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gboolean newBusMessage(GstBus *bus, GstMessage *msg, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(bus);
|
||||
INSTANCE
|
||||
|
||||
switch (GST_MESSAGE_TYPE(msg)) {
|
||||
case GST_MESSAGE_EOS:
|
||||
qCWarning(voip) << "End of stream";
|
||||
// TODO: Error handling
|
||||
instance->end();
|
||||
break;
|
||||
case GST_MESSAGE_ERROR:
|
||||
GError *error;
|
||||
gchar *debug;
|
||||
gst_message_parse_error(msg, &error, &debug);
|
||||
qCWarning(voip) << "Error from element:" << GST_OBJECT_NAME(msg->src) << error->message;
|
||||
// TODO: Error handling
|
||||
g_clear_error(&error);
|
||||
g_free(debug);
|
||||
instance->end();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
CallSession::CallSession(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void CallSession::acceptAnswer(const QString &sdp, const QVector<Candidate> &candidates, const QString &userId)
|
||||
{
|
||||
qCDebug(voip) << "Accepting Answer";
|
||||
if (m_state != CallSession::OFFERSENT) {
|
||||
return;
|
||||
}
|
||||
|
||||
GstWebRTCSessionDescription *answer = parseSDP(sdp, GST_WEBRTC_SDP_TYPE_ANSWER);
|
||||
if (!answer) {
|
||||
end();
|
||||
return;
|
||||
}
|
||||
|
||||
acceptCandidates(candidates);
|
||||
|
||||
setRemoteDescription(answer, userId);
|
||||
}
|
||||
|
||||
void CallSession::setRemoteDescription(GstWebRTCSessionDescription *remote, const QString &userId, GstPromise *promise)
|
||||
{
|
||||
GstElement *webrtcbin = binGetByName(m_pipe, "webrtcbin");
|
||||
auto sdp = remote->sdp;
|
||||
for (guint i = 0; i < gst_sdp_message_medias_len(sdp); i++) {
|
||||
auto media = gst_sdp_message_get_media(sdp, i);
|
||||
QList<uint32_t> ssrcs;
|
||||
QString msid;
|
||||
for (guint j = 0; j < gst_sdp_media_attributes_len(media); j++) {
|
||||
auto attribute = gst_sdp_media_get_attribute(media, j);
|
||||
if (!strcmp(attribute->key, "ssrc")) {
|
||||
ssrcs += QString(attribute->value).split(" ")[0].toUInt();
|
||||
}
|
||||
if (!strcmp(attribute->key, "msid")) {
|
||||
msid = QString(attribute->value).split(" ")[0];
|
||||
}
|
||||
}
|
||||
for (const auto &ssrc : ssrcs) {
|
||||
ssrcToMsid[ssrc] = msid;
|
||||
}
|
||||
msidToUserId[msid] = userId;
|
||||
}
|
||||
g_signal_emit_by_name(webrtcbin, "set-remote-description", remote, promise);
|
||||
}
|
||||
|
||||
void CallSession::renegotiateOffer(const QString &_offer, const QString &userId, bool answer)
|
||||
{
|
||||
GstWebRTCSessionDescription *sdp = parseSDP(_offer, answer ? GST_WEBRTC_SDP_TYPE_ANSWER : GST_WEBRTC_SDP_TYPE_OFFER);
|
||||
if (!sdp) {
|
||||
Q_ASSERT(false);
|
||||
}
|
||||
GstElement *webrtcbin = binGetByName(m_pipe, "webrtcbin");
|
||||
|
||||
setRemoteDescription(sdp, userId);
|
||||
qWarning() << "answer:" << answer;
|
||||
if (!answer) {
|
||||
GstPromise *promise = gst_promise_new_with_change_func(setLocalDescription, this, nullptr);
|
||||
g_signal_emit_by_name(webrtcbin, "create-answer", nullptr, promise);
|
||||
}
|
||||
}
|
||||
|
||||
void CallSession::acceptOffer(const QString &sdp, const QVector<Candidate> remoteCandidates, const QString &userId)
|
||||
{
|
||||
Q_ASSERT(!sdp.isEmpty());
|
||||
Q_ASSERT(!remoteCandidates.isEmpty());
|
||||
qCDebug(voip) << "Accepting offer";
|
||||
if (m_state != CallSession::DISCONNECTED) {
|
||||
return;
|
||||
}
|
||||
m_isOffering = false;
|
||||
|
||||
GstWebRTCSessionDescription *offer = parseSDP(sdp, GST_WEBRTC_SDP_TYPE_OFFER);
|
||||
if (!offer) {
|
||||
qCCritical(voip) << "Not an offer";
|
||||
return;
|
||||
}
|
||||
|
||||
int opusPayloadType;
|
||||
bool receiveOnly;
|
||||
bool sendOnly;
|
||||
if (getMediaAttributes(offer->sdp, "audio", "opus", opusPayloadType, receiveOnly, sendOnly)) {
|
||||
if (opusPayloadType == -1) {
|
||||
qCCritical(voip) << "No OPUS in offer";
|
||||
gst_webrtc_session_description_free(offer);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
qCCritical(voip) << "No audio in offer";
|
||||
gst_webrtc_session_description_free(offer);
|
||||
return;
|
||||
}
|
||||
startPipeline();
|
||||
|
||||
QThread::msleep(1000); // ?
|
||||
|
||||
acceptCandidates(remoteCandidates);
|
||||
|
||||
auto promise = gst_promise_new_with_change_func(createAnswer, this, nullptr);
|
||||
setRemoteDescription(offer, userId, promise);
|
||||
gst_webrtc_session_description_free(offer);
|
||||
}
|
||||
|
||||
void CallSession::createCall()
|
||||
{
|
||||
qCDebug(voip) << "Creating call";
|
||||
m_isOffering = true;
|
||||
startPipeline();
|
||||
}
|
||||
|
||||
void CallSession::startPipeline()
|
||||
{
|
||||
qCDebug(voip) << "Starting Pipeline";
|
||||
if (m_state != CallSession::DISCONNECTED) {
|
||||
return;
|
||||
}
|
||||
m_state = CallSession::INITIATING;
|
||||
Q_EMIT stateChanged();
|
||||
|
||||
createPipeline();
|
||||
|
||||
auto webrtcbin = binGetByName(m_pipe, "webrtcbin");
|
||||
Q_ASSERT(webrtcbin);
|
||||
if (false /*TODO: CHECK USE STUN*/) {
|
||||
qCDebug(voip) << "Setting STUN server:" << STUN_SERVER;
|
||||
g_object_set(webrtcbin, "stun-server", STUN_SERVER, nullptr);
|
||||
}
|
||||
|
||||
for (const auto &uri : m_turnServers) {
|
||||
qCDebug(voip) << "Setting turn server:" << uri;
|
||||
gboolean udata;
|
||||
g_signal_emit_by_name(webrtcbin, "add-turn-server", uri.toLatin1().data(), (gpointer)(&udata));
|
||||
}
|
||||
|
||||
if (m_turnServers.empty()) {
|
||||
qCWarning(voip) << "No TURN servers provided";
|
||||
}
|
||||
|
||||
if (m_isOffering) {
|
||||
g_signal_connect(webrtcbin, "on-negotiation-needed", G_CALLBACK(::createOffer), this);
|
||||
}
|
||||
|
||||
g_signal_connect(webrtcbin, "on-ice-candidate", G_CALLBACK(addLocalICECandidate), this);
|
||||
g_signal_connect(webrtcbin, "notify::ice-connection-state", G_CALLBACK(iceConnectionStateChanged), this);
|
||||
|
||||
gst_element_set_state(m_pipe, GST_STATE_READY);
|
||||
g_signal_connect(webrtcbin, "pad-added", G_CALLBACK(addDecodeBin), this);
|
||||
|
||||
g_signal_connect(webrtcbin, "notify::ice-gathering-state", G_CALLBACK(iceGatheringStateChanged), this);
|
||||
gst_object_unref(webrtcbin);
|
||||
|
||||
GstStateChangeReturn ret = gst_element_set_state(m_pipe, GST_STATE_PLAYING);
|
||||
if (ret == GST_STATE_CHANGE_FAILURE) {
|
||||
// TODO: Error handling
|
||||
qCCritical(voip) << "Unable to start pipeline";
|
||||
end();
|
||||
return;
|
||||
}
|
||||
|
||||
GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipe));
|
||||
m_busWatchId = gst_bus_add_watch(bus, newBusMessage, this);
|
||||
gst_object_unref(bus);
|
||||
|
||||
m_state = CallSession::INITIATED;
|
||||
Q_EMIT stateChanged();
|
||||
}
|
||||
|
||||
void CallSession::end()
|
||||
{
|
||||
qCDebug(voip) << "Ending Call";
|
||||
if (m_pipe) {
|
||||
gst_element_set_state(m_pipe, GST_STATE_NULL);
|
||||
gst_object_unref(m_pipe);
|
||||
m_pipe = nullptr;
|
||||
keyFrameRequestData.pipe = nullptr;
|
||||
if (m_busWatchId) {
|
||||
g_source_remove(m_busWatchId);
|
||||
m_busWatchId = 0;
|
||||
}
|
||||
}
|
||||
if (m_state != CallSession::DISCONNECTED) {
|
||||
m_state = CallSession::DISCONNECTED;
|
||||
Q_EMIT stateChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void CallSession::createPipeline()
|
||||
{
|
||||
qCWarning(voip) << "Creating Pipeline";
|
||||
auto device = AudioSources::instance().currentDevice();
|
||||
if (!device) {
|
||||
return;
|
||||
}
|
||||
m_pipe = gst_pipeline_new(nullptr);
|
||||
auto source = gst_device_create_element(device, nullptr);
|
||||
auto volume = createElement("volume", m_pipe, "srclevel");
|
||||
auto convert = createElement("audioconvert", m_pipe);
|
||||
auto resample = createElement("audioresample", m_pipe);
|
||||
auto queue1 = createElement("queue", m_pipe);
|
||||
auto opusenc = createElement("opusenc", m_pipe);
|
||||
auto rtp = createElement("rtpopuspay", m_pipe);
|
||||
auto queue2 = createElement("queue", m_pipe);
|
||||
auto capsfilter = createElement("capsfilter", m_pipe);
|
||||
|
||||
auto rtpcaps = gst_caps_new_simple("application/x-rtp",
|
||||
"media",
|
||||
G_TYPE_STRING,
|
||||
"audio",
|
||||
"encoding-name",
|
||||
G_TYPE_STRING,
|
||||
"OPUS",
|
||||
"payload",
|
||||
G_TYPE_INT,
|
||||
OPUS_PAYLOAD_TYPE,
|
||||
nullptr);
|
||||
Q_ASSERT(rtpcaps);
|
||||
g_object_set(capsfilter, "caps", rtpcaps, nullptr);
|
||||
gst_caps_unref(rtpcaps);
|
||||
|
||||
auto webrtcbin = createElement("webrtcbin", m_pipe, "webrtcbin");
|
||||
g_object_set(webrtcbin, "bundle-policy", GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE, nullptr);
|
||||
|
||||
gst_bin_add_many(GST_BIN(m_pipe), source, nullptr);
|
||||
|
||||
if (!gst_element_link_many(source, volume, convert, resample, queue1, opusenc, rtp, queue2, capsfilter, webrtcbin, nullptr)) {
|
||||
qCCritical(voip) << "Failed to link pipeline";
|
||||
// TODO propagate errors up and end call
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CallSession::toggleCamera()
|
||||
{
|
||||
// TODO do this only once
|
||||
static bool inited = false;
|
||||
if (!inited) {
|
||||
addVideoPipeline();
|
||||
inited = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool CallSession::addVideoPipeline()
|
||||
{
|
||||
qCDebug(voip) << "Adding Video Pipeline";
|
||||
auto videoconvert = createElement("videoconvertscale", m_pipe);
|
||||
auto tee = createElement("tee", m_pipe);
|
||||
auto device = VideoSources::instance().currentDevice();
|
||||
auto deviceCaps = device->caps[VideoSources::instance().capsIndex()];
|
||||
int width = deviceCaps.width;
|
||||
int height = deviceCaps.height;
|
||||
int framerate = deviceCaps.framerates.back();
|
||||
if (!device) {
|
||||
return false;
|
||||
}
|
||||
auto camera = gst_device_create_element(device->device, nullptr);
|
||||
gst_bin_add_many(GST_BIN(m_pipe), camera, nullptr);
|
||||
|
||||
auto caps =
|
||||
gst_caps_new_simple("video/x-raw", "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, "framerate", GST_TYPE_FRACTION, framerate, 1, nullptr);
|
||||
auto camerafilter = createElement("capsfilter", m_pipe);
|
||||
g_object_set(camerafilter, "caps", caps, nullptr);
|
||||
gst_caps_unref(caps);
|
||||
|
||||
gst_element_link(camera, videoconvert);
|
||||
|
||||
if (!gst_element_link_many(videoconvert, camerafilter, nullptr)) {
|
||||
qCWarning(voip) << "Failed to link camera elements";
|
||||
// TODO: Error handling
|
||||
return false;
|
||||
}
|
||||
if (!gst_element_link(camerafilter, tee)) {
|
||||
qCWarning(voip) << "Failed to link camerafilter -> tee";
|
||||
// TODO: Error handling
|
||||
return false;
|
||||
}
|
||||
|
||||
auto queue = createElement("queue", m_pipe);
|
||||
g_object_set(queue, "leaky", true, nullptr);
|
||||
auto vp8enc = createElement("vp8enc", m_pipe);
|
||||
g_object_set(vp8enc, "deadline", 1, nullptr);
|
||||
g_object_set(vp8enc, "error-resilient", 1, nullptr);
|
||||
auto rtpvp8pay = createElement("rtpvp8pay", m_pipe);
|
||||
auto rtpqueue = createElement("queue", m_pipe);
|
||||
auto rtpcapsfilter = createElement("capsfilter", m_pipe);
|
||||
auto rtpcaps = gst_caps_new_simple("application/x-rtp",
|
||||
"media",
|
||||
G_TYPE_STRING,
|
||||
"video",
|
||||
"encoding-name",
|
||||
G_TYPE_STRING,
|
||||
"VP8",
|
||||
"payload",
|
||||
G_TYPE_INT,
|
||||
VP8_PAYLOAD_TYPE,
|
||||
nullptr);
|
||||
g_object_set(rtpcapsfilter, "caps", rtpcaps, nullptr);
|
||||
gst_caps_unref(rtpcaps);
|
||||
|
||||
auto webrtcbin = binGetByName(m_pipe, "webrtcbin");
|
||||
if (!gst_element_link_many(tee, queue, vp8enc, rtpvp8pay, rtpqueue, rtpcapsfilter, webrtcbin, nullptr)) {
|
||||
qCCritical(voip) << "Failed to link rtp video elements";
|
||||
gst_object_unref(webrtcbin);
|
||||
return false;
|
||||
}
|
||||
auto promise = gst_promise_new_with_change_func(setLocalDescription, this, nullptr);
|
||||
g_signal_emit_by_name(webrtcbin, "create-offer", nullptr, promise);
|
||||
|
||||
gst_object_unref(webrtcbin);
|
||||
|
||||
auto newpad = gst_element_request_pad_simple(tee, "src_%u");
|
||||
Q_ASSERT(newpad);
|
||||
|
||||
auto fake = createElement("fakesink", m_pipe);
|
||||
auto selector = createElement("output-selector", m_pipe);
|
||||
auto selectorSink = gst_element_get_static_pad(selector, "sink");
|
||||
auto selectorSrc1 = gst_element_request_pad_simple(selector, "src_%u");
|
||||
gst_pad_link(newpad, selectorSink);
|
||||
auto fakepad = gst_element_get_static_pad(fake, "sink");
|
||||
gst_pad_link(selectorSrc1, fakepad);
|
||||
g_object_set(selector, "active-pad", selectorSrc1, nullptr);
|
||||
|
||||
// gst_pad_add_probe(newpad, GST_PAD_PROBE_TYPE_EVENT_BOTH, pad_cb, stream, nullptr);
|
||||
auto manager = dynamic_cast<CallManager *>(parent());
|
||||
auto participants = manager->callParticipants();
|
||||
auto user = dynamic_cast<NeoChatUser *>(manager->room()->localUser());
|
||||
participants->setHasCamera(user, true);
|
||||
|
||||
connectSingleShot(participants->callParticipantForUser(user), &CallParticipant::initialized, this, [=](QQuickItem *item) {
|
||||
gst_pad_unlink(newpad, fakepad);
|
||||
Q_ASSERT(item);
|
||||
|
||||
auto queue = newVideoSinkChain(m_pipe, item);
|
||||
Q_ASSERT(queue);
|
||||
auto queuepad = gst_element_get_static_pad(queue, "sink");
|
||||
Q_ASSERT(queuepad);
|
||||
auto selectorSrc = gst_element_request_pad_simple(selector, "src_%u");
|
||||
Q_ASSERT(selectorSrc);
|
||||
auto ok = GST_PAD_LINK_SUCCESSFUL(gst_pad_link(selectorSrc, queuepad));
|
||||
Q_ASSERT(ok);
|
||||
g_object_set(selector, "active-pad", selectorSrc, nullptr);
|
||||
gst_object_unref(queuepad);
|
||||
gst_element_set_state(m_pipe, GST_STATE_READY); // TODO experimental
|
||||
gst_element_set_state(m_pipe, GST_STATE_PLAYING); // TODO experimental
|
||||
GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(m_pipe), GST_DEBUG_GRAPH_SHOW_ALL, "foo");
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
void CallSession::setTurnServers(QStringList servers)
|
||||
{
|
||||
qCDebug(voip) << "Setting Turn Servers";
|
||||
qWarning() << "TURN SERVERS" << servers;
|
||||
m_turnServers = servers;
|
||||
}
|
||||
|
||||
void CallSession::acceptCandidates(const QVector<Candidate> &candidates)
|
||||
{
|
||||
qCDebug(voip) << "Accepting ICE Candidates";
|
||||
auto webrtcbin = binGetByName(m_pipe, "webrtcbin");
|
||||
for (const auto &c : candidates) {
|
||||
qCDebug(voip) << "Remote candidate:" << c.candidate << c.sdpMLineIndex;
|
||||
g_signal_emit_by_name(webrtcbin, "add-ice-candidate", c.sdpMLineIndex, c.candidate.toLatin1().data());
|
||||
}
|
||||
}
|
||||
|
||||
QStringList CallSession::missingPlugins()
|
||||
{
|
||||
GstRegistry *registry = gst_registry_get();
|
||||
static const QVector<QString> videoPlugins = {
|
||||
QLatin1String("compositor"),
|
||||
QLatin1String("opengl"),
|
||||
QLatin1String("qmlgl"),
|
||||
QLatin1String("rtp"),
|
||||
QLatin1String("videoconvertscale"),
|
||||
QLatin1String("vpx"),
|
||||
};
|
||||
static const QVector<QString> audioPlugins = {
|
||||
QStringLiteral("audioconvert"),
|
||||
QStringLiteral("audioresample"),
|
||||
QStringLiteral("autodetect"),
|
||||
QStringLiteral("dtls"),
|
||||
QStringLiteral("nice"),
|
||||
QStringLiteral("opus"),
|
||||
QStringLiteral("playback"),
|
||||
QStringLiteral("rtpmanager"),
|
||||
QStringLiteral("srtp"),
|
||||
QStringLiteral("volume"),
|
||||
QStringLiteral("webrtc"),
|
||||
};
|
||||
QStringList missingPlugins;
|
||||
for (const auto &pluginName : videoPlugins + audioPlugins) {
|
||||
auto plugin = gst_registry_find_plugin(registry, pluginName.toLatin1().data());
|
||||
if (!plugin) {
|
||||
missingPlugins << pluginName;
|
||||
}
|
||||
gst_object_unref(plugin);
|
||||
}
|
||||
return missingPlugins;
|
||||
}
|
||||
|
||||
void CallSession::setMuted(bool muted)
|
||||
{
|
||||
const auto srclevel = binGetByName(m_pipe, "srclevel");
|
||||
g_object_set(srclevel, "mute", muted, nullptr);
|
||||
gst_object_unref(srclevel);
|
||||
Q_EMIT mutedChanged();
|
||||
}
|
||||
|
||||
bool CallSession::muted() const
|
||||
{
|
||||
if (m_state < CallSession::CONNECTING) {
|
||||
return false;
|
||||
}
|
||||
if (!m_pipe) {
|
||||
return false;
|
||||
}
|
||||
const auto srclevel = binGetByName(m_pipe, "srclevel");
|
||||
bool muted;
|
||||
if (!srclevel) {
|
||||
return false;
|
||||
}
|
||||
g_object_get(srclevel, "mute", &muted, nullptr);
|
||||
// gst_object_unref(srclevel); //TODO why does this crash?
|
||||
return muted;
|
||||
}
|
||||
|
||||
CallSession *
|
||||
CallSession::acceptCall(const QString &sdp, const QVector<Candidate> &candidates, const QStringList &turnUris, const QString &userId, QObject *parent)
|
||||
{
|
||||
auto instance = new CallSession(parent);
|
||||
instance->setTurnServers(turnUris);
|
||||
instance->acceptOffer(sdp, candidates, userId);
|
||||
return instance;
|
||||
}
|
||||
|
||||
CallSession *CallSession::startCall(const QStringList &turnUris, QObject *parent)
|
||||
{
|
||||
auto instance = new CallSession(parent);
|
||||
|
||||
instance->setTurnServers(turnUris);
|
||||
instance->createCall();
|
||||
return instance;
|
||||
}
|
||||
|
||||
CallSession::State CallSession::state() const
|
||||
{
|
||||
return m_state;
|
||||
}
|
||||
|
||||
void CallSession::setState(CallSession::State state)
|
||||
{
|
||||
qCWarning(voip) << "Setting state" << state;
|
||||
m_state = state;
|
||||
Q_EMIT stateChanged();
|
||||
}
|
||||
|
||||
void CallSession::setMetadata(QJsonObject metadata)
|
||||
{
|
||||
m_metadata = metadata;
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
||||
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
|
||||
// SPDX-FileCopyrightText: 2021-2022 Tobias Fella <fella@posteo.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QMetaType>
|
||||
#include <QObject>
|
||||
#include <QQuickItem>
|
||||
#include <QString>
|
||||
#include <variant>
|
||||
#define GST_USE_UNSTABLE_API
|
||||
#include <gst/webrtc/webrtc.h>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#define OPUS_PAYLOAD_TYPE 111
|
||||
#define VP8_PAYLOAD_TYPE 96
|
||||
|
||||
class CallDevices;
|
||||
class VideoStream;
|
||||
|
||||
struct Candidate {
|
||||
QString candidate;
|
||||
int sdpMLineIndex;
|
||||
QString sdpMid;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(Candidate)
|
||||
Q_DECLARE_METATYPE(QVector<Candidate>)
|
||||
|
||||
class CallSession : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum State {
|
||||
DISCONNECTED,
|
||||
ICEFAILED,
|
||||
INITIATING,
|
||||
INITIATED,
|
||||
OFFERSENT,
|
||||
ANSWERSENT,
|
||||
CONNECTING,
|
||||
CONNECTED,
|
||||
};
|
||||
Q_ENUM(State);
|
||||
|
||||
Q_PROPERTY(CallSession::State state READ state NOTIFY stateChanged)
|
||||
Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged)
|
||||
|
||||
// For outgoing calls
|
||||
static CallSession *startCall(const QStringList &turnUris, QObject *parent = nullptr);
|
||||
void acceptAnswer(const QString &sdp, const QVector<Candidate> &candidates, const QString &parent);
|
||||
|
||||
// For incoming calls
|
||||
static CallSession *
|
||||
acceptCall(const QString &sdp, const QVector<Candidate> &candidates, const QStringList &turnUris, const QString &userId, QObject *parent = nullptr);
|
||||
|
||||
void end();
|
||||
|
||||
void renegotiateOffer(const QString &offer, const QString &userId, bool answer);
|
||||
void setTurnServers(QStringList servers);
|
||||
|
||||
static QStringList missingPlugins();
|
||||
|
||||
CallSession::State state() const;
|
||||
|
||||
void toggleCamera();
|
||||
bool muted() const;
|
||||
void setMuted(bool muted);
|
||||
void setMetadata(QJsonObject metadata);
|
||||
void acceptCandidates(const QVector<Candidate> &candidates);
|
||||
|
||||
QMap<QString, QString> msidToUserId;
|
||||
Q_SIGNALS:
|
||||
void stateChanged();
|
||||
void offerCreated(const QString &sdp, const QVector<Candidate> &candidates);
|
||||
|
||||
void answerCreated(const QString &sdp, const QVector<Candidate> &candidates);
|
||||
|
||||
void mutedChanged();
|
||||
void newVideoStream(VideoStream *stream);
|
||||
|
||||
void renegotiate(QString sdp, const QString &type);
|
||||
|
||||
private:
|
||||
CallSession(QObject *parent = nullptr);
|
||||
void acceptOffer(const QString &sdp, const QVector<Candidate> remoteCandidates, const QString &userId);
|
||||
void createCall();
|
||||
|
||||
void setRemoteDescription(GstWebRTCSessionDescription *remote, const QString &userId, GstPromise *promise = nullptr);
|
||||
void startPipeline();
|
||||
void createPipeline();
|
||||
bool addVideoPipeline();
|
||||
|
||||
void setState(CallSession::State state);
|
||||
GstPad *m_activePad;
|
||||
GstElement *m_inputSelector;
|
||||
CallSession::State m_state = CallSession::DISCONNECTED;
|
||||
unsigned int m_busWatchId = 0;
|
||||
QStringList m_turnServers;
|
||||
QVector<Candidate> m_localCandidates;
|
||||
QString m_localSdp;
|
||||
GstElement *m_pipe = nullptr;
|
||||
bool m_isOffering = false;
|
||||
QMap<int, QString> ssrcToMsid;
|
||||
QJsonObject m_metadata;
|
||||
GstPad *m_inactivePad;
|
||||
};
|
||||
@@ -1,165 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "devicemonitor.h"
|
||||
#include "voiplogging.h"
|
||||
#include <QTimer>
|
||||
|
||||
QDebug operator<<(QDebug dbg, const GstStructure *props)
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
auto asStr = gst_structure_to_string(props);
|
||||
dbg << asStr;
|
||||
g_free(asStr);
|
||||
return dbg;
|
||||
}
|
||||
|
||||
static gboolean deviceCallback(GstBus *bus, GstMessage *message, gpointer user_data)
|
||||
{
|
||||
Q_UNUSED(bus);
|
||||
auto monitor = static_cast<DeviceMonitor *>(user_data);
|
||||
return monitor->callback(message);
|
||||
}
|
||||
|
||||
DeviceMonitor::DeviceMonitor()
|
||||
: QObject()
|
||||
{
|
||||
QTimer::singleShot(0, this, &DeviceMonitor::init);
|
||||
}
|
||||
|
||||
void DeviceMonitor::init()
|
||||
{
|
||||
if (m_monitor) {
|
||||
return;
|
||||
}
|
||||
m_monitor = gst_device_monitor_new();
|
||||
GstCaps *caps = gst_caps_new_empty_simple("audio/x-raw");
|
||||
gst_device_monitor_add_filter(m_monitor, "Audio/Source", caps);
|
||||
|
||||
gst_caps_unref(caps);
|
||||
caps = gst_caps_new_empty_simple("video/x-raw");
|
||||
gst_device_monitor_add_filter(m_monitor, "Video/Source", caps);
|
||||
gst_caps_unref(caps);
|
||||
|
||||
GstBus *bus = gst_device_monitor_get_bus(m_monitor);
|
||||
gst_bus_add_watch(bus, deviceCallback, this);
|
||||
gst_object_unref(bus);
|
||||
|
||||
if (!gst_device_monitor_start(m_monitor)) {
|
||||
qWarning() << "Failed to start device monitor";
|
||||
}
|
||||
}
|
||||
|
||||
QVector<AudioSource *> DeviceMonitor::audioSources() const
|
||||
{
|
||||
return m_audioSources;
|
||||
}
|
||||
|
||||
QVector<VideoSource *> DeviceMonitor::videoSources() const
|
||||
{
|
||||
return m_videoSources;
|
||||
}
|
||||
|
||||
void DeviceMonitor::handleVideoSource(GstDevice *device)
|
||||
{
|
||||
auto source = new VideoSource();
|
||||
auto title = gst_device_get_display_name(device);
|
||||
source->title = QString(title);
|
||||
g_free(title);
|
||||
source->device = device;
|
||||
|
||||
auto caps = gst_device_get_caps(device);
|
||||
auto size = gst_caps_get_size(caps);
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
VideoCap videoCap;
|
||||
GstStructure *cap = gst_caps_get_structure(caps, i);
|
||||
const gchar *name = gst_structure_get_name(cap);
|
||||
if (strcmp(name, "video/x-raw")) {
|
||||
// TODO g_free(name);
|
||||
continue;
|
||||
}
|
||||
// TODO g_free(name);
|
||||
gst_structure_get(cap, "width", G_TYPE_INT, &videoCap.width, "height", G_TYPE_INT, &videoCap.height, nullptr);
|
||||
const auto framerate = gst_structure_get_value(cap, "framerate");
|
||||
if (GST_VALUE_HOLDS_FRACTION(framerate)) {
|
||||
auto numerator = gst_value_get_fraction_numerator(framerate);
|
||||
auto denominator = gst_value_get_fraction_denominator(framerate);
|
||||
videoCap.framerates += (float)numerator / denominator;
|
||||
}
|
||||
// unref cap?
|
||||
source->caps += videoCap;
|
||||
}
|
||||
m_videoSources += source;
|
||||
Q_EMIT videoSourceAdded();
|
||||
}
|
||||
|
||||
void DeviceMonitor::handleAudioSource(GstDevice *device)
|
||||
{
|
||||
auto source = new AudioSource();
|
||||
auto title = gst_device_get_display_name(device);
|
||||
source->title = QString(title);
|
||||
g_free(title);
|
||||
|
||||
GstStructure *props = gst_device_get_properties(device);
|
||||
gboolean isDefault = false;
|
||||
if (gst_structure_has_field(props, "is-default")) {
|
||||
gst_structure_get_boolean(props, "is-default", &isDefault);
|
||||
}
|
||||
gst_structure_free(props);
|
||||
source->isDefault = isDefault;
|
||||
|
||||
source->device = device;
|
||||
m_audioSources += source;
|
||||
Q_EMIT audioSourceAdded();
|
||||
}
|
||||
|
||||
bool DeviceMonitor::callback(GstMessage *message)
|
||||
{
|
||||
GstDevice *device;
|
||||
switch (GST_MESSAGE_TYPE(message)) {
|
||||
case GST_MESSAGE_DEVICE_ADDED: {
|
||||
gst_message_parse_device_added(message, &device);
|
||||
auto name = gst_device_get_display_name(device);
|
||||
auto props = gst_device_get_properties(device);
|
||||
qCDebug(voip) << name << props;
|
||||
gst_structure_free(props);
|
||||
if (gst_device_has_classes(device, "Video/Source")) {
|
||||
handleVideoSource(device);
|
||||
} else if (gst_device_has_classes(device, "Audio/Source")) {
|
||||
handleAudioSource(device);
|
||||
}
|
||||
g_free(name);
|
||||
gst_object_unref(device);
|
||||
break;
|
||||
}
|
||||
case GST_MESSAGE_DEVICE_REMOVED: {
|
||||
gst_message_parse_device_removed(message, &device);
|
||||
auto name = gst_device_get_display_name(device);
|
||||
auto props = gst_device_get_properties(device);
|
||||
qCDebug(voip) << name << props;
|
||||
if (gst_device_has_classes(device, "Video/Source")) {
|
||||
m_videoSources.erase(std::remove_if(m_videoSources.begin(),
|
||||
m_videoSources.end(),
|
||||
[name](auto d) {
|
||||
return d->title == QString(name);
|
||||
}),
|
||||
m_videoSources.end());
|
||||
Q_EMIT videoSourceRemoved();
|
||||
} else if (gst_device_has_classes(device, "Audio/Source")) {
|
||||
m_audioSources.erase(std::remove_if(m_audioSources.begin(),
|
||||
m_audioSources.end(),
|
||||
[name](auto d) {
|
||||
return d->title == QString(name);
|
||||
}),
|
||||
m_audioSources.end());
|
||||
Q_EMIT audioSourceRemoved();
|
||||
}
|
||||
g_free(name);
|
||||
gst_object_unref(device);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QVector>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
struct AudioSource {
|
||||
QString title;
|
||||
GstDevice *device;
|
||||
bool isDefault;
|
||||
};
|
||||
struct VideoCap {
|
||||
int width;
|
||||
int height;
|
||||
QVector<float> framerates;
|
||||
};
|
||||
|
||||
struct VideoSource {
|
||||
QString title;
|
||||
GstDevice *device;
|
||||
QVector<VideoCap> caps;
|
||||
};
|
||||
|
||||
class DeviceMonitor : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static DeviceMonitor &instance()
|
||||
{
|
||||
static DeviceMonitor _instance;
|
||||
return _instance;
|
||||
}
|
||||
|
||||
QVector<AudioSource *> audioSources() const;
|
||||
QVector<VideoSource *> videoSources() const;
|
||||
bool callback(GstMessage *message);
|
||||
void init();
|
||||
|
||||
Q_SIGNALS:
|
||||
void videoSourceAdded();
|
||||
void audioSourceAdded();
|
||||
|
||||
void videoSourceRemoved();
|
||||
void audioSourceRemoved();
|
||||
|
||||
private:
|
||||
DeviceMonitor();
|
||||
GstDeviceMonitor *m_monitor = nullptr;
|
||||
QVector<AudioSource *> m_audioSources;
|
||||
QVector<VideoSource *> m_videoSources;
|
||||
void handleVideoSource(GstDevice *device);
|
||||
void handleAudioSource(GstDevice *device);
|
||||
};
|
||||
@@ -1,142 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "videosources.h"
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
// #include "pipelinemanager.h"
|
||||
#include <QDebug>
|
||||
#include <QString>
|
||||
|
||||
#include "devicemonitor.h"
|
||||
#include "neochatconfig.h"
|
||||
|
||||
int VideoSources::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return DeviceMonitor::instance().videoSources().size();
|
||||
}
|
||||
|
||||
QVariant VideoSources::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (index.row() >= DeviceMonitor::instance().videoSources().size()) {
|
||||
return QVariant(QStringLiteral("DEADBEEF"));
|
||||
}
|
||||
if (role == TitleRole) {
|
||||
return DeviceMonitor::instance().videoSources()[index.row()]->title;
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> VideoSources::roleNames() const
|
||||
{
|
||||
return {
|
||||
{TitleRole, "title"},
|
||||
};
|
||||
}
|
||||
|
||||
VideoSources::VideoSources()
|
||||
: QAbstractListModel()
|
||||
{
|
||||
connect(&DeviceMonitor::instance(), &DeviceMonitor::videoSourceAdded, this, [this]() {
|
||||
beginResetModel();
|
||||
endResetModel();
|
||||
Q_EMIT currentIndexChanged();
|
||||
});
|
||||
connect(&DeviceMonitor::instance(), &DeviceMonitor::videoSourceRemoved, this, [this]() {
|
||||
beginResetModel();
|
||||
endResetModel();
|
||||
Q_EMIT currentIndexChanged();
|
||||
});
|
||||
}
|
||||
|
||||
void VideoSources::foo(int index)
|
||||
{
|
||||
auto device = DeviceMonitor::instance().videoSources()[index]->device;
|
||||
|
||||
auto bin = gst_bin_new(nullptr);
|
||||
|
||||
GstElement *videoconvert = gst_element_factory_make("videoconvert", nullptr);
|
||||
// GstElement *videorate = gst_element_factory_make("videorate", nullptr);
|
||||
|
||||
GstElement *filter = gst_element_factory_make("capsfilter", nullptr);
|
||||
GstCaps *caps = gst_caps_new_simple("video/x-raw", "width", G_TYPE_INT, 1920, "height", G_TYPE_INT, 1080, "framerate", GST_TYPE_FRACTION, 5, 1, nullptr);
|
||||
g_object_set(filter, "caps", caps, nullptr);
|
||||
gst_caps_unref(caps);
|
||||
GstElement *deviceElement = gst_device_create_element(device, nullptr);
|
||||
|
||||
gst_bin_add_many(GST_BIN(bin), deviceElement, videoconvert, filter, nullptr);
|
||||
gst_element_link_many(deviceElement, videoconvert, filter, nullptr);
|
||||
|
||||
// GstPad *pad = gst_element_get_static_pad(filter, "src");
|
||||
GstPad *pad = gst_element_get_static_pad(filter, "src");
|
||||
auto ghostpad = gst_ghost_pad_new("src", pad);
|
||||
gst_element_add_pad(bin, ghostpad);
|
||||
gst_object_unref(pad);
|
||||
// PipelineManager::instance().add(bin);
|
||||
}
|
||||
|
||||
const VideoSource *VideoSources::currentDevice() const
|
||||
{
|
||||
const auto config = NeoChatConfig::self();
|
||||
const QString name = config->camera();
|
||||
for (const auto &videoSource : DeviceMonitor::instance().videoSources()) {
|
||||
if (videoSource->title == name) {
|
||||
qDebug() << "WebRTC: camera:" << name;
|
||||
return videoSource;
|
||||
}
|
||||
}
|
||||
if (DeviceMonitor::instance().videoSources().length() == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
return DeviceMonitor::instance().videoSources()[0];
|
||||
}
|
||||
|
||||
void VideoSources::setCurrentIndex(int index)
|
||||
{
|
||||
if (DeviceMonitor::instance().videoSources().size() == 0) {
|
||||
return;
|
||||
}
|
||||
NeoChatConfig::setCamera(DeviceMonitor::instance().videoSources()[index]->title);
|
||||
NeoChatConfig::self()->save();
|
||||
|
||||
setCapsIndex(0);
|
||||
}
|
||||
|
||||
int VideoSources::currentIndex() const
|
||||
{
|
||||
const auto config = NeoChatConfig::self();
|
||||
const QString name = config->camera();
|
||||
for (auto i = 0; i < DeviceMonitor::instance().videoSources().size(); i++) {
|
||||
if (DeviceMonitor::instance().videoSources()[i]->title == name) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList VideoSources::caps(int index) const
|
||||
{
|
||||
if (index >= DeviceMonitor::instance().videoSources().size()) {
|
||||
return QStringList();
|
||||
}
|
||||
const auto &caps = DeviceMonitor::instance().videoSources()[index]->caps;
|
||||
QStringList strings;
|
||||
for (const auto &cap : caps) {
|
||||
strings += QStringLiteral("%1x%2, %3 FPS").arg(cap.width).arg(cap.height).arg(cap.framerates.back());
|
||||
}
|
||||
return strings;
|
||||
}
|
||||
|
||||
void VideoSources::setCapsIndex(int index)
|
||||
{
|
||||
NeoChatConfig::self()->setCameraCaps(index);
|
||||
NeoChatConfig::self()->save();
|
||||
Q_EMIT capsIndexChanged();
|
||||
}
|
||||
|
||||
int VideoSources::capsIndex() const
|
||||
{
|
||||
return NeoChatConfig::self()->cameraCaps();
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QAbstractListModel>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include "devicemonitor.h"
|
||||
|
||||
class VideoSources : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged)
|
||||
Q_PROPERTY(int capsIndex READ capsIndex WRITE setCapsIndex NOTIFY capsIndexChanged)
|
||||
public:
|
||||
enum Roles {
|
||||
TitleRole = Qt::UserRole + 1,
|
||||
DeviceRole,
|
||||
};
|
||||
|
||||
static VideoSources &instance()
|
||||
{
|
||||
static VideoSources _instance;
|
||||
return _instance;
|
||||
}
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
Q_INVOKABLE void foo(int index);
|
||||
|
||||
const VideoSource *currentDevice() const;
|
||||
|
||||
void setCurrentIndex(int index);
|
||||
int currentIndex() const;
|
||||
|
||||
void setCapsIndex(int index);
|
||||
int capsIndex() const;
|
||||
|
||||
Q_INVOKABLE QStringList caps(int index) const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void currentIndexChanged();
|
||||
void capsIndexChanged();
|
||||
|
||||
private:
|
||||
VideoSources();
|
||||
};
|
||||
@@ -736,12 +736,3 @@ QVariantList Controller::getSupportedRoomVersions(Quotient::Connection *connecti
|
||||
|
||||
return supportedRoomVersions;
|
||||
}
|
||||
|
||||
bool Controller::callsSupported() const
|
||||
{
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -100,7 +100,6 @@ class Controller : public QObject
|
||||
* This is the only way to gate NeoChat features in flatpaks in QML.
|
||||
*/
|
||||
Q_PROPERTY(bool isFlatpak READ isFlatpak CONSTANT)
|
||||
Q_PROPERTY(bool callsSupported READ callsSupported CONSTANT)
|
||||
|
||||
public:
|
||||
/**
|
||||
@@ -198,7 +197,6 @@ public:
|
||||
int quotientMinorVersion() const;
|
||||
|
||||
bool isFlatpak() const;
|
||||
bool callsSupported() const;
|
||||
|
||||
/**
|
||||
* @brief Return a string for the input timestamp.
|
||||
|
||||
44
src/locationhelper.cpp
Normal file
44
src/locationhelper.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "locationhelper.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
QRectF LocationHelper::unite(const QRectF &r1, const QRectF &r2)
|
||||
{
|
||||
// this looks weird but is actually intentional as we need to handle point-like "rects" as well
|
||||
if ((!r1.isEmpty() || r1.isNull()) && (!r2.isEmpty() || r2.isNull())) {
|
||||
return r1 | r2;
|
||||
}
|
||||
return (!r1.isEmpty() || r1.isNull()) ? r1 : r2;
|
||||
}
|
||||
|
||||
QPointF LocationHelper::center(const QRectF &r)
|
||||
{
|
||||
return r.center();
|
||||
}
|
||||
|
||||
constexpr inline double degToRad(double deg)
|
||||
{
|
||||
return deg / 180.0 * M_PI;
|
||||
}
|
||||
|
||||
static QPointF mercatorProject(double lat, double lon, double zoom)
|
||||
{
|
||||
const auto x = (256.0 / (2.0 * M_PI)) * std::pow(2.0, zoom) * (degToRad(lon) + M_PI);
|
||||
const auto y = (256.0 / (2.0 * M_PI)) * std::pow(2.0, zoom) * (M_PI - std::log(std::tan(M_PI / 4.0 + degToRad(lat) / 2.0)));
|
||||
return QPointF(x, y);
|
||||
}
|
||||
|
||||
float LocationHelper::zoomToFit(const QRectF &r, float mapWidth, float mapHeight)
|
||||
{
|
||||
const auto p1 = mercatorProject(r.bottomLeft().y(), r.bottomLeft().x(), 1.0);
|
||||
const auto p2 = mercatorProject(r.topRight().y(), r.topRight().x(), 1.0);
|
||||
|
||||
const auto zx = std::log2((mapWidth / (p2.x() - p1.x())));
|
||||
const auto zy = std::log2((mapHeight / (p2.y() - p1.y())));
|
||||
const auto z = std::min(zx, zy);
|
||||
|
||||
return std::clamp(z, 5.0, 18.0);
|
||||
}
|
||||
22
src/locationhelper.h
Normal file
22
src/locationhelper.h
Normal file
@@ -0,0 +1,22 @@
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "linkpreviewer.h"
|
||||
#include <QMetaType>
|
||||
#include <QRectF>
|
||||
|
||||
/** Location related helper functions for QML. */
|
||||
class LocationHelper
|
||||
{
|
||||
Q_GADGET
|
||||
public:
|
||||
/** Unite two rectanlges. */
|
||||
Q_INVOKABLE static QRectF unite(const QRectF &r1, const QRectF &r2);
|
||||
/** Returns the center of @p r. */
|
||||
Q_INVOKABLE static QPointF center(const QRectF &r);
|
||||
|
||||
/** Returns the highest zoom level to fit @r into a map of size @p mapWidth x @p mapHeight. */
|
||||
Q_INVOKABLE static float zoomToFit(const QRectF &r, float mapWidth, float mapHeight);
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(LocationHelper)
|
||||
45
src/main.cpp
45
src/main.cpp
@@ -46,6 +46,7 @@
|
||||
#include "delegatesizehelper.h"
|
||||
#include "filetypesingleton.h"
|
||||
#include "linkpreviewer.h"
|
||||
#include "locationhelper.h"
|
||||
#include "logger.h"
|
||||
#include "login.h"
|
||||
#include "matriximageprovider.h"
|
||||
@@ -57,6 +58,8 @@
|
||||
#include "models/emoticonfiltermodel.h"
|
||||
#include "models/imagepacksmodel.h"
|
||||
#include "models/keywordnotificationrulemodel.h"
|
||||
#include "models/livelocationsmodel.h"
|
||||
#include "models/locationsmodel.h"
|
||||
#include "models/messageeventmodel.h"
|
||||
#include "models/messagefiltermodel.h"
|
||||
#include "models/publicroomlistmodel.h"
|
||||
@@ -86,8 +89,6 @@
|
||||
#ifdef QUOTIENT_07
|
||||
#include <keyverificationsession.h>
|
||||
#endif
|
||||
#include <room.h>
|
||||
|
||||
#ifdef HAVE_COLORSCHEME
|
||||
#include "colorschemer.h"
|
||||
#endif
|
||||
@@ -95,14 +96,6 @@
|
||||
#include "models/statemodel.h"
|
||||
#include "neochatuser.h"
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
#include "call/audiosources.h"
|
||||
#include "call/callmanager.h"
|
||||
#include "call/callparticipant.h"
|
||||
#include "call/videosources.h"
|
||||
#include "models/callparticipantsmodel.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_RUNNER
|
||||
#include "runner.h"
|
||||
#include <QDBusConnection>
|
||||
@@ -193,22 +186,6 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
QStringLiteral("https://github.com/quotient-im/libquotient"),
|
||||
KAboutLicense::LGPL_V2_1);
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
guint major, minor, micro, nano;
|
||||
gst_version(&major, &minor, µ, &nano);
|
||||
about.addComponent(QStringLiteral("GStreamer"),
|
||||
i18nc("Description of GStreamer", "Open Source Multimedia Framework"),
|
||||
i18nc("<version number> (built against <possibly different version number>)",
|
||||
"%1.%2.%3.%4 (built against %5.%6.%7.%8)",
|
||||
major,
|
||||
minor,
|
||||
micro,
|
||||
nano,
|
||||
GST_VERSION_MAJOR,
|
||||
GST_VERSION_MINOR,
|
||||
GST_VERSION_MICRO,
|
||||
GST_VERSION_NANO));
|
||||
#endif
|
||||
|
||||
KAboutData::setApplicationData(about);
|
||||
QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("org.kde.neochat")));
|
||||
@@ -273,6 +250,8 @@ int main(int argc, char *argv[])
|
||||
qmlRegisterType<StateModel>("org.kde.neochat", 1, 0, "StateModel");
|
||||
qmlRegisterType<StateFilterModel>("org.kde.neochat", 1, 0, "StateFilterModel");
|
||||
qmlRegisterType<SearchModel>("org.kde.neochat", 1, 0, "SearchModel");
|
||||
qmlRegisterType<LiveLocationsModel>("org.kde.neochat", 1, 0, "LiveLocationsModel");
|
||||
qmlRegisterType<LocationsModel>("org.kde.neochat", 1, 0, "LocationsModel");
|
||||
#ifdef QUOTIENT_07
|
||||
qmlRegisterType<PollHandler>("org.kde.neochat", 1, 0, "PollHandler");
|
||||
#endif
|
||||
@@ -289,10 +268,6 @@ int main(int argc, char *argv[])
|
||||
qmlRegisterUncreatableType<NeoChatUser>("org.kde.neochat", 1, 0, "NeoChatUser", {});
|
||||
qmlRegisterUncreatableType<NeoChatRoom>("org.kde.neochat", 1, 0, "NeoChatRoom", {});
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
qmlRegisterUncreatableType<CallParticipantsModel>("org.kde.neochat", 1, 0, "CallParticipantsModel", "Get through CallManager");
|
||||
qmlRegisterUncreatableType<CallParticipant>("org.kde.neochat", 1, 0, "CallParticipant", "Get through model");
|
||||
#endif
|
||||
qRegisterMetaType<User *>("User*");
|
||||
qRegisterMetaType<User *>("const User*");
|
||||
qRegisterMetaType<User *>("const Quotient::User*");
|
||||
@@ -309,18 +284,14 @@ int main(int argc, char *argv[])
|
||||
qmlRegisterUncreatableType<KeyVerificationSession>("org.kde.neochat", 1, 0, "KeyVerificationSession", {});
|
||||
qRegisterMetaType<QVector<EmojiEntry>>("QVector<EmojiEntry>");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
qmlRegisterSingletonInstance("org.kde.neochat", 1, 0, "AudioSources", &AudioSources::instance());
|
||||
qmlRegisterSingletonInstance("org.kde.neochat", 1, 0, "VideoSources", &VideoSources::instance());
|
||||
qmlRegisterSingletonInstance("org.kde.neochat", 1, 0, "CallManager", &CallManager::instance());
|
||||
qmlRegisterUncreatableType<CallSession>("org.kde.neochat", 1, 0, "CallSession", "ENUM");
|
||||
#endif
|
||||
qmlRegisterSingletonType("org.kde.neochat", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
|
||||
return engine->toScriptValue(KAboutData::applicationData());
|
||||
});
|
||||
qmlRegisterSingletonType(QUrl("qrc:/OsmLocationPlugin.qml"), "org.kde.neochat", 1, 0, "OsmLocationPlugin");
|
||||
qmlRegisterSingletonType("org.kde.neochat", 1, 0, "LocationHelper", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
|
||||
return engine->toScriptValue(LocationHelper());
|
||||
});
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
qRegisterMetaTypeStreamOperators<Emoji>();
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "callparticipantsmodel.h"
|
||||
|
||||
QVariant CallParticipantsModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (role == ObjectRole) {
|
||||
return QVariant::fromValue(m_callParticipants[index.row()]);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
int CallParticipantsModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return m_callParticipants.size();
|
||||
}
|
||||
|
||||
void CallParticipantsModel::clear()
|
||||
{
|
||||
beginRemoveRows(QModelIndex(), 0, m_callParticipants.size() - 1);
|
||||
m_callParticipants.clear();
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
CallParticipant *CallParticipantsModel::callParticipantForUser(NeoChatUser *user)
|
||||
{
|
||||
for (const auto &callParticipant : m_callParticipants) {
|
||||
if (callParticipant->m_user == user) {
|
||||
return callParticipant;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> CallParticipantsModel::roleNames() const
|
||||
{
|
||||
return {
|
||||
{WidthRole, "width"},
|
||||
{HeightRole, "height"},
|
||||
{PadRole, "pad"},
|
||||
{ObjectRole, "object"},
|
||||
};
|
||||
}
|
||||
|
||||
void CallParticipantsModel::addParticipant(CallParticipant *callParticipant)
|
||||
{
|
||||
beginInsertRows(QModelIndex(), m_callParticipants.size(), m_callParticipants.size());
|
||||
m_callParticipants += callParticipant;
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
void CallParticipantsModel::setHasCamera(NeoChatUser *user, bool hasCamera)
|
||||
{
|
||||
callParticipantForUser(user)->m_hasCamera = hasCamera;
|
||||
Q_EMIT callParticipantForUser(user)->hasCameraChanged();
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QVector>
|
||||
|
||||
#include "call/callparticipant.h"
|
||||
#include "neochatuser.h"
|
||||
|
||||
class CallParticipantsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
WidthRole,
|
||||
HeightRole,
|
||||
PadRole,
|
||||
ObjectRole,
|
||||
};
|
||||
Q_ENUM(Roles);
|
||||
|
||||
[[nodiscard]] QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
[[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
[[nodiscard]] QHash<int, QByteArray> roleNames() const override;
|
||||
;
|
||||
|
||||
void addParticipant(CallParticipant *callParticipant);
|
||||
CallParticipant *callParticipantForUser(NeoChatUser *user);
|
||||
|
||||
void setHasCamera(NeoChatUser *user, bool hasCamera);
|
||||
void clear();
|
||||
|
||||
private:
|
||||
QVector<CallParticipant *> m_callParticipants;
|
||||
};
|
||||
171
src/models/livelocationsmodel.cpp
Normal file
171
src/models/livelocationsmodel.cpp
Normal file
@@ -0,0 +1,171 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "livelocationsmodel.h"
|
||||
|
||||
#include <Quotient/events/roommessageevent.h>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
bool operator<(const LiveLocationData &lhs, const LiveLocationData &rhs)
|
||||
{
|
||||
return lhs.eventId < rhs.eventId;
|
||||
}
|
||||
|
||||
LiveLocationsModel::LiveLocationsModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
connect(
|
||||
this,
|
||||
&LiveLocationsModel::roomChanged,
|
||||
this,
|
||||
[this]() {
|
||||
for (const auto &event : m_room->messageEvents()) {
|
||||
addEvent(event.get());
|
||||
}
|
||||
connect(m_room, &NeoChatRoom::aboutToAddHistoricalMessages, this, [this](const auto &events) {
|
||||
for (const auto &event : events) {
|
||||
addEvent(event.get());
|
||||
}
|
||||
});
|
||||
connect(m_room, &NeoChatRoom::aboutToAddNewMessages, this, [this](const auto &events) {
|
||||
for (const auto &event : events) {
|
||||
addEvent(event.get());
|
||||
}
|
||||
});
|
||||
},
|
||||
Qt::QueuedConnection); // deferred so we are sure the eventId filter is set
|
||||
|
||||
connect(this, &LiveLocationsModel::dataChanged, this, &LiveLocationsModel::boundingBoxChanged);
|
||||
connect(this, &LiveLocationsModel::rowsInserted, this, &LiveLocationsModel::boundingBoxChanged);
|
||||
}
|
||||
|
||||
int LiveLocationsModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
if (parent.isValid()) {
|
||||
return 0;
|
||||
}
|
||||
return m_locations.size();
|
||||
}
|
||||
|
||||
QVariant LiveLocationsModel::data(const QModelIndex &index, int roleName) const
|
||||
{
|
||||
if (!checkIndex(index)) {
|
||||
return {};
|
||||
}
|
||||
|
||||
const auto &data = m_locations.at(index.row());
|
||||
switch (roleName) {
|
||||
case LatitudeRole: {
|
||||
const auto geoUri = data.beacon["org.matrix.msc3488.location"_ls].toObject()["uri"_ls].toString();
|
||||
if (geoUri.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
const auto latitude = geoUri.split(u';')[0].split(u':')[1].split(u',')[0];
|
||||
return latitude.toFloat();
|
||||
}
|
||||
case LongitudeRole: {
|
||||
const auto geoUri = data.beacon["org.matrix.msc3488.location"_ls].toObject()["uri"_ls].toString();
|
||||
if (geoUri.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
const auto longitude = geoUri.split(u';')[0].split(u':')[1].split(u',')[1];
|
||||
return longitude.toFloat();
|
||||
}
|
||||
case AssetRole:
|
||||
return data.beaconInfo["org.matrix.msc3488.asset"_ls].toObject()["type"].toString();
|
||||
case AuthorRole:
|
||||
return m_room->getUser(data.senderId);
|
||||
case IsLiveRole: {
|
||||
if (!data.beaconInfo["live"_ls].toBool()) {
|
||||
return false;
|
||||
}
|
||||
// TODO Qt6: port to toInteger(), timestamps are in ms since epoch, ie. 64 bit values
|
||||
const auto lastTs = std::max(data.beaconInfo.value("org.matrix.msc3488.ts"_ls).toDouble(), data.beacon.value("org.matrix.msc3488.ts"_ls).toDouble());
|
||||
const auto timeout = data.beaconInfo.value("timeout"_ls).toDouble(600000);
|
||||
return lastTs + timeout >= QDateTime::currentDateTime().toMSecsSinceEpoch();
|
||||
}
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> LiveLocationsModel::roleNames() const
|
||||
{
|
||||
auto r = QAbstractListModel::roleNames();
|
||||
r.insert(LatitudeRole, "latitude");
|
||||
r.insert(LongitudeRole, "longitude");
|
||||
r.insert(AssetRole, "asset");
|
||||
r.insert(AuthorRole, "author");
|
||||
r.insert(IsLiveRole, "isLive");
|
||||
return r;
|
||||
}
|
||||
|
||||
QRectF LiveLocationsModel::boundingBox() const
|
||||
{
|
||||
QRectF bbox(QPointF(180.0, 90.0), QPointF(-180.0, -90.0));
|
||||
for (auto i = 0; i < rowCount(); ++i) {
|
||||
const auto lat = data(index(i, 0), LatitudeRole).toDouble();
|
||||
const auto lon = data(index(i, 0), LongitudeRole).toDouble();
|
||||
|
||||
bbox.setLeft(std::min(bbox.left(), lon));
|
||||
bbox.setRight(std::max(bbox.right(), lon));
|
||||
bbox.setTop(std::min(bbox.top(), lat));
|
||||
bbox.setBottom(std::max(bbox.bottom(), lat));
|
||||
}
|
||||
return bbox;
|
||||
}
|
||||
|
||||
void LiveLocationsModel::addEvent(const Quotient::RoomEvent *event)
|
||||
{
|
||||
if (event->isStateEvent() && event->matrixType() == "org.matrix.msc3672.beacon_info") {
|
||||
LiveLocationData data;
|
||||
data.senderId = event->senderId();
|
||||
data.beaconInfo = event->contentJson();
|
||||
if (event->contentJson()["live"_ls].toBool()) {
|
||||
data.eventId = event->id();
|
||||
} else {
|
||||
data.eventId = event->fullJson()["replaces_state"_ls].toString();
|
||||
}
|
||||
updateLocationData(std::move(data));
|
||||
}
|
||||
if (event->matrixType() == "org.matrix.msc3672.beacon"_ls) {
|
||||
LiveLocationData data;
|
||||
data.eventId = event->contentJson()["m.relates_to"_ls].toObject()["event_id"_ls].toString();
|
||||
data.senderId = event->senderId();
|
||||
data.beacon = event->contentJson();
|
||||
updateLocationData(std::move(data));
|
||||
}
|
||||
}
|
||||
|
||||
void LiveLocationsModel::updateLocationData(LiveLocationData &&data)
|
||||
{
|
||||
if (!m_eventId.isEmpty() && data.eventId != m_eventId) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = std::lower_bound(m_locations.begin(), m_locations.end(), data);
|
||||
if (it == m_locations.end() || it->eventId != data.eventId) {
|
||||
const auto row = std::distance(m_locations.begin(), it);
|
||||
beginInsertRows({}, row, row);
|
||||
m_locations.insert(it, std::move(data));
|
||||
endInsertRows();
|
||||
return;
|
||||
}
|
||||
|
||||
const auto idx = index(std::distance(m_locations.begin(), it), 0);
|
||||
|
||||
// TODO Qt6: port to toInteger(), timestamps are in ms since epoch, ie. 64 bit values
|
||||
if (it->beacon.isEmpty() || it->beacon.value("org.matrix.msc3488.ts"_ls).toDouble() < data.beacon.value("org.matrix.msc3488.ts"_ls).toDouble()) {
|
||||
it->beacon = std::move(data.beacon);
|
||||
}
|
||||
if (it->beaconInfo.isEmpty()
|
||||
|| it->beaconInfo.value("org.matrix.msc3488.ts"_ls).toDouble() < data.beaconInfo.value("org.matrix.msc3488.ts"_ls).toDouble()) {
|
||||
it->beaconInfo = std::move(data.beaconInfo);
|
||||
}
|
||||
|
||||
Q_EMIT dataChanged(idx, idx);
|
||||
}
|
||||
74
src/models/livelocationsmodel.h
Normal file
74
src/models/livelocationsmodel.h
Normal file
@@ -0,0 +1,74 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "neochatroom.h"
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QPointer>
|
||||
#include <QRectF>
|
||||
|
||||
namespace Quotient
|
||||
{
|
||||
class RoomMessageEvent;
|
||||
}
|
||||
|
||||
struct LiveLocationData {
|
||||
QString eventId;
|
||||
QString senderId;
|
||||
QJsonObject beaconInfo;
|
||||
QJsonObject beacon;
|
||||
};
|
||||
bool operator<(const LiveLocationData &lhs, const LiveLocationData &rhs);
|
||||
|
||||
/** Accumulates live location beacon events in a given room
|
||||
* and provides the last known state for one or more live location beacons.
|
||||
*/
|
||||
class LiveLocationsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(NeoChatRoom *room MEMBER m_room NOTIFY roomChanged)
|
||||
/** The event id of the beacon start event, ie. the one all suspequent
|
||||
* events use to relate to the same beacon.
|
||||
* If this is set only this specific beacon will be coverd by this model,
|
||||
* if it is empty, all beacons in the room will be covered.
|
||||
*/
|
||||
Q_PROPERTY(QString eventId MEMBER m_eventId NOTIFY eventIdChanged)
|
||||
|
||||
/** Bounding box of all live location beacons covered by this model. */
|
||||
Q_PROPERTY(QRectF boundingBox READ boundingBox NOTIFY boundingBoxChanged)
|
||||
|
||||
public:
|
||||
explicit LiveLocationsModel(QObject *parent = nullptr);
|
||||
|
||||
enum Roles {
|
||||
LatitudeRole, /**< Latest latitude of a live locaction beacon. */
|
||||
LongitudeRole, /**< Latest longitude of a live locaction beacon. */
|
||||
AssetRole, /**< Type of location event, e.g. self pin of the user location. */
|
||||
AuthorRole, /**< The author of the event. */
|
||||
IsLiveRole, /**< Boolean that indicates whether a live location beacon is still live. */
|
||||
};
|
||||
Q_ENUM(Roles)
|
||||
|
||||
int rowCount(const QModelIndex &parent = {}) const override;
|
||||
QVariant data(const QModelIndex &index, int roleName) const override;
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
QRectF boundingBox() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void roomChanged();
|
||||
void eventIdChanged();
|
||||
void boundingBoxChanged();
|
||||
|
||||
private:
|
||||
void addEvent(const Quotient::RoomEvent *event);
|
||||
void updateLocationData(LiveLocationData &&data);
|
||||
|
||||
QPointer<NeoChatRoom> m_room;
|
||||
QString m_eventId;
|
||||
|
||||
QList<LiveLocationData> m_locations;
|
||||
};
|
||||
129
src/models/locationsmodel.cpp
Normal file
129
src/models/locationsmodel.cpp
Normal file
@@ -0,0 +1,129 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "locationsmodel.h"
|
||||
|
||||
using namespace Quotient;
|
||||
|
||||
LocationsModel::LocationsModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
connect(this, &LocationsModel::roomChanged, this, [=]() {
|
||||
for (const auto &event : m_room->messageEvents()) {
|
||||
if (!is<RoomMessageEvent>(*event)) {
|
||||
continue;
|
||||
}
|
||||
if (event->contentJson()["msgtype"] == "m.location") {
|
||||
const auto &e = *event;
|
||||
addLocation(eventCast<const RoomMessageEvent>(&e));
|
||||
}
|
||||
}
|
||||
connect(m_room, &NeoChatRoom::aboutToAddHistoricalMessages, this, [=](const auto &events) {
|
||||
for (const auto &event : events) {
|
||||
if (!is<RoomMessageEvent>(*event)) {
|
||||
continue;
|
||||
}
|
||||
if (event->contentJson()["msgtype"] == "m.location") {
|
||||
const auto &e = *event;
|
||||
addLocation(eventCast<const RoomMessageEvent>(&e));
|
||||
}
|
||||
}
|
||||
});
|
||||
connect(m_room, &NeoChatRoom::aboutToAddNewMessages, this, [=](const auto &events) {
|
||||
for (const auto &event : events) {
|
||||
if (!is<RoomMessageEvent>(*event)) {
|
||||
continue;
|
||||
}
|
||||
if (event->contentJson()["msgtype"] == "m.location") {
|
||||
const auto &e = *event;
|
||||
addLocation(eventCast<const RoomMessageEvent>(&e));
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
connect(this, &LocationsModel::rowsInserted, this, &LocationsModel::boundingBoxChanged);
|
||||
}
|
||||
|
||||
void LocationsModel::addLocation(const RoomMessageEvent *event)
|
||||
{
|
||||
const auto uri = event->contentJson()["org.matrix.msc3488.location"]["uri"].toString();
|
||||
const auto parts = uri.mid(4).split(QLatin1Char(','));
|
||||
if (parts.size() < 2) {
|
||||
qWarning() << "invalid geo: URI" << uri;
|
||||
return;
|
||||
}
|
||||
const auto latitude = parts[0].toFloat();
|
||||
const auto longitude = parts[1].toFloat();
|
||||
beginInsertRows(QModelIndex(), m_locations.size(), m_locations.size() + 1);
|
||||
m_locations += LocationData{
|
||||
.eventId = event->id(),
|
||||
.latitude = latitude,
|
||||
.longitude = longitude,
|
||||
.content = event->contentJson(),
|
||||
.author = dynamic_cast<NeoChatUser *>(m_room->user(event->senderId())),
|
||||
};
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
NeoChatRoom *LocationsModel::room() const
|
||||
{
|
||||
return m_room;
|
||||
}
|
||||
|
||||
void LocationsModel::setRoom(NeoChatRoom *room)
|
||||
{
|
||||
if (m_room) {
|
||||
disconnect(this, nullptr, m_room, nullptr);
|
||||
}
|
||||
m_room = room;
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> LocationsModel::roleNames() const
|
||||
{
|
||||
return {
|
||||
{LongitudeRole, "longitude"},
|
||||
{LatitudeRole, "latitude"},
|
||||
{TextRole, "text"},
|
||||
{AssetRole, "asset"},
|
||||
{AuthorRole, "author"},
|
||||
};
|
||||
}
|
||||
|
||||
QVariant LocationsModel::data(const QModelIndex &index, int roleName) const
|
||||
{
|
||||
auto row = index.row();
|
||||
if (roleName == LongitudeRole) {
|
||||
return m_locations[row].longitude;
|
||||
} else if (roleName == LatitudeRole) {
|
||||
return m_locations[row].latitude;
|
||||
} else if (roleName == TextRole) {
|
||||
return m_locations[row].content["body"_ls].toString();
|
||||
} else if (roleName == AssetRole) {
|
||||
return m_locations[row].content["org.matrix.msc3488.asset"_ls].toObject()["type"_ls].toString();
|
||||
} else if (roleName == AuthorRole) {
|
||||
return m_room->getUser(m_locations[row].author);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
int LocationsModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
return m_locations.size();
|
||||
}
|
||||
|
||||
QRectF LocationsModel::boundingBox() const
|
||||
{
|
||||
QRectF bbox(QPointF(180.0, 90.0), QPointF(-180.0, -90.0));
|
||||
for (auto i = 0; i < rowCount(); ++i) {
|
||||
const auto lat = data(index(i, 0), LatitudeRole).toDouble();
|
||||
const auto lon = data(index(i, 0), LongitudeRole).toDouble();
|
||||
|
||||
bbox.setLeft(std::min(bbox.left(), lon));
|
||||
bbox.setRight(std::max(bbox.right(), lon));
|
||||
bbox.setTop(std::min(bbox.top(), lat));
|
||||
bbox.setBottom(std::max(bbox.bottom(), lat));
|
||||
}
|
||||
return bbox;
|
||||
}
|
||||
58
src/models/locationsmodel.h
Normal file
58
src/models/locationsmodel.h
Normal file
@@ -0,0 +1,58 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QPointer>
|
||||
#include <QRectF>
|
||||
|
||||
#include "neochatroom.h"
|
||||
|
||||
#include <events/roommessageevent.h>
|
||||
|
||||
class LocationsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
TextRole = Qt::DisplayRole,
|
||||
LongitudeRole,
|
||||
LatitudeRole,
|
||||
AssetRole,
|
||||
AuthorRole,
|
||||
};
|
||||
Q_ENUM(Roles)
|
||||
Q_PROPERTY(NeoChatRoom *room READ room WRITE setRoom NOTIFY roomChanged)
|
||||
/** Bounding box of all locations covered by this model. */
|
||||
Q_PROPERTY(QRectF boundingBox READ boundingBox NOTIFY boundingBoxChanged)
|
||||
|
||||
explicit LocationsModel(QObject *parent = nullptr);
|
||||
|
||||
[[nodiscard]] NeoChatRoom *room() const;
|
||||
void setRoom(NeoChatRoom *room);
|
||||
|
||||
QRectF boundingBox() const;
|
||||
|
||||
[[nodiscard]] QHash<int, QByteArray> roleNames() const override;
|
||||
[[nodiscard]] QVariant data(const QModelIndex &index, int roleName) const override;
|
||||
[[nodiscard]] int rowCount(const QModelIndex &parent = {}) const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void roomChanged();
|
||||
void boundingBoxChanged();
|
||||
|
||||
private:
|
||||
QPointer<NeoChatRoom> m_room;
|
||||
|
||||
struct LocationData {
|
||||
QString eventId;
|
||||
float latitude;
|
||||
float longitude;
|
||||
QJsonObject content;
|
||||
NeoChatUser *author;
|
||||
};
|
||||
QList<LocationData> m_locations;
|
||||
void addLocation(const Quotient::RoomMessageEvent *event);
|
||||
};
|
||||
@@ -521,13 +521,13 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
|
||||
|
||||
return DelegateType::Message;
|
||||
}
|
||||
if (evt.matrixType() == "m.call.invite") {
|
||||
return DelegateType::CallInvite;
|
||||
}
|
||||
if (is<const StickerEvent>(evt)) {
|
||||
return DelegateType::Sticker;
|
||||
}
|
||||
if (evt.isStateEvent()) {
|
||||
if (evt.matrixType() == "org.matrix.msc3672.beacon_info"_ls) {
|
||||
return DelegateType::LiveLocation;
|
||||
}
|
||||
return DelegateType::State;
|
||||
}
|
||||
if (is<const EncryptedEvent>(evt)) {
|
||||
@@ -638,6 +638,11 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
|
||||
return EventStatus::Hidden;
|
||||
}
|
||||
|
||||
// hide ending live location beacons
|
||||
if (evt.isStateEvent() && evt.matrixType() == "org.matrix.msc3672.beacon_info"_ls && !evt.contentJson()["live"_ls].toBool()) {
|
||||
return EventStatus::Hidden;
|
||||
}
|
||||
|
||||
return EventStatus::Normal;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
ReadMarker, /**< The local user read marker. */
|
||||
Poll, /**< The initial event for a poll. */
|
||||
Location, /**< A location event. */
|
||||
CallInvite, /**< An invitation to a call. */
|
||||
LiveLocation, /**< The initial event of a shared live location (i.e., the place where this is supposed to be shown in the timeline). */
|
||||
Other, /**< Anything that cannot be classified as another type. */
|
||||
};
|
||||
Q_ENUM(DelegateType);
|
||||
|
||||
@@ -234,23 +234,12 @@ void RoomListModel::handleNotifications()
|
||||
} else {
|
||||
avatar_image = room->avatar(128);
|
||||
}
|
||||
if (notification["event"]["type"].toString() == QStringLiteral("m.call.invite")) {
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
NotificationsManager::instance().postCallInviteNotification(
|
||||
dynamic_cast<NeoChatRoom *>(room),
|
||||
room->displayName(),
|
||||
sender->displayname(room),
|
||||
avatar_image,
|
||||
notification["event"]["content"]["offer"]["sdp"].toString().contains(QStringLiteral("video")));
|
||||
#endif
|
||||
} else {
|
||||
NotificationsManager::instance().postNotification(dynamic_cast<NeoChatRoom *>(room),
|
||||
sender->displayname(room),
|
||||
notification["event"].toObject()["content"].toObject()["body"].toString(),
|
||||
avatar_image,
|
||||
notification["event"].toObject()["event_id"].toString(),
|
||||
true);
|
||||
}
|
||||
NotificationsManager::instance().postNotification(dynamic_cast<NeoChatRoom *>(room),
|
||||
sender->displayname(room),
|
||||
notification["event"].toObject()["content"].toObject()["body"].toString(),
|
||||
avatar_image,
|
||||
notification["event"].toObject()["event_id"].toString(),
|
||||
true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -45,6 +45,7 @@ public:
|
||||
PowerLevelRole, /**< The user's power level in the current room. */
|
||||
PowerLevelStringRole, /**< The name of the user's power level in the current room. */
|
||||
};
|
||||
Q_ENUM(EventRoles)
|
||||
|
||||
UserListModel(QObject *parent = nullptr);
|
||||
|
||||
|
||||
@@ -54,12 +54,12 @@ QVariant AccountRegistry::data(const QModelIndex &index, int role) const
|
||||
const auto account = m_accounts[index.row()];
|
||||
|
||||
switch (role) {
|
||||
case ConnectionRole:
|
||||
return QVariant::fromValue(account);
|
||||
case UserIdRole:
|
||||
return QVariant::fromValue(account->userId());
|
||||
default:
|
||||
return {};
|
||||
case ConnectionRole:
|
||||
return QVariant::fromValue(account);
|
||||
case UserIdRole:
|
||||
return QVariant::fromValue(account->userId());
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
|
||||
return {};
|
||||
|
||||
@@ -147,23 +147,5 @@
|
||||
<default></default>
|
||||
</entry>
|
||||
</group>
|
||||
<group name="Voip">
|
||||
<entry name="Microphone" type="string">
|
||||
<label>Name of the microphone</label>
|
||||
</entry>
|
||||
<entry name="Camera" type="string">
|
||||
<label>Name of the camera</label>
|
||||
</entry>
|
||||
<entry name="CameraCaps" type="int">
|
||||
<label>Index of the camera caps</label>
|
||||
</entry>
|
||||
<entry name="ScreenShareFrameRate" type="int">
|
||||
<label>Frame rate of the screenshare</label>
|
||||
</entry>
|
||||
<entry name="Ringtone" type="String">
|
||||
<label>Ringtone</label>
|
||||
<default>/usr/share/sounds/plasma-mobile/stereo/ringtones/Spatial.oga</default>
|
||||
</entry>
|
||||
</group>
|
||||
</kcfg>
|
||||
|
||||
|
||||
@@ -42,9 +42,6 @@
|
||||
#endif
|
||||
#include <qt_connection_util.h>
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
#include "call/callmanager.h"
|
||||
#endif
|
||||
#include "controller.h"
|
||||
#include "events/joinrulesevent.h"
|
||||
#include "neochatconfig.h"
|
||||
@@ -125,13 +122,6 @@ NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinS
|
||||
Q_EMIT canEncryptRoomChanged();
|
||||
});
|
||||
connect(connection, &Connection::capabilitiesLoaded, this, &NeoChatRoom::maxRoomVersionChanged);
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
connect(this, &Room::callEvent, this, [=](Room *room, const RoomEvent *event) {
|
||||
CallManager::instance().handleCallEvent(static_cast<NeoChatRoom *>(room), event);
|
||||
});
|
||||
#endif
|
||||
|
||||
connect(this, &Room::changed, this, [this]() {
|
||||
Q_EMIT defaultUrlPreviewStateChanged();
|
||||
});
|
||||
@@ -1687,6 +1677,7 @@ void NeoChatRoom::setPushNotificationState(PushNotificationState::State state)
|
||||
|
||||
m_currentPushNotificationState = state;
|
||||
Q_EMIT pushNotificationStateChanged(m_currentPushNotificationState);
|
||||
|
||||
}
|
||||
|
||||
void NeoChatRoom::updatePushNotificationState(QString type)
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
#include <csapi/pushrules.h>
|
||||
#include <jobs/basejob.h>
|
||||
#include <user.h>
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
#include "call/callmanager.h"
|
||||
#endif
|
||||
|
||||
#include "controller.h"
|
||||
#include "neochatconfig.h"
|
||||
@@ -609,35 +606,3 @@ QVector<QVariant> NotificationsManager::toActions(PushNotificationAction::Action
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
#ifdef GSTREAMER_AVAILABLE
|
||||
void NotificationsManager::postCallInviteNotification(NeoChatRoom *room, const QString &roomName, const QString &sender, const QImage &icon, bool video)
|
||||
{
|
||||
QPixmap img;
|
||||
img.convertFromImage(icon);
|
||||
KNotification *notification = new KNotification("message");
|
||||
|
||||
if (sender == roomName) {
|
||||
notification->setTitle(sender);
|
||||
} else {
|
||||
notification->setTitle(i18n("%1 (%2)", sender, roomName));
|
||||
}
|
||||
|
||||
notification->setText(video ? i18n("%1 is inviting you to a video call", sender) : i18n("%1 is inviting you to a voice call", sender));
|
||||
notification->setPixmap(img);
|
||||
notification->setDefaultAction(i18n("Open NeoChat in this room"));
|
||||
connect(notification, &KNotification::defaultActivated, this, [=]() {
|
||||
RoomManager::instance().enterRoom(room);
|
||||
WindowController::instance().showAndRaiseWindow(notification->xdgActivationToken());
|
||||
});
|
||||
notification->setActions({i18n("Accept"), i18n("Decline")});
|
||||
connect(notification, &KNotification::action1Activated, this, [=]() {
|
||||
CallManager::instance().acceptCall();
|
||||
});
|
||||
connect(notification, &KNotification::action2Activated, this, [=]() {
|
||||
CallManager::instance().hangupCall();
|
||||
});
|
||||
notification->sendEvent();
|
||||
m_notifications.insert(room->id(), notification);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -156,7 +156,6 @@ public:
|
||||
* @brief Display a native notification for an invite.
|
||||
*/
|
||||
void postInviteNotification(NeoChatRoom *room, const QString &title, const QString &sender, const QImage &icon);
|
||||
void postCallInviteNotification(NeoChatRoom *room, const QString &roomName, const QString &sender, const QImage &icon, bool video);
|
||||
|
||||
/**
|
||||
* @brief Clear an existing invite notification for the given room.
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2022 Carson Black <uhhadd@gmail.com>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 2.7 as QQC2
|
||||
import QtQuick.Layouts 1.1
|
||||
import org.kde.kirigami 2.13 as Kirigami
|
||||
|
||||
QQC2.AbstractButton {
|
||||
id: control
|
||||
|
||||
property int temprament: CallPageButton.Neutral
|
||||
property bool shimmering: false
|
||||
|
||||
enum Temprament {
|
||||
Neutral,
|
||||
Constructive,
|
||||
Destructive
|
||||
}
|
||||
|
||||
padding: Kirigami.Units.largeSpacing
|
||||
contentItem: ColumnLayout {
|
||||
QQC2.Control {
|
||||
padding: Kirigami.Units.gridUnit
|
||||
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Button
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
contentItem: Kirigami.Icon {
|
||||
implicitHeight: Kirigami.Units.iconSizes.medium
|
||||
implicitWidth: Kirigami.Units.iconSizes.medium
|
||||
source: control.icon.name
|
||||
}
|
||||
background: Rectangle {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Button
|
||||
|
||||
ShimmerGradient {
|
||||
id: shimmerGradient
|
||||
color: {
|
||||
switch (control.temprament) {
|
||||
case CallPageButton.Neutral:
|
||||
return Kirigami.Theme.textColor
|
||||
case CallPageButton.Constructive:
|
||||
return Kirigami.Theme.positiveTextColor
|
||||
case CallPageButton.Destructive:
|
||||
return Kirigami.Theme.negativeTextColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
color: {
|
||||
if (control.checked) {
|
||||
return Kirigami.Theme.focusColor
|
||||
}
|
||||
|
||||
switch (control.temprament) {
|
||||
case CallPageButton.Neutral:
|
||||
return Kirigami.Theme.backgroundColor
|
||||
case CallPageButton.Constructive:
|
||||
return Kirigami.Theme.positiveBackgroundColor
|
||||
case CallPageButton.Destructive:
|
||||
return Kirigami.Theme.negativeBackgroundColor
|
||||
}
|
||||
}
|
||||
border.color: Kirigami.Theme.focusColor
|
||||
border.width: control.visualFocus ? 2 : 0
|
||||
radius: height/2
|
||||
|
||||
Rectangle {
|
||||
visible: control.shimmering
|
||||
anchors.fill: parent
|
||||
radius: height/2
|
||||
|
||||
gradient: control.shimmering ? shimmerGradient : null
|
||||
}
|
||||
}
|
||||
}
|
||||
QQC2.Label {
|
||||
text: control.text
|
||||
font: Kirigami.Theme.smallFont
|
||||
|
||||
horizontalAlignment: Qt.AlignHCenter
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2022 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15 as QQC2
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
import org.freedesktop.gstreamer.GLVideoItem 1.0
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Rectangle {
|
||||
id: videoStreamDelegate
|
||||
|
||||
implicitWidth: height / 9 * 16
|
||||
implicitHeight: 300
|
||||
color: "black"
|
||||
radius: 10
|
||||
|
||||
QQC2.Label {
|
||||
anchors.top: parent.top
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
color: "white"
|
||||
text: model.object.user.id
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
Loader {
|
||||
active: model.object.hasCamera
|
||||
Layout.maximumWidth: parent.width
|
||||
Layout.maximumHeight: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||
onActiveChanged: {
|
||||
if (active) {
|
||||
model.object.initCamera(camera)
|
||||
}
|
||||
}
|
||||
Component.onCompleted: if (active) model.object.initCamera(camera)
|
||||
GstGLVideoItem {
|
||||
id: camera
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
}
|
||||
}
|
||||
Loader {
|
||||
active: false
|
||||
Layout.maximumWidth: parent.width
|
||||
Layout.maximumHeight: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||
GstGLVideoItem {
|
||||
id: screenCast
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
Component.onCompleted: {
|
||||
model.object.initCamera(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
73
src/qml/Component/FullScreenMap.qml
Normal file
73
src/qml/Component/FullScreenMap.qml
Normal file
@@ -0,0 +1,73 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtLocation 5.15
|
||||
import QtPositioning 5.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
ApplicationWindow {
|
||||
id: root
|
||||
|
||||
property real latitude: NaN
|
||||
property real longitude: NaN
|
||||
property string asset
|
||||
property var author
|
||||
property QtObject liveLocationModel: null
|
||||
|
||||
flags: Qt.FramelessWindowHint | Qt.WA_TranslucentBackground
|
||||
visibility: Qt.WindowFullScreen
|
||||
|
||||
title: i18n("View Location")
|
||||
|
||||
Shortcut {
|
||||
sequence: "Escape"
|
||||
onActivated: root.destroy()
|
||||
}
|
||||
|
||||
color: Kirigami.Theme.backgroundColor
|
||||
|
||||
background: AbstractButton {
|
||||
onClicked: root.destroy()
|
||||
}
|
||||
|
||||
Map {
|
||||
id: map
|
||||
anchors.fill: parent
|
||||
center: root.liveLocationModel ? QtPositioning.coordinate(root.liveLocationModel.boundingBox.y, root.liveLocationModel.boundingBox.x)
|
||||
: QtPositioning.coordinate(root.latitude, root.longitude)
|
||||
zoomLevel: 15
|
||||
plugin: OsmLocationPlugin.plugin
|
||||
LocationMapItem {
|
||||
latitude: root.latitude
|
||||
longitude: root.longitude
|
||||
asset: root.asset
|
||||
author: root.author
|
||||
isLive: true
|
||||
visible: !isNaN(root.latitude) && !isNaN(root.longitude)
|
||||
}
|
||||
MapItemView {
|
||||
model: root.liveLocationModel
|
||||
delegate: LocationMapItem {}
|
||||
}
|
||||
onCopyrightLinkActivated: {
|
||||
Qt.openUrlExternally(link)
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
|
||||
text: i18n("Close")
|
||||
icon.name: "dialog-close"
|
||||
display: AbstractButton.IconOnly
|
||||
|
||||
width: Kirigami.Units.gridUnit * 2
|
||||
height: Kirigami.Units.gridUnit * 2
|
||||
|
||||
onClicked: root.destroy()
|
||||
}
|
||||
}
|
||||
58
src/qml/Component/LocationMapItem.qml
Normal file
58
src/qml/Component/LocationMapItem.qml
Normal file
@@ -0,0 +1,58 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtLocation 5.15
|
||||
import QtPositioning 5.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
/** Location marker for any of the shared location maps. */
|
||||
MapQuickItem {
|
||||
id: root
|
||||
required property real latitude
|
||||
required property real longitude
|
||||
|
||||
required property string asset
|
||||
required property var author
|
||||
|
||||
required property bool isLive
|
||||
|
||||
anchorPoint.x: sourceItem.width / 2
|
||||
anchorPoint.y: sourceItem.height
|
||||
coordinate: QtPositioning.coordinate(root.latitude, root.longitude)
|
||||
autoFadeIn: false
|
||||
sourceItem: Kirigami.Icon {
|
||||
width: height
|
||||
height: Kirigami.Units.iconSizes.huge
|
||||
source: "gps"
|
||||
isMask: true
|
||||
color: root.isLive ? Kirigami.Theme.highlightColor : Kirigami.Theme.disabledTextColor
|
||||
|
||||
Kirigami.Icon {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -parent.height / 8
|
||||
visible: root.asset === "m.pin"
|
||||
width: height
|
||||
height: parent.height / 3 + 1
|
||||
source: "pin"
|
||||
isMask: true
|
||||
color: parent.color
|
||||
}
|
||||
Kirigami.Avatar {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -parent.height / 8
|
||||
visible: root.asset === "m.self"
|
||||
width: height
|
||||
height: parent.height / 3 + 1
|
||||
name: root.author.displayName
|
||||
source: root.author.avatarSource
|
||||
color: root.author.color
|
||||
}
|
||||
}
|
||||
}
|
||||
56
src/qml/Component/LocationPage.qml
Normal file
56
src/qml/Component/LocationPage.qml
Normal file
@@ -0,0 +1,56 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15 as QQC2
|
||||
import QtLocation 5.15
|
||||
import QtPositioning 5.15
|
||||
|
||||
import org.kde.kirigami 2.20 as Kirigami
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Kirigami.Page {
|
||||
id: locationsPage
|
||||
|
||||
required property var room
|
||||
|
||||
title: i18nc("Locations on a map", "Locations")
|
||||
|
||||
padding: 0
|
||||
|
||||
Map {
|
||||
id: map
|
||||
anchors.fill: parent
|
||||
plugin: OsmLocationPlugin.plugin
|
||||
|
||||
center: {
|
||||
let c = LocationHelper.center(LocationHelper.unite(locationsModel.boundingBox, liveLocationsModel.boundingBox));
|
||||
return QtPositioning.coordinate(c.y, c.x);
|
||||
}
|
||||
zoomLevel: LocationHelper.zoomToFit(LocationHelper.unite(locationsModel.boundingBox, liveLocationsModel.boundingBox), map.width, map.height)
|
||||
|
||||
MapItemView {
|
||||
model: LocationsModel {
|
||||
id: locationsModel
|
||||
room: locationsPage.room
|
||||
}
|
||||
delegate: LocationMapItem {
|
||||
isLive: true
|
||||
}
|
||||
}
|
||||
|
||||
MapItemView {
|
||||
model: LiveLocationsModel {
|
||||
id: liveLocationsModel
|
||||
room: locationsPage.room
|
||||
}
|
||||
delegate: LocationMapItem {}
|
||||
}
|
||||
|
||||
Kirigami.PlaceholderMessage {
|
||||
text: i18n("There are no locations shared in this room.")
|
||||
visible: map.mapItems.length === 0
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2022 Carson Black <uhhadd@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15 as QQC2
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
TimelineContainer {
|
||||
id: root
|
||||
|
||||
width: ListView.view.width
|
||||
|
||||
innerObject: QQC2.Control {
|
||||
Layout.leftMargin: Config.showAvatarInTimeline ? Kirigami.Units.largeSpacing : 0
|
||||
padding: Kirigami.Units.gridUnit*2
|
||||
|
||||
contentItem: QQC2.Label {
|
||||
text: root.author.isLocalUser ? i18n("Outgoing Call") : i18n("Incoming Call")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,18 +11,15 @@ import org.kde.kirigami 2.15 as Kirigami
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
DelegateChooser {
|
||||
id: root
|
||||
role: "delegateType"
|
||||
property var room
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MessageEventModel.State
|
||||
delegate: StateDelegate {}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MessageEventModel.CallInvite
|
||||
delegate: CallInviteDelegate {}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MessageEventModel.Emote
|
||||
delegate: MessageDelegate {}
|
||||
@@ -82,6 +79,12 @@ DelegateChooser {
|
||||
roleValue: MessageEventModel.Location
|
||||
delegate: LocationDelegate {}
|
||||
}
|
||||
DelegateChoice {
|
||||
roleValue: MessageEventModel.LiveLocation
|
||||
delegate: LiveLocationDelegate {
|
||||
room: root.room
|
||||
}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MessageEventModel.Other
|
||||
|
||||
66
src/qml/Component/Timeline/LiveLocationDelegate.qml
Normal file
66
src/qml/Component/Timeline/LiveLocationDelegate.qml
Normal file
@@ -0,0 +1,66 @@
|
||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtLocation 5.15
|
||||
import QtPositioning 5.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
/**
|
||||
* @brief A timeline delegate for a location message.
|
||||
*
|
||||
* @inherit TimelineContainer
|
||||
*/
|
||||
TimelineContainer {
|
||||
id: root
|
||||
|
||||
property alias room: liveLocationModel.room
|
||||
|
||||
ColumnLayout {
|
||||
Layout.maximumWidth: root.contentMaxWidth
|
||||
Layout.preferredWidth: root.contentMaxWidth
|
||||
LiveLocationsModel {
|
||||
id: liveLocationModel
|
||||
eventId: root.eventId
|
||||
}
|
||||
Map {
|
||||
id: map
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: root.contentMaxWidth / 16 * 9
|
||||
|
||||
center: QtPositioning.coordinate(liveLocationModel.boundingBox.y, liveLocationModel.boundingBox.x)
|
||||
zoomLevel: 15
|
||||
|
||||
plugin: OsmLocationPlugin.plugin
|
||||
onCopyrightLinkActivated: Qt.openUrlExternally(link)
|
||||
|
||||
MapItemView {
|
||||
model: liveLocationModel
|
||||
delegate: LocationMapItem {}
|
||||
}
|
||||
|
||||
TapHandler {
|
||||
acceptedButtons: Qt.LeftButton
|
||||
onTapped: {
|
||||
let map = fullScreenMap.createObject(parent, {liveLocationModel: liveLocationModel});
|
||||
map.open()
|
||||
}
|
||||
onLongPressed: openMessageContext("")
|
||||
}
|
||||
TapHandler {
|
||||
acceptedButtons: Qt.RightButton
|
||||
onTapped: openMessageContext("")
|
||||
}
|
||||
}
|
||||
Component {
|
||||
id: fullScreenMap
|
||||
FullScreenMap {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,47 +51,20 @@ TimelineContainer {
|
||||
plugin: OsmLocationPlugin.plugin
|
||||
onCopyrightLinkActivated: Qt.openUrlExternally(link)
|
||||
|
||||
|
||||
MapQuickItem {
|
||||
id: point
|
||||
|
||||
anchorPoint.x: sourceItem.width / 2
|
||||
anchorPoint.y: sourceItem.height
|
||||
coordinate: QtPositioning.coordinate(root.latitude, root.longitude)
|
||||
autoFadeIn: false
|
||||
|
||||
sourceItem: Kirigami.Icon {
|
||||
width: height
|
||||
height: Kirigami.Units.iconSizes.huge
|
||||
source: "gps"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.highlightColor
|
||||
|
||||
Kirigami.Icon {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -parent.height / 8
|
||||
visible: root.asset === "m.pin"
|
||||
width: height
|
||||
height: parent.height / 3 + 1
|
||||
source: "pin"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.highlightColor
|
||||
}
|
||||
Kirigami.Avatar {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -parent.height / 8
|
||||
visible: root.asset === "m.self"
|
||||
width: height
|
||||
height: parent.height / 3 + 1
|
||||
name: root.author.displayName
|
||||
source: root.author.avatarSource
|
||||
color: root.author.color
|
||||
}
|
||||
}
|
||||
LocationMapItem {
|
||||
latitude: root.latitude
|
||||
longitude: root.longitude
|
||||
asset: root.asset
|
||||
author: root.author
|
||||
isLive: true
|
||||
}
|
||||
|
||||
TapHandler {
|
||||
acceptedButtons: Qt.LeftButton
|
||||
onTapped: {
|
||||
let map = fullScreenMap.createObject(parent, {latitude: root.latitude, longitude: root.longitude, asset: root.asset, author: root.author});
|
||||
map.open()
|
||||
}
|
||||
onLongPressed: openMessageContext("")
|
||||
}
|
||||
TapHandler {
|
||||
@@ -99,5 +72,9 @@ TimelineContainer {
|
||||
onTapped: openMessageContext("")
|
||||
}
|
||||
}
|
||||
Component {
|
||||
id: fullScreenMap
|
||||
FullScreenMap { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,6 +173,7 @@ QQC2.ScrollView {
|
||||
}
|
||||
|
||||
delegate: EventDelegate {
|
||||
room: root.currentRoom
|
||||
}
|
||||
|
||||
QQC2.RoundButton {
|
||||
|
||||
@@ -7,6 +7,8 @@ import QtQuick.Controls 2.15 as QQC2
|
||||
import QtQuick.Layouts 1.15
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
QQC2.Dialog {
|
||||
id: confirmEncryptionDialog
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ import QtQuick.Layouts 1.15
|
||||
|
||||
import org.kde.kirigami 2.20 as Kirigami
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Kirigami.Page {
|
||||
id: deleteSheet
|
||||
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
/* SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12 as QQC2
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import org.kde.kirigami 2.14 as Kirigami
|
||||
|
||||
import QtGraphicalEffects 1.15
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Kirigami.Page {
|
||||
id: page
|
||||
|
||||
title: CallManager.hasInvite ? i18n("Incoming Call")
|
||||
: CallManager.isInviting ? i18n("Calling")
|
||||
: CallManager.state == CallSession.Initiating ? i18n("Configuring Call")
|
||||
: i18n("Call")
|
||||
|
||||
ColumnLayout {
|
||||
id: column
|
||||
anchors.fill: parent
|
||||
|
||||
RowLayout {
|
||||
id: streams
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Repeater {
|
||||
id: videos
|
||||
model: CallManager.callParticipants
|
||||
delegate: VideoStreamDelegate {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Kirigami.Avatar {
|
||||
visible: videos.count === 0
|
||||
Layout.preferredWidth: Kirigami.Units.iconSizes.huge
|
||||
Layout.preferredHeight: Kirigami.Units.iconSizes.huge
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
name: CallManager.room.displayName
|
||||
source: "image://mxc/" + CallManager.room.avatarMediaId
|
||||
}
|
||||
|
||||
//QQC2.Label {
|
||||
//text: CallManager.remoteUser.displayName
|
||||
|
||||
//horizontalAlignment: Text.AlignHCenter
|
||||
//Layout.fillWidth: true
|
||||
//}
|
||||
|
||||
//QQC2.Label {
|
||||
//text: CallManager.room.displayName
|
||||
|
||||
//horizontalAlignment: Text.AlignHCenter
|
||||
//Layout.fillWidth: true
|
||||
//}
|
||||
|
||||
RowLayout {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
id: buttonRow
|
||||
spacing: Kirigami.Units.gridUnit
|
||||
|
||||
CallPageButton {
|
||||
text: i18n("Accept")
|
||||
icon.name: "call-start"
|
||||
shimmering: true
|
||||
temprament: CallPageButton.Constructive
|
||||
visible: CallManager.globalState === CallManager.INCOMING
|
||||
|
||||
onClicked: {
|
||||
visible = false; //TODO declarify
|
||||
CallManager.acceptCall()
|
||||
}
|
||||
}
|
||||
CallPageButton {
|
||||
text: checked ? i18n("Disable Camera") : i18n("Enable Camera")
|
||||
icon.name: checked ? "camera-on" : "camera-off"
|
||||
checkable: true
|
||||
onToggled: CallManager.toggleCamera()
|
||||
}
|
||||
CallPageButton {
|
||||
text: checked ? i18n("Unmute Speaker") : i18n("Mute Speaker")
|
||||
icon.name: checked ? "audio-volume-muted" : "audio-speakers-symbolic"
|
||||
checkable: true
|
||||
}
|
||||
CallPageButton {
|
||||
text: checked ? i18n("Unmute Microphone") : i18n("Mute Microphone")
|
||||
icon.name: checked ? "microphone-sensitivity-muted" : "microphone-sensitivity-high"
|
||||
checkable: true
|
||||
checked: CallManager.muted
|
||||
|
||||
onToggled: CallManager.muted = !CallManager.muted
|
||||
}
|
||||
CallPageButton {
|
||||
text: i18n("Configure Devices")
|
||||
icon.name: "settings-configure"
|
||||
onClicked: callConfigurationSheet.open()
|
||||
}
|
||||
CallPageButton {
|
||||
id: denyButton
|
||||
visible: CallManager.globalState === CallManager.INCOMING
|
||||
text: i18n("Deny")
|
||||
icon.name: "call-stop"
|
||||
shimmering: true
|
||||
temprament: CallPageButton.Destructive
|
||||
|
||||
onClicked: CallManager.hangupCall()
|
||||
}
|
||||
CallPageButton {
|
||||
visible: !denyButton.visible
|
||||
text: CallManager.isInviting ? i18n("Cancel") : i18n("Hang Up")
|
||||
icon.name: "call-stop"
|
||||
shimmering: CallManager.isInviting
|
||||
temprament: CallPageButton.Destructive
|
||||
|
||||
onClicked: CallManager.hangupCall()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: CallManager
|
||||
function onCallEnded() {
|
||||
page.closeDialog()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
QQC2.ToolBar {
|
||||
RowLayout {
|
||||
id: root
|
||||
|
||||
property var desiredWidth
|
||||
@@ -45,40 +45,37 @@ QQC2.ToolBar {
|
||||
}
|
||||
}
|
||||
|
||||
padding: 0
|
||||
Kirigami.SearchField {
|
||||
Layout.topMargin: Kirigami.Units.smallSpacing
|
||||
Layout.bottomMargin: Kirigami.Units.smallSpacing
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: root.desiredWidth ? root.desiredWidth - menuButton.width - root.spacing : -1
|
||||
visible: !root.collapsed
|
||||
onTextChanged: sortFilterRoomListModel.filterText = text
|
||||
KeyNavigation.tab: listView
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: row
|
||||
Kirigami.SearchField {
|
||||
Layout.topMargin: Kirigami.Units.smallSpacing
|
||||
Layout.bottomMargin: Kirigami.Units.smallSpacing
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: root.desiredWidth ? root.desiredWidth - menuButton.width - row.spacing : -1
|
||||
visible: !root.collapsed
|
||||
onTextChanged: sortFilterRoomListModel.filterText = text
|
||||
KeyNavigation.tab: listView
|
||||
}
|
||||
QQC2.ToolButton {
|
||||
id: menuButton
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
checkable: true
|
||||
action: Kirigami.Action {
|
||||
text: i18n("Create rooms and chats")
|
||||
icon.name: "irc-join-channel"
|
||||
onTriggered: {
|
||||
if (Kirigami.isMobile) {
|
||||
let menu = mobileMenu.createObject();
|
||||
menu.open();
|
||||
} else {
|
||||
let menu = desktopMenu.createObject(menuButton, {y: menuButton.height});
|
||||
menu.closed.connect(menuButton.toggle)
|
||||
menu.open();
|
||||
}
|
||||
QQC2.ToolButton {
|
||||
id: menuButton
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
checkable: true
|
||||
action: Kirigami.Action {
|
||||
text: i18n("Create rooms and chats")
|
||||
icon.name: "irc-join-channel"
|
||||
onTriggered: {
|
||||
if (Kirigami.isMobile) {
|
||||
let menu = mobileMenu.createObject();
|
||||
menu.open();
|
||||
} else {
|
||||
let menu = desktopMenu.createObject(menuButton, {y: menuButton.height});
|
||||
menu.closed.connect(menuButton.toggle)
|
||||
menu.open();
|
||||
}
|
||||
}
|
||||
QQC2.ToolTip {
|
||||
text: parent.text
|
||||
}
|
||||
}
|
||||
|
||||
QQC2.ToolTip {
|
||||
text: parent.text
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,16 +52,6 @@ Kirigami.Page {
|
||||
}
|
||||
}
|
||||
|
||||
actions.main: Kirigami.Action {
|
||||
text: i18n("Call")
|
||||
icon.name: "call-start"
|
||||
visible: Controller.callsSupported && root.currentRoom.joinedCount === 2
|
||||
onTriggered: {
|
||||
CallManager.startCall(root.currentRoom, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loader {
|
||||
id: timelineViewLoader
|
||||
anchors.fill: parent
|
||||
|
||||
@@ -143,6 +143,18 @@ Kirigami.OverlayDrawer {
|
||||
})
|
||||
}
|
||||
}
|
||||
Kirigami.BasicListItem {
|
||||
id: locationsButton
|
||||
|
||||
icon: "map-flat"
|
||||
text: i18n("Show locations for this room")
|
||||
|
||||
onClicked: pageStack.pushDialogLayer("qrc:/LocationsPage.qml", {
|
||||
room: room
|
||||
}, {
|
||||
title: i18nc("Locations on a map", "Locations")
|
||||
})
|
||||
}
|
||||
Kirigami.BasicListItem {
|
||||
id: favouriteButton
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ import QtQuick 2.15
|
||||
import org.kde.kirigami 2.18 as Kirigami
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Kirigami.CategorizedSettings {
|
||||
id: root
|
||||
property NeoChatRoom room
|
||||
|
||||
@@ -44,7 +44,7 @@ Kirigami.ScrollablePage {
|
||||
sortRole: "powerLevel"
|
||||
sortOrder: Qt.DescendingOrder
|
||||
filterRowCallback: function(source_row, source_parent) {
|
||||
let powerLevelRole = sourceModel.data(sourceModel.index(source_row, 0, source_parent), Qt.UserRole + 5)
|
||||
let powerLevelRole = sourceModel.data(sourceModel.index(source_row, 0, source_parent), UserListModel.PowerLevelRole)
|
||||
return powerLevelRole > 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15 as QQC2
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
|
||||
|
||||
import org.kde.neochat 1.0
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
title: i18nc("@title:window", "Calls")
|
||||
|
||||
leftPadding: 0
|
||||
rightPadding: 0
|
||||
ColumnLayout {
|
||||
MobileForm.FormCard {
|
||||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||||
Layout.fillWidth: true
|
||||
contentItem: ColumnLayout {
|
||||
spacing: 0
|
||||
MobileForm.FormCardHeader {
|
||||
title: i18n("Incoming Calls")
|
||||
}
|
||||
MobileForm.FormCheckDelegate {
|
||||
text: i18n("Ring")
|
||||
checked: Config.ring // TODO
|
||||
enabled: !Config.isRingImmutable //TODO
|
||||
onToggled: {
|
||||
Config.ring = checked
|
||||
Config.sync()
|
||||
}
|
||||
}
|
||||
MobileForm.FormTextFieldDelegate {
|
||||
label: i18n("Ringtone")
|
||||
text: Config.ringtone
|
||||
enabled: true //TODO
|
||||
onEditingFinished: {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
//TODO file chooser
|
||||
}
|
||||
}
|
||||
|
||||
MobileForm.FormCard {
|
||||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||||
Layout.fillWidth: true
|
||||
contentItem: ColumnLayout {
|
||||
spacing: 0
|
||||
MobileForm.FormCardHeader {
|
||||
title: i18n("Default Devices")
|
||||
}
|
||||
|
||||
MobileForm.FormComboBoxDelegate {
|
||||
text: i18n("Microphone")
|
||||
description: i18n("This microphone will be used by default during calls. You can also switch the microphone during calls.")
|
||||
model: AudioSources
|
||||
enabled: true //TODO
|
||||
onCurrentIndexChanged: {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
MobileForm.FormComboBoxDelegate {
|
||||
text: i18n("Camera")
|
||||
description: i18n("This camera will be used by default during calls. You can also switch the camera during calls.")
|
||||
model: VideoSources
|
||||
enabled: true // TODO
|
||||
onCurrentIndexChanged: {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user