Compare commits
13 Commits
v25.04.0
...
work/tobia
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
565fe1975b | ||
|
|
635b77d03e | ||
|
|
4d7b788160 | ||
|
|
9e24c855b6 | ||
|
|
18bea02fa0 | ||
|
|
073e756364 | ||
|
|
f153e57fdb | ||
|
|
bac93e778e | ||
|
|
2aeed10429 | ||
|
|
ea6ad902a7 | ||
|
|
f9c53ee3b0 | ||
|
|
3f0843647c | ||
|
|
a50df870e7 |
@@ -22,7 +22,20 @@
|
||||
"--talk-name=org.freedesktop.secrets",
|
||||
"--own-name=org.kde.StatusNotifierItem-2-2"
|
||||
],
|
||||
"sdk-extensions": [
|
||||
"org.freedesktop.Sdk.Extension.rust-stable"
|
||||
],
|
||||
"build-options": {
|
||||
"append-path": "/usr/lib/sdk/rust-stable/bin",
|
||||
"env": {
|
||||
"RUST_BACKTRACE": "1",
|
||||
"CARGO_NET_OFFLINE": "true",
|
||||
"RUSTFLAGS": "--remap-path-prefix =../"
|
||||
}
|
||||
},
|
||||
|
||||
"modules": [
|
||||
"flatpak/corrosion.json",
|
||||
{
|
||||
"name": "kirigamiaddons",
|
||||
"config-opts": [
|
||||
@@ -50,25 +63,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "olm",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": [
|
||||
"-DOLM_TESTS=OFF"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://gitlab.matrix.org/matrix-org/olm.git",
|
||||
"tag": "3.2.16",
|
||||
"x-checker-data": {
|
||||
"type": "git",
|
||||
"tag-pattern": "^([\\d.]+)$"
|
||||
},
|
||||
"commit": "7e0c8277032e40308987257b711b38af8d77cc69"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libsecret",
|
||||
"buildsystem": "meson",
|
||||
@@ -117,20 +111,15 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libQuotient",
|
||||
"name": "integral",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
"flatpak/generated-sources.json",
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/quotient-im/libQuotient.git",
|
||||
"branch": "dev",
|
||||
"disable-submodules": true
|
||||
"url": "https://invent.kde.org/tfella/integral.git",
|
||||
"branch": "master"
|
||||
}
|
||||
],
|
||||
"config-opts": [
|
||||
"-DBUILD_WITH_QT6=ON",
|
||||
"-DQuotient_ENABLE_E2EE=ON",
|
||||
"-DBUILD_TESTING=OFF"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -8,14 +8,14 @@ include:
|
||||
- /gitlab-templates/json-validation.yml
|
||||
- /gitlab-templates/xml-lint.yml
|
||||
- /gitlab-templates/yaml-lint.yml
|
||||
- /gitlab-templates/android-qt6.yml
|
||||
- /gitlab-templates/linux-qt6.yml
|
||||
- /gitlab-templates/linux-qt6-next.yml
|
||||
- /gitlab-templates/windows-qt6.yml
|
||||
# - /gitlab-templates/android-qt6.yml
|
||||
# - /gitlab-templates/linux-qt6.yml
|
||||
# - /gitlab-templates/linux-qt6-next.yml
|
||||
# - /gitlab-templates/windows-qt6.yml
|
||||
# - /gitlab-templates/freebsd-qt6.yml
|
||||
- /gitlab-templates/flatpak.yml
|
||||
- /gitlab-templates/snap-snapcraft-lxd.yml
|
||||
- /gitlab-templates/craft-android-qt6-apks.yml
|
||||
- /gitlab-templates/craft-appimage-qt6.yml
|
||||
- /gitlab-templates/craft-windows-x86-64-qt6.yml
|
||||
- /gitlab-templates/craft-windows-appx-qt6.yml
|
||||
# - /gitlab-templates/snap-snapcraft-lxd.yml
|
||||
# - /gitlab-templates/craft-android-qt6-apks.yml
|
||||
# - /gitlab-templates/craft-appimage-qt6.yml
|
||||
# - /gitlab-templates/craft-windows-x86-64-qt6.yml
|
||||
# - /gitlab-templates/craft-windows-appx-qt6.yml
|
||||
|
||||
@@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# KDE Applications version, managed by release script.
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "25")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "03")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "07")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
@@ -49,8 +49,6 @@ if(NEOCHAT_FLATPAK)
|
||||
include(cmake/Flatpak.cmake)
|
||||
endif()
|
||||
|
||||
set(QUOTIENT_FORCE_NAMESPACED_INCLUDES TRUE)
|
||||
|
||||
ecm_setup_version(${PROJECT_VERSION}
|
||||
VARIABLE_PREFIX NEOCHAT
|
||||
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/neochat-version.h
|
||||
@@ -107,13 +105,7 @@ if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU)
|
||||
find_package(KF6DBusAddons ${KF_MIN_VERSION} REQUIRED)
|
||||
endif()
|
||||
|
||||
find_package(QuotientQt6 0.9)
|
||||
set_package_properties(QuotientQt6 PROPERTIES
|
||||
TYPE REQUIRED
|
||||
DESCRIPTION "Qt wrapper around Matrix API"
|
||||
URL "https://github.com/quotient-im/libQuotient/"
|
||||
PURPOSE "Talk with matrix server"
|
||||
)
|
||||
find_package(Integral 0.1 REQUIRED)
|
||||
|
||||
find_package(cmark)
|
||||
set_package_properties(cmark PROPERTIES
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include "models/messagecontentmodel.h"
|
||||
|
||||
#include "neochatconnection.h"
|
||||
#include "testutils.h"
|
||||
|
||||
using namespace Quotient;
|
||||
@@ -32,7 +33,7 @@ private Q_SLOTS:
|
||||
|
||||
void MessageContentModelTest::initTestCase()
|
||||
{
|
||||
connection = Connection::makeMockConnection(u"@bob:kde.org"_s);
|
||||
connection = new NeoChatConnection;
|
||||
}
|
||||
|
||||
void MessageContentModelTest::missingEvent()
|
||||
|
||||
30
flatpak/corrosion.json
Normal file
30
flatpak/corrosion.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"build-options": {
|
||||
"env": {
|
||||
"CARGO_HOME": "/run/build/corrosion/cargo"
|
||||
}
|
||||
},
|
||||
"buildsystem": "cmake-ninja",
|
||||
"cleanup": [
|
||||
"/app"
|
||||
],
|
||||
"config-opts": [
|
||||
"-DCORROSION_INSTALL_EXECUTABLE=OFF",
|
||||
"-DCORROSION_BUILD_TESTS=OFF",
|
||||
"-DCORROSION_DEV_MODE=OFF"
|
||||
],
|
||||
"name": "corrosion",
|
||||
"sources": [
|
||||
{
|
||||
"sha256": "843334a9f0f5efbc225dccfa88031fe0f2ec6fd787ca1e7d55ed27b2c25d9c97",
|
||||
"type": "archive",
|
||||
"url": "https://github.com/corrosion-rs/corrosion/archive/refs/tags/v0.5.1.tar.gz",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 242799,
|
||||
"stable-only": true,
|
||||
"url-template": "https://github.com/corrosion-rs/corrosion/archive/refs/tags/v0.5.1.tar.gz"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
2
flatpak/corrosion.json.license
Normal file
2
flatpak/corrosion.json.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: Jonah Brüchert <jbb@kaidan.im>
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
0
flatpak/corrosion.license
Normal file
0
flatpak/corrosion.license
Normal file
5247
flatpak/generated-sources.json
Normal file
5247
flatpak/generated-sources.json
Normal file
File diff suppressed because it is too large
Load Diff
2
flatpak/generated-sources.json.license
Normal file
2
flatpak/generated-sources.json.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: None
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
16
flatpak/regenerate-sources.sh
Executable file
16
flatpak/regenerate-sources.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-FileCopyrightText: Jonah Brüchert <jbb@kaidan.im>
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
set -e
|
||||
|
||||
export GIT_CLONE_ARGS="--depth 1 --single-branch"
|
||||
export FLATPAK_DIR="$(readlink -f $(dirname $0))"
|
||||
cd ${FLATPAK_DIR}
|
||||
|
||||
if [ ! -d flatpak-builder-tools ]; then
|
||||
git clone ${GIT_CLONE_ARGS} https://github.com/flatpak/flatpak-builder-tools
|
||||
else
|
||||
git -C flatpak-builder-tools pull
|
||||
fi
|
||||
|
||||
./flatpak-builder-tools/cargo/flatpak-cargo-generator.py -o generated-sources.json ../../integral/src/sdk/Cargo.lock
|
||||
118
po/ar/neochat.po
118
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: 2025-03-07 00:42+0000\n"
|
||||
"PO-Revision-Date: 2025-03-02 10:41+0400\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-08 21:40+0400\n"
|
||||
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
|
||||
"Language-Team: ar\n"
|
||||
"Language: ar\n"
|
||||
@@ -1040,7 +1040,7 @@ msgstr "التسجيل معطل على هذا الخادم."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "يحمّل"
|
||||
@@ -1070,7 +1070,7 @@ msgid "Loading…"
|
||||
msgstr "يحمّل..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1700,7 +1700,7 @@ msgstr "صورك التعبيرية"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "يحمّل الرد"
|
||||
@@ -1966,7 +1966,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 دعاك"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1974,18 +1974,18 @@ msgid ""
|
||||
msgstr ""
|
||||
"الملف كبير للغاية بحيث لا يمكن تحميله.<br />راسل مدير خادوم ماتركس للدعم."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "لم يُضبط خادوم هوية بعد"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "فشل إنشاء غرفة: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "فشل إنشاء فضاء: %1"
|
||||
@@ -2125,13 +2125,13 @@ msgstr "تَثَبّت من هذا الجهاز"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
msgstr "أُرسل طلب التحقق"
|
||||
|
||||
#: src/qml/AccountMenu.qml:94
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
msgstr "للمتابعة، اقبل طلب التحقق على جهاز آخر."
|
||||
|
||||
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
|
||||
#, kde-format
|
||||
@@ -5849,86 +5849,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "حدد المعامل لإضافته"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "أخفِ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "شارك"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "أزِل"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "أكمل"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "ألغِ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "رمز البلد لرقم الهاتف الجديد"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "عنوان بريد إلكتروني جديد:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "رقم الهاتف الجديد:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "لقد أرسلنا لك رسالة بالبريد الإلكتروني"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "لقد أرسلنا لك رسالة نصية"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أدناه"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "البريد الإلكتروني الذي أدخلته غير صالح"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "رقم الهاتف الذي أدخلته غير صالح"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "أدخلت كلمة سر خاطئة"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5937,7 +5937,7 @@ msgstr ""
|
||||
"لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع "
|
||||
"التعليمات هناك ثم انقر فوق الزر أدناه"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5946,25 +5946,25 @@ msgstr ""
|
||||
"لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات "
|
||||
"هناك ثم انقر فوق الزر أدناه"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "أضف"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "عُد"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. يرجى اتباع التعليمات هناك ثم انقر فوق الزر أعلاه"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5973,7 +5973,7 @@ msgstr ""
|
||||
"لم يتحقق من البريد الإلكتروني. الرجاء الذهاب إلى البريد الإلكتروني واتباع "
|
||||
"التعليمات هناك ثم انقر فوق الزر أعلاه"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5982,55 +5982,55 @@ msgstr ""
|
||||
"لم يتحقق من رقم الهاتف. الرجاء الذهاب إلى الرسالة النصية واتباع التعليمات "
|
||||
"هناك ثم انقر فوق الزر أعلاه"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "بدأ %1 عملية تَثَبّت لمستخدم"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "أكد التحرير"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "أرسل رسالة في الموضوع"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "انسخ إلى الحافظة"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "كبّر"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "هذه الرسالة مشفرة ولم يشارك المرسل المفتاح مع هذا الجهاز."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "اجلب أحداث أكثر"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "نزّل"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6038,13 +6038,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "افتح الملف"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6073,47 +6073,47 @@ msgstr "وقت تسجيل الوصول: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "وقت تسجيل الخروج: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "أظهر الصورة"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "أرسل إلى كِيدِي Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "أزل المعاينة"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "صغر المعاينة"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "وسع المعاينة"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "يحمل معاينة الرابط"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "افتحه خارجيا"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6124,13 +6124,13 @@ msgstr[3] "بالاعتماد على أصوات %1 مستخدمين"
|
||||
msgstr[4] "بالاعتماد على أصوات %1 مستخدماً"
|
||||
msgstr[5] "بالاعتماد على أصوات %1 مستخدم"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(انتهى)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6142,7 +6142,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "آخر قراءة: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6161,24 +6161,24 @@ msgstr "هذه هي بداية الدردشة. ولا توجد رسائل قدي
|
||||
msgid "Pl. %1"
|
||||
msgstr "المنصة %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "فيديو"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "أظهر الفيديو"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "الصوت"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "كبّر"
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
|
||||
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
||||
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
||||
@@ -1027,7 +1027,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
@@ -1057,7 +1057,7 @@ msgid "Loading…"
|
||||
msgstr ""
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1687,7 +1687,7 @@ msgstr ""
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr ""
|
||||
@@ -1939,25 +1939,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
@@ -5780,180 +5780,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5961,13 +5961,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -5996,60 +5996,60 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6061,7 +6061,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6080,24 +6080,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/az/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2022-07-22 12:13+0400\n"
|
||||
"Last-Translator: Kheyyam <xxmn77@gmail.com>\n"
|
||||
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1140,7 +1140,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1173,7 +1173,7 @@ msgid "Loading…"
|
||||
msgstr "Yüklənir..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1897,7 +1897,7 @@ msgstr "Xüsusi Emoji"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2211,26 +2211,26 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1,sizi otağa dəvət etdi"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Otaq yaradıla bilmədi: \"%1\""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6441,47 +6441,47 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Paylaşmaq"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Silmək"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Yığcam"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "İmtina"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "their refers to a singular user"
|
||||
#| msgid "cleared their display name"
|
||||
@@ -6489,68 +6489,68 @@ msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "onların görünən adı silindi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Üzvlər"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a message…"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "İsmarıcı göndərin..."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Səhv şifrə daxil edildi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Əlavə etmək"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6558,80 +6558,80 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Geriyə"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew %1's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 dəvəti geri çəkildi"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Təsdiq etmək"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No rooms found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Otaqlar tapılmadı"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:inmenu"
|
||||
#| msgid "Copy address to clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Ünvanı mübadilə yaddaşına kopyalayın"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "Bu ismarıc şifrələnib və göndərən açarı bu cihaz ilə paylaşmadı."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Endirmək"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6639,13 +6639,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Faylı Açın"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6674,63 +6674,63 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "cleared the room name"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "otağın adını silmək"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Cihazı silmək"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Xaricdə açmaq"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6743,7 +6743,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Sonuncu oxuma: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6763,25 +6763,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/ca/neochat.po
112
po/ca/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 09:03+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
@@ -1043,7 +1043,7 @@ msgstr "El registre està desactivat en aquest servidor."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "S'està carregant"
|
||||
@@ -1075,7 +1075,7 @@ msgid "Loading…"
|
||||
msgstr "S'està carregant…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1707,7 +1707,7 @@ msgstr "Emojis propis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "S'està carregant la resposta"
|
||||
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 us ha convidat"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1976,18 +1976,18 @@ msgstr ""
|
||||
"El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del "
|
||||
"servidor Matrix per a ajuda."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No s'ha configurat cap servidor d'identitats"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Ha fallat la creació de la sala: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Ha fallat la creació de l'espai: %1"
|
||||
@@ -5909,86 +5909,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Selecció del paràmetre a afegir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Oculta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Comparteix"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Elimina"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completa"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Codi de país del número nou de telèfon"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Adreça de correu electrònic nova:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Número de telèfon nou:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Us hem enviat un correu electrònic"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Us hem enviat un missatge de text"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de sota"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "El correu electrònic que heu introduït no és vàlid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "El número de telèfon que heu introduït no és vàlid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "S'ha introduït una contrasenya incorrecta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5997,7 +5997,7 @@ msgstr ""
|
||||
"El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu "
|
||||
"les seves instruccions i després feu clic al botó de sota"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6006,25 +6006,25 @@ msgstr ""
|
||||
"El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu "
|
||||
"les seves instruccions i després feu clic al botó de sota"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Afegeix"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Enrere"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Seguiu les seves instruccions i després feu clic al botó de dalt"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6033,7 +6033,7 @@ msgstr ""
|
||||
"El correu electrònic no s'ha verificat. Aneu al correu electrònic i seguiu "
|
||||
"les seves instruccions i després feu clic al botó de dalt"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6042,35 +6042,35 @@ msgstr ""
|
||||
"El número de telèfon no s'ha verificat. Aneu al missatge de text i seguiu "
|
||||
"les seves instruccions i després feu clic al botó de dalt"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ha començat una verificació d'usuari"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirma l'edició"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publica un missatge en el fil"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia al porta-retalls"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6079,20 +6079,20 @@ msgstr ""
|
||||
"Aquest missatge està encriptat i el remitent no ha compartit la clau amb "
|
||||
"aquest dispositiu."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Recupera més esdeveniments"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Baixa"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6100,13 +6100,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Obre el fitxer"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6135,60 +6135,60 @@ msgstr "Hora d'entrada: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora de sortida: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Mostra la imatge"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Envia al KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Elimina la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Encongeix la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandeix la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "S'està carregant la vista prèvia de l'URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Obre externament"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basat en els vots d'%1 usuari"
|
||||
msgstr[1] "Basat en els vots de %1 usuaris"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalitzat)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6200,7 +6200,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última lectura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6222,24 +6222,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "An. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Mostra el vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 09:03+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
@@ -1045,7 +1045,7 @@ msgstr "El registre està desactivat en este servidor."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "S'està carregant"
|
||||
@@ -1077,7 +1077,7 @@ msgid "Loading…"
|
||||
msgstr "S'està carregant…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1709,7 +1709,7 @@ msgstr "Emoji propis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "S'està carregant la resposta"
|
||||
@@ -1969,7 +1969,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 vos ha convidat"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1978,18 +1978,18 @@ msgstr ""
|
||||
"El fitxer és massa gran per a baixar.<br />Contacteu amb l'administrador del "
|
||||
"servidor Matrix per a ajuda."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No s'ha configurat cap servidor d'identitats"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "No s'ha pogut crear la sala: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "No s'ha pogut crear l'espai: %1"
|
||||
@@ -5909,87 +5909,87 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Seleccioneu el paràmetre a afegir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Oculta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Compartix"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Elimina"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completa"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Codi de país del número nou de telèfon"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Adreça de correu electrònic nova:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Número de telèfon nou:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Vos hem enviat un correu electrònic"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Vos hem enviat un missatge de text"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
"%1. Seguiu les seues instruccions i després feu clic en el botó de davall"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "El correu electrònic que heu introduït no és vàlid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "El número de telèfon que heu introduït no és vàlid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "S'ha introduït una contrasenya incorrecta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5998,7 +5998,7 @@ msgstr ""
|
||||
"El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i "
|
||||
"seguiu les seues instruccions i després feu clic en el botó de davall"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6007,26 +6007,26 @@ msgstr ""
|
||||
"El número de telèfon no s'ha verificat. Aneu fins al missatge de text i "
|
||||
"seguiu les seues instruccions i després feu clic en el botó de davall"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Afig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Arrere"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"%1. Seguiu les seues instruccions i després feu clic en el botó de dalt"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6035,7 +6035,7 @@ msgstr ""
|
||||
"El correu electrònic no s'ha verificat. Aneu fins al correu electrònic i "
|
||||
"seguiu les seues instruccions i després feu clic en el botó de dalt"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6044,35 +6044,35 @@ msgstr ""
|
||||
"El número de telèfon no s'ha verificat. Aneu fins al missatge de text i "
|
||||
"seguiu les seues instruccions i després feu clic en el botó de dalt"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ha començat una verificació d'usuari"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirma l'edició"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publica un missatge en el fil"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia a dins del porta-retalls"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6081,20 +6081,20 @@ msgstr ""
|
||||
"Este missatge està encriptat i el remitent no ha compartit la clau amb este "
|
||||
"dispositiu."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Recupera més esdeveniments"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Baixa"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6102,13 +6102,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Obri el fitxer"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6137,60 +6137,60 @@ msgstr "Hora d'entrada: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora d'eixida: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Mostra la imatge"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Envia a KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Elimina la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Encull la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandix la vista prèvia"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "S'està carregant la vista prèvia de l'URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Obri externament"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basat en els vots d'%1 usuari"
|
||||
msgstr[1] "Basat en els vots de %1 usuaris"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalitzat)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6202,7 +6202,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última lectura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6224,24 +6224,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "An. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Mostra el vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
112
po/cs/neochat.po
112
po/cs/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-09-17 15:24+0200\n"
|
||||
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
|
||||
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1028,7 +1028,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Načítání"
|
||||
@@ -1058,7 +1058,7 @@ msgid "Loading…"
|
||||
msgstr "Probíhá načítání…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1688,7 +1688,7 @@ msgstr "Vlastní emotikony"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr ""
|
||||
@@ -1943,25 +1943,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Vytvoření místnosti selhalo: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Vytvoření místnosti selhalo: %1"
|
||||
@@ -5800,180 +5800,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Skrýt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Sdílet"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Odstranit"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Dokončeno"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nová e-mailová adresa:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nové telefonní číslo:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Přidat"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Zpět"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Potvrdit úpravy"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Napsat zprávu do vlákna"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Zkopírovat do schránky"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovat"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Stáhnout"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5981,13 +5981,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Otevřít soubor"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6016,47 +6016,47 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Zobrazit obrázek"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Poslat do itineráře KDE"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Odstranit náhled"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Zmenšit náhled"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Roztáhnout náhled"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Načítá se náhled URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Otevřít externě"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6064,13 +6064,13 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Ukončeno)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6082,7 +6082,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Poslední přístup ke čtení: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6101,24 +6101,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Zobrazit video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Hlasitost"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovat"
|
||||
|
||||
112
po/da/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2020-12-13 17:28+0100\n"
|
||||
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
|
||||
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1077,7 +1077,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading"
|
||||
msgid "Loading"
|
||||
@@ -1109,7 +1109,7 @@ msgid "Loading…"
|
||||
msgstr "Indlæser"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1755,7 +1755,7 @@ msgstr ""
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading"
|
||||
msgid "Loading reply"
|
||||
@@ -2032,26 +2032,26 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Login Failed"
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Login mislykkedes"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Login Failed"
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6100,187 +6100,187 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annullér"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Medlemmer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Tilføj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Annullér"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Send besked"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6288,13 +6288,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6323,63 +6323,63 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Username"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Brugernavn"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Åbn eksternt"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6391,7 +6391,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6411,25 +6411,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Username"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Brugernavn"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/de/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-01-08 15:55+0100\n"
|
||||
"Last-Translator: Johannes Obermayr <johannesobermayr@gmx.de>\n"
|
||||
"Language-Team: German <kde-i18n-de@kde.org>\n"
|
||||
@@ -1050,7 +1050,7 @@ msgstr "Die Registrierung ist auf diesem Server deaktiviert."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Wird geladen"
|
||||
@@ -1081,7 +1081,7 @@ msgid "Loading…"
|
||||
msgstr "Wird geladen …"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1718,7 +1718,7 @@ msgstr "Eigene Emojis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Antwort wird geladen"
|
||||
@@ -1990,7 +1990,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 hat Sie in einen Raum eingeladen"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1999,18 +1999,18 @@ msgstr ""
|
||||
"Die Datei ist zu groß für das Herunterladen.<br />Kontaktieren Sie den "
|
||||
"Administrator Ihres Matrix-Servers für die Unterstützung."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Erstellen des Raums ist fehlgeschlagen: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Erstellen der Umgebung ist fehlgeschlagen: %1"
|
||||
@@ -5968,162 +5968,162 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Ausblenden"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Teilen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Länderkennung für die neue Telefonnummer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Neue E-Mail-Adresse:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Neue Telefonnummer:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "hat eine Nachricht gesendet"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Die eingegebene E-Mail-Adresse ist nicht gültig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Die eingegebene Telefonnummer ist nicht gültig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Falsches Passwort eingegeben"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 startete eine Überprüfung des Benutzers"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Änderungen bestätigen"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Nachricht im Diskussionsfaden senden"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "In die Zwischenablage kopieren"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximieren"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6132,20 +6132,20 @@ msgstr ""
|
||||
"Diese Nachricht ist verschlüsselt und der Absender hat den Schlüssel nicht "
|
||||
"mit diesem Gerät geteilt."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Herunterladen"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6153,13 +6153,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Datei öffnen"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6188,60 +6188,60 @@ msgstr "Check-in-Zeit: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Check-out-Zeit: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Bild anzeigen"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Zu KDE-Itinerary senden"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Vorschau entfernen"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Vorschau verkleinern"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Vorschau vergrößern"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Adressvorschau wird geladen"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Extern öffnen"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basierend auf der Stimme von %1 Nutzer"
|
||||
msgstr[1] "Basierend auf Stimmen von %1 Nutzern"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Beendet)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6254,7 +6254,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Zuletzt gelesen: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6275,24 +6275,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Video anzeigen"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Lautstärke"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximieren"
|
||||
|
||||
112
po/el/neochat.po
112
po/el/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-09-20 13:25+0300\n"
|
||||
"Last-Translator: Antonis Geralis <capoiosct@gmail.com>\n"
|
||||
"Language-Team: Greek <kde-i18n-el@kde.org>\n"
|
||||
@@ -1111,7 +1111,7 @@ msgstr "Η εγγραφή είναι απενεργοποιημένη σε αυ
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Φορτώνει"
|
||||
@@ -1142,7 +1142,7 @@ msgid "Loading…"
|
||||
msgstr "Φορτώνει…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1796,7 +1796,7 @@ msgstr "Χωρίς εμότζι"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2066,7 +2066,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 σε προσκάλεσε σε μία αίθουσα"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Contact your matrix server administrator for support."
|
||||
msgid ""
|
||||
@@ -2074,18 +2074,18 @@ msgid ""
|
||||
"for support."
|
||||
msgstr "Επικοινωνήστε με τον διαχειριστή του διακομιστή matrix για υποστήριξη."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Δεν έχει ρυθμιστεί διακομιστής ταυτότητας"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Αποτυχία δημιουργίας αίθουσας: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6163,171 +6163,171 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Διαμοιρασμός"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Αφαίρεση"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Ολοκλήρωση"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Ακύρωση"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm new display name"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Επιβεβαίωση νέου ονόματος"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Μέλη"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a message…"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Αποστολή μηνύματος…"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Το δοσμένο κείμενο δεν είναι έγκυρο url"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Δόθηκε λάθος κωδικός πρόσβασης"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Προσθήκη"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Πίσω"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew %1's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "απόσυρε την πρόσκληση για %1"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Επιβεβαίωση"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No results found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Δεν βρέθηκαν αποτελέσματα"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:inmenu"
|
||||
#| msgid "Copy Address to Clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Αντιγραφή διεύθυνσης στο πρόχειρο"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6336,20 +6336,20 @@ msgstr ""
|
||||
"Το μήνυμα αυτό είναι κρυπτογραφημένο και ο αποστολέας δεν έχει μοιραστεί το "
|
||||
"κλειδί με τη συσκευή αυτή."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Λήψη"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6357,13 +6357,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Άνοιγμα αρχείου"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6392,61 +6392,61 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Change the room name"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Άλλαξε το όνομα της αίθουσας"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Αφαίρεση προεπισκόπησης"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Άνοιγμα εξωτερικά"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Με βάση τις ψήφους %1 χρήστη"
|
||||
msgstr[1] "Με βάση τις ψήφους %1 χρηστών"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Τερματίστηκε)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6459,7 +6459,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Τελευταία ανάγνωση: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6478,25 +6478,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Βίντεο"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Βίντεο"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-11-23 12:05+0000\n"
|
||||
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
|
||||
"Language-Team: British English\n"
|
||||
@@ -1058,7 +1058,7 @@ msgstr "Registration is disabled on this server."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Loading"
|
||||
@@ -1090,7 +1090,7 @@ msgid "Loading…"
|
||||
msgstr "Loading…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1724,7 +1724,7 @@ msgstr "Own Emojis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Loading reply"
|
||||
@@ -1982,7 +1982,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 invited you to a room"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1991,18 +1991,18 @@ msgstr ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No identity server configured"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Room creation failed: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Space creation failed: %1"
|
||||
@@ -5985,87 +5985,87 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Hide"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Share"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Complete"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Country Code for new phone number"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "New Email Address:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "New Phone Number:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "We have sent you an email"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "We have sent you a text message"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "The entered email is not valid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "The entered phone number is not valid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Incorrect password entered"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6074,7 +6074,7 @@ msgstr ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6083,72 +6083,72 @@ msgstr ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Add"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Back"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 started a user verification"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirm edit"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Post message in thread"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copy to clipboard"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximise"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6157,20 +6157,20 @@ msgstr ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6178,13 +6178,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Open File"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6213,60 +6213,60 @@ msgstr "Check-in time: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Check-out time: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Show Image"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Send to KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Remove preview"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Shrink preview"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expand preview"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Loading URL preview"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Open Externally"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Based on votes by %1 user"
|
||||
msgstr[1] "Based on votes by %1 users"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Ended)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6279,7 +6279,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Last read: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6301,24 +6301,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Show Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximise"
|
||||
|
||||
112
po/eo/neochat.po
112
po/eo/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-01 17:55+0100\n"
|
||||
"Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\n"
|
||||
"Language-Team: Esperanto <kde-i18n-eo@kde.org>\n"
|
||||
@@ -1038,7 +1038,7 @@ msgstr "Registrado estas malŝaltita ĉe ĉi tiu servilo."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Ŝargante"
|
||||
@@ -1070,7 +1070,7 @@ msgid "Loading…"
|
||||
msgstr "Ŝargante…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1701,7 +1701,7 @@ msgstr "Propraj Emoĝioj"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Ŝargante respondon"
|
||||
@@ -1961,7 +1961,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 invitis vin al ĉambro"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1970,18 +1970,18 @@ msgstr ""
|
||||
"Dosiero tro granda por elŝuti.<br />Kontaktu vian administranton de matrix-"
|
||||
"servilo por subteno."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Agordiĝis neniu identeca servilo"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Kreado de ĉambro malsukcesis: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Spackreado malsukcesis: %1"
|
||||
@@ -5854,86 +5854,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Elekti Parametron Aldonendan"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Kaŝi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Kunhavigi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Forigi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Kompletigi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Nuligi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Landkodo por nova telefonnumero"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nova Retpoŝta Adreso:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nova Telefonnumero:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Ni sendis al vi retpoŝton"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Ni sendis al vi tekstmesaĝon"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon malsupre"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "La enigita retpoŝto ne estas valida"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "La enigita telefonnumero ne estas valida"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Malĝusta pasvorto enigita"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5942,7 +5942,7 @@ msgstr ""
|
||||
"La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la "
|
||||
"instruojn tie kaj poste klaki la butonon malsupre"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5951,25 +5951,25 @@ msgstr ""
|
||||
"La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi "
|
||||
"la instruojn tie kaj poste klaki la butonon malsupre"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Aldoni"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Reen"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Bonvolu sekvi la instruojn tie kaj poste klaki la butonon supre"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5978,7 +5978,7 @@ msgstr ""
|
||||
"La retpoŝto ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi la "
|
||||
"instruojn tie kaj poste klaki la butonon supre"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5987,35 +5987,35 @@ msgstr ""
|
||||
"La telefonnumero ne estis konfirmita. Bonvolu iri al la retpoŝto kaj sekvi "
|
||||
"la instruojn tie kaj poste klaki la butonon supre"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 komencis uzant-konfirmon"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Konfirmi redakton"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Afiŝi mesaĝon en fadeno"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopii al tondujo"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimumigi"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6024,20 +6024,20 @@ msgstr ""
|
||||
"Ĉi tiu mesaĝo estas ĉifrita kaj la sendinto ne dividis la ŝlosilon kun ĉi "
|
||||
"tiu aparato."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Alpreni Pliajn Eventojn"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Elŝutu"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6045,13 +6045,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Malfermu Dosieron"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6080,60 +6080,60 @@ msgstr "Enregistriĝotempo: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Tempo de eliro: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Montri Bildon"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Sendi al KDE-Itinero"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Forigi antaŭrigardon"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Malgrandigi antaŭrigardon"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Vastigi antaŭrigardon"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Ŝargante antaŭrigardon de URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Malfermi Ekstere"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Bazita sur voĉdonoj de %1 uzanto"
|
||||
msgstr[1] "Bazita sur voĉdonoj de %1 uzantoj"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finis)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6145,7 +6145,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Lasta legado: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6166,24 +6166,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Montri Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Laŭteco"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimumigi"
|
||||
|
||||
112
po/es/neochat.po
112
po/es/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 20:24+0100\n"
|
||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||
@@ -1042,7 +1042,7 @@ msgstr "El registro está desactivado en este servidor."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Cargando"
|
||||
@@ -1074,7 +1074,7 @@ msgid "Loading…"
|
||||
msgstr "Cargando…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1707,7 +1707,7 @@ msgstr "Emojis propios"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Cargando respuesta"
|
||||
@@ -1967,7 +1967,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 le ha invitado"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1976,18 +1976,18 @@ msgstr ""
|
||||
"Archivo demasiado grande para descargarlo.<br />Póngase en contacto con el "
|
||||
"administrador del servidor matrix para obtener asistencia."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "No se ha configurado ningún servidor de identidades"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "La creación de la sala ha fallado: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "La creación del espacio ha fallado: %1"
|
||||
@@ -5901,86 +5901,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Seleccionar el parámetro que se añadirá"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Compartir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Código de país para el nuevo número de teléfono"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nueva dirección de correo electrónico:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nuevo número de teléfono:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Le hemos enviado un mensaje de correo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Le hemos enviado un mensaje de texto"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Siga las instrucciones del mismo y pulse el botón inferior."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "El correo electrónico introducido no es válido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "El número de teléfono introducido no es válido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Se ha introducido una contraseña incorrecta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5989,7 +5989,7 @@ msgstr ""
|
||||
"El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga "
|
||||
"las instrucciones que contiene y pulse el botón inferior."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5998,25 +5998,25 @@ msgstr ""
|
||||
"El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga "
|
||||
"las instrucciones que contiene y pulse el botón inferior."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Volver"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Siga las instrucciones del mismo y pulse el botón superior."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6025,7 +6025,7 @@ msgstr ""
|
||||
"El correo electrónico no ha sido verificado. Vaya al mensaje de correo, siga "
|
||||
"las instrucciones que contiene y pulse el botón superior."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6034,35 +6034,35 @@ msgstr ""
|
||||
"El número de teléfono no ha sido verificado. Vaya al mensaje de texto, siga "
|
||||
"las instrucciones que contiene y pulse el botón superior."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ha iniciado una verificación de usuario"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmar edición"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publicar mensaje en el hilo"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar en el portapapeles"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6071,20 +6071,20 @@ msgstr ""
|
||||
"Este mensaje está cifrado y el remitente no ha compartido la clave con este "
|
||||
"dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Obtener más eventos"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6092,13 +6092,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Abrir archivo"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6127,60 +6127,60 @@ msgstr "Hora de entrada: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora de salida: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Mostrar imagen"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Enviar a KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Eliminar vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Encoger vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandir vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Cargando vista previa de URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Abrir externamente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Según los votos de %1 usuario"
|
||||
msgstr[1] "Según los votos de %1 usuarios"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Finalizada)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6192,7 +6192,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última lectura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6213,24 +6213,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Andén %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Mostrar vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volumen"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
112
po/eu/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-10 18:39+0100\n"
|
||||
"Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
|
||||
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"
|
||||
@@ -1041,7 +1041,7 @@ msgstr "Erregistratzea ezgaituta dago zerbitzari horretan."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Zamatzen..."
|
||||
@@ -1073,7 +1073,7 @@ msgid "Loading…"
|
||||
msgstr "Zamatzen..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1706,7 +1706,7 @@ msgstr "Emoji propioak"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Erantzuna zamatzen"
|
||||
@@ -1963,7 +1963,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1(e)k gela batera gonbidatu zaitu"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1972,18 +1972,18 @@ msgstr ""
|
||||
"Zama-jaisteko fitxategi handiegia.<br />Jar zaitez zure matrix "
|
||||
"zerbitzariaren administratzailearekin harremanean, laguntza lortzeko."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Ez da nortasun zerbitzaririk konfiguratu"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Gela sortzea huts egin du: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Tokia sortzea huts egin du: %1"
|
||||
@@ -5887,87 +5887,87 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Hautatu gehitu beharreko parametroa"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Ezkutatu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Partekatu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Kendu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Osatu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Utzi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Telefono-zenbaki berrirako herrialde-kodea"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "E-posta helbide berria:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Telefono-zenbaki berria:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "E-posta bat bidali dizugu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Testu-mezu bat bidali dizugu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
"%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Sartutako e-postak ez du balio"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Sartutako telefono-zenbakiak ez du balio"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Pasahitz okerra sartu da"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5976,7 +5976,7 @@ msgstr ""
|
||||
"E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango "
|
||||
"jarraibideak eta egin klik beheko botoian"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5985,26 +5985,26 @@ msgstr ""
|
||||
"Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango "
|
||||
"jarraibideak eta egin klik beheko botoian"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Gehitu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Atzera"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"%1. Mesedez, jarraitu han dauden jarraibideak eta egin klik beheko botoian"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6013,7 +6013,7 @@ msgstr ""
|
||||
"E-posta ez da egiaztatu. Mesedez, joan e-postara, jarraitu hango "
|
||||
"jarraibideak eta egin klik goiko botoian"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6022,35 +6022,35 @@ msgstr ""
|
||||
"Telefono-zenbaki ez da egiaztatu. Mesedez, joan testu-mezura, jarraitu hango "
|
||||
"jarraibideak eta egin klik goiko botoian"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1(e)k erabiltzaile egiaztapen bat abiatu du"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Berretsi editatutakoa"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Bidali mezua harian"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiatu arbelera"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizatu"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6058,20 +6058,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Mezu hori zifratuta dago eta igorleak ez du gakoa gailu honekin partekatu."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Eskuratu gertaera gehiago"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Zama-jaitsi"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6079,13 +6079,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Ireki fitxategia"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6114,60 +6114,60 @@ msgstr "Izen-emate ordua: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Ordaindu eta irtete ordua: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Erakutsi irudia"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Bidali KDE «Itinerary»ra"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Kendu aurreikuspegia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Txikiagotu aurreikuspegia"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Zabaldu aurreikuspegia"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URLaren aurreikuspegia zamatzen"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Ireki kanpotik"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Erabiltzaile %1(e)n bozkan oinarritua"
|
||||
msgstr[1] "%1 erabiltzaileren bozkatan oinarritua"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Amaituta)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6179,7 +6179,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Azken irakurketa: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6200,24 +6200,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "%1 Na."
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Bideoa"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Erakutsi bideoa"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Bolumena"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizatu"
|
||||
|
||||
225
po/fi/neochat.po
225
po/fi/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: 2025-03-07 00:42+0000\n"
|
||||
"PO-Revision-Date: 2025-01-28 18:09+0200\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-14 19:43+0200\n"
|
||||
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
|
||||
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
|
||||
"Language: fi\n"
|
||||
@@ -1036,7 +1036,7 @@ msgstr "Palvelin on poistanut rekisteröitymisen käytöstä."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Ladataan"
|
||||
@@ -1066,7 +1066,7 @@ msgid "Loading…"
|
||||
msgstr "Ladataan…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1696,7 +1696,7 @@ msgstr "Omat emojit"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Ladataan vastausta"
|
||||
@@ -1955,7 +1955,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 kutsui sinut huoneeseen"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1964,18 +1964,18 @@ msgstr ""
|
||||
"Tiedosto on liian suuri ladata.<br />Pyydä apua Matrix-palvelimesi "
|
||||
"ylläpidolta."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Henkilöyspalvelinta ei ole määritetty"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Huoneen luominen epäonnistui: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Tilan luominen epäonnistui: %1"
|
||||
@@ -2013,10 +2013,9 @@ msgid "Reply"
|
||||
msgstr "Vastaa"
|
||||
|
||||
#: src/notificationsmanager.cpp:246
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
#, kde-format
|
||||
msgid "Reply…"
|
||||
msgstr "Vastaa"
|
||||
msgstr "Vastaa…"
|
||||
|
||||
#: src/notificationsmanager.cpp:305
|
||||
#, kde-format
|
||||
@@ -2226,13 +2225,13 @@ msgstr "Salasana"
|
||||
#, kde-format
|
||||
msgctxt "@label:checkbox"
|
||||
msgid "Erase Data"
|
||||
msgstr ""
|
||||
msgstr "Pyyhi tiedot"
|
||||
|
||||
#: src/qml/ConfirmDeactivateAccountDialog.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Request your server to delete as much user data as possible."
|
||||
msgstr ""
|
||||
msgstr "Pyydä palvelinta poistamaan käyttäjätietojasi mahdollisimman paljon."
|
||||
|
||||
#: src/qml/ConfirmDeactivateAccountDialog.qml:43
|
||||
#, kde-format
|
||||
@@ -2759,8 +2758,7 @@ msgid "Configure NeoChat…"
|
||||
msgstr "NeoChatin asetukset…"
|
||||
|
||||
#: src/qml/GlobalMenu.qml:25
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Configure NeoChat…"
|
||||
#, kde-format
|
||||
msgctxt "menu"
|
||||
msgid "Configure NeoChat…"
|
||||
msgstr "NeoChatin asetukset…"
|
||||
@@ -3056,18 +3054,16 @@ msgid "Successfully verified device **%1**"
|
||||
msgstr "Laitteen **%1** vahvistaminen onnistui"
|
||||
|
||||
#: src/qml/KeyVerificationDialog.qml:161
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The session verification timed out."
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Choose a verification method to continue"
|
||||
msgstr "Istunnon vahvistaminen aikakatkaistiin."
|
||||
msgstr "Jatka valitsemalla todennustapa"
|
||||
|
||||
#: src/qml/KeyVerificationDialog.qml:165
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Emoji Verification"
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Emoji Verification"
|
||||
msgstr "Emojin vahvistaminen"
|
||||
msgstr "Emoji-todennus"
|
||||
|
||||
#: src/qml/LocationChooser.qml:22
|
||||
#, kde-format
|
||||
@@ -3210,10 +3206,9 @@ msgid "Search for '%1'"
|
||||
msgstr "Etsi: ”%1”"
|
||||
|
||||
#: src/qml/MessageDelegateContextMenu.qml:128
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Configure Web Shortcuts..."
|
||||
#, kde-format
|
||||
msgid "Configure Web Shortcuts…"
|
||||
msgstr "WWW-pikavalintojen asetukset…"
|
||||
msgstr "Verkkopikavalintojen asetukset…"
|
||||
|
||||
#: src/qml/MessageSourceSheet.qml:46
|
||||
#, kde-format
|
||||
@@ -3493,18 +3488,16 @@ msgid "Show locations for this room"
|
||||
msgstr "Näytä sijainnit tälle huoneelle"
|
||||
|
||||
#: src/qml/RoomInformation.qml:137
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find messages…"
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Pinned messages"
|
||||
msgstr "Etsi viestejä…"
|
||||
msgstr "Kiinnitetyt viestit"
|
||||
|
||||
#: src/qml/RoomInformation.qml:146 src/qml/RoomPinnedMessagesPage.qml:23
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Direct Messages"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Pinned Messages"
|
||||
msgstr "Suoraviestit"
|
||||
msgstr "Kiinnitetyt viestit"
|
||||
|
||||
#: src/qml/RoomInformation.qml:154 src/qml/SpaceHomePage.qml:65
|
||||
#, kde-format
|
||||
@@ -3604,12 +3597,10 @@ msgid "Message Source"
|
||||
msgstr "Viestin lähde"
|
||||
|
||||
#: src/qml/RoomPinnedMessagesPage.qml:46
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@title"
|
||||
#| msgid "Forward Message"
|
||||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "No Pinned Messages"
|
||||
msgstr "Edennä viesti"
|
||||
msgstr "Ei kiinnitettyjä viestejä"
|
||||
|
||||
#: src/qml/RoomSearchPage.qml:26
|
||||
#, kde-format
|
||||
@@ -3889,11 +3880,10 @@ msgid "Load your encrypted messages"
|
||||
msgstr "Lataa salatut viestisi"
|
||||
|
||||
#: src/qml/UnlockSSSSDialog.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Encryption key"
|
||||
#, kde-format
|
||||
msgctxt "@info:status"
|
||||
msgid "Encryption keys restored."
|
||||
msgstr "Salausavain"
|
||||
msgstr "Salausavaimet palautettu."
|
||||
|
||||
#: src/qml/UnlockSSSSDialog.qml:50
|
||||
#, kde-format
|
||||
@@ -3980,14 +3970,12 @@ msgid "Account Details"
|
||||
msgstr "Tilin tiedot"
|
||||
|
||||
#: src/qml/UserDetailDialog.qml:83
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "Notification type"
|
||||
#| msgid "Invites to a room"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "One mutual room"
|
||||
msgid_plural "%1 mutual rooms"
|
||||
msgstr[0] "Kutsut huoneeseen"
|
||||
msgstr[1] "Kutsut huoneeseen"
|
||||
msgstr[0] "Yksi yhteinen huone"
|
||||
msgstr[1] "%1 yhteistä huonetta"
|
||||
|
||||
#: src/qml/UserDetailDialog.qml:136
|
||||
#, kde-format
|
||||
@@ -4431,36 +4419,31 @@ msgid "Password"
|
||||
msgstr "Salasana"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Your server doesn't support changing your password"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Your server doesn't support changing your password"
|
||||
msgstr "Palvelimesi ei tue salasanan vaihtamista"
|
||||
msgstr "Palvelin ei tue salasanan vaihtamista"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:166
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Current Password:"
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Current Password:"
|
||||
msgstr "Nykyinen salasana:"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:173
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "New Password:"
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Password:"
|
||||
msgstr "Uusi salasana:"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:180
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm new Password:"
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Confirm new Password:"
|
||||
msgstr "Vahvista uusi salasana:"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:185
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Passwords don't match"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Passwords don't match"
|
||||
msgstr "Salasanat eivät täsmää"
|
||||
@@ -4506,23 +4489,19 @@ msgid "Deactivate Account"
|
||||
msgstr "Passivoi tili"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:272
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Password changed successfully"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Password changed successfully"
|
||||
msgstr "Salasanan vaihto onnistui"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:275
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@info"
|
||||
#| msgid "Invalid passphrase"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Invalid password"
|
||||
msgstr "Virheellinen salasana"
|
||||
|
||||
#: src/settings/AccountEditorPage.qml:278
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Unknown problem while trying to change password"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Unknown problem while trying to change password"
|
||||
msgstr "Tuntematon ongelma yritettäessä vaihtaa salasanaa"
|
||||
@@ -5222,7 +5201,7 @@ msgstr "Palvelin ei tue tätä asetusta."
|
||||
#, kde-format
|
||||
msgctxt "@option:check"
|
||||
msgid "Turn on encryption in new chats"
|
||||
msgstr ""
|
||||
msgstr "Käytä uusiin keskusteluihin salausta"
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:75
|
||||
#, kde-format
|
||||
@@ -5230,6 +5209,7 @@ msgctxt "@info"
|
||||
msgid ""
|
||||
"If enabled, NeoChat will use encryption when starting new direct messages."
|
||||
msgstr ""
|
||||
"Jos käytössä, NeoChat käyttää salausta aloitettaessa uusia suoraviestejä."
|
||||
|
||||
#: src/settings/NeoChatSecurityPage.qml:85
|
||||
#, kde-format
|
||||
@@ -5649,28 +5629,25 @@ msgstr "Valitse uusi versio"
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "Customize your profile only for this room."
|
||||
msgstr ""
|
||||
msgstr "Mukauta profiiliasi vain tälle huoneelle."
|
||||
|
||||
#: src/settings/RoomProfile.qml:38
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Display Name:"
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Display Name"
|
||||
msgstr "Näyttönimi:"
|
||||
msgstr "Näyttönimi"
|
||||
|
||||
#: src/settings/RoomProfile.qml:48
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Save"
|
||||
#, kde-format
|
||||
msgctxt "@action:button Save profile"
|
||||
msgid "Save"
|
||||
msgstr "Tallenna"
|
||||
|
||||
#: src/settings/RoomProfile.qml:54
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "System Default"
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset to Default"
|
||||
msgstr "Järjestelmän oletus"
|
||||
msgstr "Palauta oletukseksi"
|
||||
|
||||
#: src/settings/RoomSecurityPage.qml:20
|
||||
#, kde-format
|
||||
@@ -5832,11 +5809,10 @@ msgid "Permissions"
|
||||
msgstr "Käyttöoikeudet"
|
||||
|
||||
#: src/settings/RoomSettingsView.qml:84
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "a file"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Profile"
|
||||
msgstr "tiedosto"
|
||||
msgstr "Profiili"
|
||||
|
||||
#: src/settings/RoomSortParameterDialog.qml:16
|
||||
#, kde-format
|
||||
@@ -5880,86 +5856,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Valitse lisättävä parametri"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Piilota"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Jaa"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Poista"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Valmis"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Peru"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Uuden puhelinnumeron maakoodi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Uusi sähköpostiosoite:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Uusi puhelinnumero:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Sinulle on lähetetty sähköpostia"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Sinulle on lähetetty tekstiviesti"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Annettu sähköpostiosoite ei ole kelvollinen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Annettu puhelinnumero ei ole kelvollinen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Annettiin väärä salasana"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5968,7 +5944,7 @@ msgstr ""
|
||||
"Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita "
|
||||
"ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5977,25 +5953,25 @@ msgstr ""
|
||||
"Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen "
|
||||
"ohjeita ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Lisää"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Takaisin"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Seuraa annettuja ohjeita ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6004,7 +5980,7 @@ msgstr ""
|
||||
"Sähköpostiosoitetta ei ole vahvistettu. Siirry viestiin, seuraa sen ohjeita "
|
||||
"ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6013,35 +5989,35 @@ msgstr ""
|
||||
"Puhelinnumeroa ei ole vahvistettu. Siirry tekstiviestiin, noudata sen "
|
||||
"ohjeita ja napsauta sitten alla olevaa painiketta"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 käynnisti käyttäjän vahvistuksen"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Vahvista muokkaus"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Lähetä viesti säikeeseen"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopioi leikepöydälle"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Suurenna"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6049,20 +6025,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Tämä viesti on salattu, eikä lähettäjä ole jakanut avainta tälle laitteelle."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
msgstr "Nouda lisää tapahtumia"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Lataa"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6070,13 +6046,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Avaa tiedosto"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6105,62 +6081,61 @@ msgstr "Sisäänkirjautumisaika: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Uloskirjautumisaika: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Näytä kuva"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Lähetä KDE Itineraryyn"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Poista esikatselu"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Pienennä esikatselua"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Suurenna esikatselua"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Ladataan verkko-osoitteen esikatselua"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Avaa ulkoisesti"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Perustuu 1 käyttäjän ääniin"
|
||||
msgstr[1] "Perustuu %1 käyttäjän ääniin"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(päättynyt)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
msgstr "Reagoi"
|
||||
@@ -6171,7 +6146,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Viimeksi luettu: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6190,24 +6165,24 @@ msgstr "Tämä on keskustelun alku. Tästä edemmäs keskusteluhistoriaa ei ole.
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Näytä video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Äänenvoimakkuus"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Suurenna"
|
||||
|
||||
118
po/fr/neochat.po
118
po/fr/neochat.po
@@ -4,8 +4,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"PO-Revision-Date: 2025-03-01 09:51+0100\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-07 12:00+0100\n"
|
||||
"Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n"
|
||||
"Language-Team: French <French <kde-francophone@kde.org>>\n"
|
||||
"Language: fr\n"
|
||||
@@ -1041,7 +1041,7 @@ msgstr "L'enregistrement est désactivé sur ce serveur."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Chargement..."
|
||||
@@ -1073,7 +1073,7 @@ msgid "Loading…"
|
||||
msgstr "Chargement..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1709,7 +1709,7 @@ msgstr "Émoticônes personnelles"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Chargement de la réponse..."
|
||||
@@ -1969,7 +1969,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 vous a invité"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1978,18 +1978,18 @@ msgstr ""
|
||||
"Fichier trop volumineux pour être téléchargé.<br />Veuillez contact votre "
|
||||
"administrateur du serveur « Matrix » pour de l'aide."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Aucun serveur d'identité n'a été configuré."
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Impossible de créer le salon : %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Impossible de créer un espace : %1"
|
||||
@@ -2129,13 +2129,15 @@ msgstr "Vérifier ce périphérique"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
msgstr "Demande de vérification envoyée"
|
||||
|
||||
#: src/qml/AccountMenu.qml:94
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
"Pour continuer, veuillez accepter la demande de vérification sur un autre "
|
||||
"périphérique."
|
||||
|
||||
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
|
||||
#, kde-format
|
||||
@@ -5925,65 +5927,65 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Sélectionner le paramètre à ajouter"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Masquer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Partager"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Terminer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Code international pour le nouveau numéro de téléphone"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nouvelle adresse de courriel :"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nouveau numéro de téléphone :"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Nous vous avons envoyé un courriel."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Nous vous avons envoyé un message de texte"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
@@ -5991,22 +5993,22 @@ msgstr ""
|
||||
"%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le "
|
||||
"bouton ci-dessous."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "L'adresse de courriel saisie est non valable."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Le numéro de téléphone saisi est non valable."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Le mot de passe saisi est incorrect."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6016,7 +6018,7 @@ msgstr ""
|
||||
"suivre les instructions proposées ici et ensuite cliquer sur le bouton ci-"
|
||||
"dessous."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6026,19 +6028,19 @@ msgstr ""
|
||||
"texte, suivre les instructions proposées ici et ensuite cliquer sur le "
|
||||
"bouton ci-dessous."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Revenir en arrière"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
@@ -6046,7 +6048,7 @@ msgstr ""
|
||||
"%1. Veuillez suivre les instructions proposées là et ensuite cliquer sur le "
|
||||
"bouton ci-dessus."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6055,7 +6057,7 @@ msgstr ""
|
||||
"Le courriel n'a pas été vérifié. Veuillez aller sur celui-ci, suivre les "
|
||||
"instructions proposées là et enfin cliquer sur le bouton ci-dessus."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6065,35 +6067,35 @@ msgstr ""
|
||||
"texte, suivre les instructions proposées ici et ensuite cliquer sur le "
|
||||
"bouton ci-dessus."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 a démarré une vérification d'utilisateurs"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmer une modification"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publier un message dans un fil de discussions"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copier dans le presse-papier"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiser"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6102,20 +6104,20 @@ msgstr ""
|
||||
"Le message est chiffré et l'émetteur n'a pas partagé la clé avec ce "
|
||||
"périphérique."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Rechercher plus d'évènements"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6123,13 +6125,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Ouvrir un fichier"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6158,60 +6160,60 @@ msgstr "Heure d'arrivée : %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Heure de départ : %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Afficher une image"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Envoyer vers KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Supprimer un aperçu"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Réduire l'aperçu"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Développer l'aperçu"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Chargement d'un aperçu de l'URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Ouvrir de façon externe"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Selon les votes de l'utilisateur %1"
|
||||
msgstr[1] "Selon les votes de %1 utilisateurs"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Terminé)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6223,7 +6225,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Dernier lu : %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6244,24 +6246,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Place %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vidéo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Afficher une vidéo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiser"
|
||||
|
||||
112
po/gl/neochat.po
112
po/gl/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-01 08:34+0100\n"
|
||||
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.gal>\n"
|
||||
"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n"
|
||||
@@ -1037,7 +1037,7 @@ msgstr "Este servidor desactivou o rexistro."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Cargando"
|
||||
@@ -1067,7 +1067,7 @@ msgid "Loading…"
|
||||
msgstr "Cargando…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1698,7 +1698,7 @@ msgstr "Expresións personalizadas"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Cargando a resposta"
|
||||
@@ -1959,7 +1959,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 convidoulle."
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1968,18 +1968,18 @@ msgstr ""
|
||||
"O ficheiro é grande de máis para descargar.<br /> Solicite asistencia á "
|
||||
"administración do seu servidor de Matrix."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Non hai configurado ningún servidor de identidade."
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "A creación da sala fallou: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "A creación do espazo fallou: %1"
|
||||
@@ -5885,86 +5885,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Seleccione o parámetro para engadir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Agochar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Compartir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Retirar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Código de país do novo número de teléfono."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Novo enderezo de correo electrónico:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Novo número de teléfono:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Enviámoslle unha mensaxe de correo electrónico"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Enviámoslle unha mensaxe de texto"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Siga as instrucións nela e prema o botón embaixo."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "O enderezo de correo electrónico inserido non é válido."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "O número de teléfono inserido non é válido."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "O contrasinal inserido é incorrecto."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5973,7 +5973,7 @@ msgstr ""
|
||||
"Non se verificou o enderezo de correo electrónico. Abra o correo, siga as "
|
||||
"instrucións da mensaxe e prema o botón embaixo."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5982,25 +5982,25 @@ msgstr ""
|
||||
"Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as "
|
||||
"instrucións nela e prema o botón embaixo."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Engadir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Atrás"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Siga as instrucións nela e prema o botón arriba."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6009,7 +6009,7 @@ msgstr ""
|
||||
"Non se verificou o enderezo de correo electrónico. Abra o correo, siga as "
|
||||
"instrucións da mensaxe e prema o botón arriba."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6018,35 +6018,35 @@ msgstr ""
|
||||
"Non se verificou o número de teléfono. Abra a mensaxe de texto e siga as "
|
||||
"instrucións nela e prema o botón arriba."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 iniciou unha verificación de persoa usuaria"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmar a edición"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publicar a mensaxe nun fío"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar no portapapeis"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6055,20 +6055,20 @@ msgstr ""
|
||||
"A mensaxe está cifrada e quen a enviou non compartiu a chave con este "
|
||||
"dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Obter máis eventos"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6076,13 +6076,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Abrir un ficheiro"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1/%2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6111,60 +6111,60 @@ msgstr "Hora de rexistro: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Hora de saída: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Amosar a imaxe"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Enviar a KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Retirar a vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Encoller a vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandir a vista previa"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Cargando a vista previa do URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Abrir externamente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Cos votos dunha persoa"
|
||||
msgstr[1] "Cos votos de %1 persoa"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(rematou)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última lectura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6195,24 +6195,24 @@ msgstr "Este é o comezo da conversa. Non hai mensaxes anteriores."
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Amosar o vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
112
po/hi/neochat.po
112
po/hi/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-12-15 19:31+0530\n"
|
||||
"Last-Translator: kali <skkalwar999@gmail.com>\n"
|
||||
"Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1035,7 +1035,7 @@ msgstr "इस सर्वर पर पंजीकरण अक्षम ह
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "लोड हो रहा है"
|
||||
@@ -1065,7 +1065,7 @@ msgid "Loading…"
|
||||
msgstr "लोड हो रहा है…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1698,7 +1698,7 @@ msgstr "अपना खुद का इमोजी बनाएं"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "जवाब लोड हो रहा है"
|
||||
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 ने आपको एक कमरे में आमंत्रित किया"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1966,18 +1966,18 @@ msgstr ""
|
||||
"फ़ाइल डाउनलोड करने के लिए बहुत बड़ी है.<br /> सहायता के लिए अपने मैट्रिक्स सर्वर "
|
||||
"व्यवस्थापक से संपर्क करें।"
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "कोई पहचान सर्वर कॉन्फ़िगर नहीं किया गया"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "कक्ष निर्माण विफल: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "स्थान निर्माण विफल: %1"
|
||||
@@ -5873,86 +5873,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "छिपाना"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "शेयर करना"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "निकालना"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "पूरा"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "रद्द करना"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "नए फ़ोन नंबर के लिए देश कोड"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "न्यू ईमेल पता:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "नया फ़ोन नंबर:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "हमने आपको एक ईमेल भेजा है"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "हमने आपको एक टेक्स्ट संदेश भेजा है"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "दर्ज किया गया ईमेल मान्य नहीं है"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "दर्ज किया गया फ़ोन नंबर मान्य नहीं है"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "गलत पासवर्ड दर्ज किया गया"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5961,7 +5961,7 @@ msgstr ""
|
||||
"ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें "
|
||||
"और फिर नीचे दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5970,25 +5970,25 @@ msgstr ""
|
||||
"फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का "
|
||||
"पालन करें और फिर नीचे दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "जोड़ना"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "पीछे"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. कृपया वहां दिए गए निर्देशों का पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5997,7 +5997,7 @@ msgstr ""
|
||||
"ईमेल सत्यापित नहीं किया गया है। कृपया ईमेल पर जाएँ और वहाँ दिए गए निर्देशों का पालन करें "
|
||||
"और फिर ऊपर दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6006,55 +6006,55 @@ msgstr ""
|
||||
"फ़ोन नंबर सत्यापित नहीं किया गया है। कृपया टेक्स्ट संदेश पर जाएँ और वहाँ दिए गए निर्देशों का "
|
||||
"पालन करें और फिर ऊपर दिए गए बटन पर क्लिक करें"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ने उपयोगकर्ता सत्यापन शुरू किया"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "संपादन की पुष्टि करें"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "संदेश को थ्रेड में पोस्ट करें"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "क्लिपबोर्ड पर कॉपी करें"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "अधिकतम"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "यह संदेश एन्क्रिप्टेड है और प्रेषक ने इस डिवाइस के साथ कुंजी साझा नहीं की है।"
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "डाउनलोड करना"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6062,13 +6062,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "खुली फाइल"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6097,60 +6097,60 @@ msgstr "चेक-इन समय: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "चेक-आउट समय: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "छवि दिखाएं"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "केडीई यात्रा कार्यक्रम को भेजें"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "पूर्वावलोकन हटाएं"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "पूर्वावलोकन सिकोड़ें"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "पूर्वावलोकन विस्तृत करें"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL पूर्वावलोकन लोड हो रहा है"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "बाहरी रूप से खोलें"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "%1 उपयोगकर्ताओं के वोटों के आधार पर"
|
||||
msgstr[1] "%1 उपयोगकर्ताओं के वोटों के आधार पर"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(समाप्त)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6163,7 +6163,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "अंतिम बार पढ़ा गया: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6183,24 +6183,24 @@ msgstr "यह चैट की शुरुआत है। इस बिंद
|
||||
msgid "Pl. %1"
|
||||
msgstr "कृपया %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "वीडियो"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "वीडियो दिखाएं"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "आयतन"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "अधिकतम"
|
||||
|
||||
112
po/hu/neochat.po
112
po/hu/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-11-13 22:41+0100\n"
|
||||
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n"
|
||||
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
|
||||
@@ -1064,7 +1064,7 @@ msgstr "A regisztráció le van tiltva ezen a kiszolgálón."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Betöltés"
|
||||
@@ -1096,7 +1096,7 @@ msgid "Loading…"
|
||||
msgstr "Betöltés…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1732,7 +1732,7 @@ msgstr "Saját emodzsik"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Válasz betöltése"
|
||||
@@ -1992,7 +1992,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 meghívta Önt egy szobába"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -2001,18 +2001,18 @@ msgstr ""
|
||||
"A fájl túl nagy a letöltéshez.<br />Támogatásért forduljon a matrix "
|
||||
"kiszolgáló rendszergazdájához."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Nincs beállítva identitáskiszolgáló"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Nem sikerült létrehozni a szobát: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Nem sikerült létrehozni a teret: %1"
|
||||
@@ -6024,65 +6024,65 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Elrejtés"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Megosztás"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Eltávolítás"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Befejezés"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Mégse"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Új telefonszám országkódja"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Új e-mail-cím:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Új telefonszám:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Küldtünk Önnek egy e-mailt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Küldtünk Önnek egy szöveges üzenetet"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
@@ -6090,22 +6090,22 @@ msgstr ""
|
||||
"%1. Kérjük, kövesse az ott található utasításokat, majd kattintson az alábbi "
|
||||
"gombra"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "A beírt e-mail-cím érvénytelen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "A beírt telefonszám érvénytelen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Helytelen jelszó megadása"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6114,7 +6114,7 @@ msgstr ""
|
||||
"Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse "
|
||||
"az ott található utasításokat, majd kattintson az alábbi gombra"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6123,19 +6123,19 @@ msgstr ""
|
||||
"A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és "
|
||||
"kövesse az ott található utasításokat, majd kattintson az alábbi gombra"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Hozzáadás"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Vissza"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
@@ -6143,7 +6143,7 @@ msgstr ""
|
||||
"%1. Kérjük, kövesse az ott található utasításokat, majd kattintson a fenti "
|
||||
"gombra"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6152,7 +6152,7 @@ msgstr ""
|
||||
"Az e-mail-cím nincs ellenőrizve. Kérjük, nyissa meg az e-mailt, és kövesse "
|
||||
"az ott található utasításokat, majd kattintson a fenti gombra"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6161,35 +6161,35 @@ msgstr ""
|
||||
"A telefonszám nincs ellenőrizve. Kérjük, nyissa meg a szöveges üzenetet, és "
|
||||
"kövesse az ott található utasításokat, majd kattintson a fenti gombra"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 elindított egy felhasználóellenőrzést"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Szerkesztés megerősítése"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Üzenet küldése szálban"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Másolás a vágólapra"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizálás"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6198,20 +6198,20 @@ msgstr ""
|
||||
"Ez az üzenet titkosított, és a feladó nem osztotta meg a kulcsot ezzel az "
|
||||
"eszközzel."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Letöltés"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6219,13 +6219,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Fájl megnyitása"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6254,60 +6254,60 @@ msgstr "Bejelentkezés ideje: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Kijelentkezés ideje: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Kép megjelenítése"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Küldés a KDE Itineraryba"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Előnézet eltávolítása"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Előnézet kicsinyítése"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Előnézet nagyítása"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL előnézetének betöltése"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Megnyitás külsőleg"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "%1 felhasználó szavazata alapján"
|
||||
msgstr[1] "%1 felhasználó szavazata alapján"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Befejeződött)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6320,7 +6320,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Utoljára olvasva: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6340,24 +6340,24 @@ msgstr "Ez a csevegés kezdete. Nincsenek korábbi üzenetek ezen a ponton túl.
|
||||
msgid "Pl. %1"
|
||||
msgstr "%1. vágány"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Videó"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Videó megjelenítése"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Hangerő"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizálás"
|
||||
|
||||
118
po/ia/neochat.po
118
po/ia/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: 2025-03-07 00:42+0000\n"
|
||||
"PO-Revision-Date: 2025-03-04 15:22+0100\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 10:26+0100\n"
|
||||
"Last-Translator: giovanni <g.sora@tiscali.it>\n"
|
||||
"Language-Team: Interlingua <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ia\n"
|
||||
@@ -1039,7 +1039,7 @@ msgstr "Registration es dishabilitate sur iste servitor."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Cargante"
|
||||
@@ -1071,7 +1071,7 @@ msgid "Loading…"
|
||||
msgstr "Cargante..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1705,7 +1705,7 @@ msgstr "Proprie Emojis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Cargante responsa"
|
||||
@@ -1961,7 +1961,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 invitava te "
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1970,18 +1970,18 @@ msgstr ""
|
||||
"File troppo grande a discargar.<br />Continge tu administrator de servitor "
|
||||
"de matrix per supporto."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Nulle servitor de identitate configurate"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Creation de sala falleva: \"%1\""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Creation de spatio falleva: \"%1\""
|
||||
@@ -2121,13 +2121,15 @@ msgstr "Verifica iste Dispositivo"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
msgstr "Requesta de Verification inviate"
|
||||
|
||||
#: src/qml/AccountMenu.qml:94
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
"Per proceder, tu accepta le requesta de verification sur un altere "
|
||||
"dispoisitivo."
|
||||
|
||||
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
|
||||
#, kde-format
|
||||
@@ -5889,65 +5891,65 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Seliger parametro a adder"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Cela"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Comparti"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Complete"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancella"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Codice de Pais per nove numero de telephono"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nove adresse de e-posta:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nove numero de telephono:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Nos te inviava un message de e-posta"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr " Nos te ha inviate un message de texto"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
@@ -5955,22 +5957,22 @@ msgstr ""
|
||||
"%1, pro favor tu seque le instructiones illac e postea clicca sur le button "
|
||||
"a basso"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Le eposta insertate non es valide"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Le numero de telephono insertate non es valide"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Contrasigno incorrecte insertate"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5979,7 +5981,7 @@ msgstr ""
|
||||
"Le message de e-posta non ha essite verificate. Pro favor vade al message de "
|
||||
"e-posta e seque le instructiones illac e postea clicca le button a basso"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5988,19 +5990,19 @@ msgstr ""
|
||||
"Le numero de telephono non ha essite verificate. Pro favor vade al message "
|
||||
"de texto e seque le instructiones illac e postea clicca le button a basso"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Adde"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Retro"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
@@ -6008,7 +6010,7 @@ msgstr ""
|
||||
"%1, pro favor tu seque le instructiones illac e postea clicca sur le button "
|
||||
"in alto"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6017,7 +6019,7 @@ msgstr ""
|
||||
"Le message de e-posta non ha essite verificate. Pro favor vade al message de "
|
||||
"e-posta e seque le instructiones illac e postea clicca le button in alto"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6026,35 +6028,35 @@ msgstr ""
|
||||
"Le numero de telephono non ha essite verificate. Pro favor vade al message "
|
||||
"de texto e seque le instructiones illac e postea clicca le button in alto"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 initiava un verification de usator"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirma modificar"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Invia (post) Message in topico"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia in area de transferentia"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiza"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6063,20 +6065,20 @@ msgstr ""
|
||||
"Iste message es cryptate e le mittente non ha compartite le clave con iste "
|
||||
"dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "TRova plus eventos"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Discarga"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6084,13 +6086,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Aperi file"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6119,60 +6121,60 @@ msgstr "Tempore de Check-in: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Tempore de Check-Out: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Monstra imagine"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Invia a KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Remove vista preliminar"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Comprime vista preliminar"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expande Vista Preliminar"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Cargante vista preliminar de URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Aperi externemente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basate sur votos per %1 usator"
|
||||
msgstr[1] "Basate sur votos per %1 usatores"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(teminate (ended))"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6184,7 +6186,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Ultime legite: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6205,24 +6207,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Monstra Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volumine"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiza"
|
||||
|
||||
112
po/id/neochat.po
112
po/id/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2023-06-16 19:31+0700\n"
|
||||
"Last-Translator: Linerly <linerly@protonmail.com>\n"
|
||||
"Language-Team: Indonesian <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1126,7 +1126,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1159,7 +1159,7 @@ msgid "Loading…"
|
||||
msgstr "Memuat..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1813,7 +1813,7 @@ msgstr "Emoji Sendiri"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2146,7 +2146,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 mengundang Anda ke sebuah ruangan"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Contact your matrix server administrator for support."
|
||||
msgid ""
|
||||
@@ -2154,18 +2154,18 @@ msgid ""
|
||||
"for support."
|
||||
msgstr "Hubungi administrator server Matrix Anda untuk dukungan."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Pembuatan ruangan gagal: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Pembuatan space gagal: %1"
|
||||
@@ -6339,117 +6339,117 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Bagikan"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Hapus"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Kompak"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm new display name"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Konfirmasi nama tampilan baru"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Anggota"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "mengirim pesan"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Teks yang dimasukkan bukan sebuah URL yang valid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Teks yang dimasukkan bukan sebuah URL yang valid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Kata sandi salah"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Tambahkan"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6457,59 +6457,59 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Kembali"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew a user's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "membatalkan undangan pengguna"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Konfirmasi penyuntingan"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No results found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Tidak ada hasil yang ditemukan"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Copy room ID to clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Salin ID ruangan ke papan klip"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Maximize"
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimalkan"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6517,20 +6517,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Pesan ini terenkripsi dan pengirim belum membagikan kuncinya ke peranti ini."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Unduh"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6538,13 +6538,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Buka Berkas"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6573,63 +6573,63 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Set Image"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Tetapkan Gambar"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Hapus peranti"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Kecilkan pratinjau"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Luaskan pratinjau"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Memuat pratinjau URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Buka secara Eksternal"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Berdasarkan pemungutan suara dari %1 pengguna"
|
||||
msgstr[1] "Berdasarkan pemungutan suara dari %1 pengguna"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Berakhir)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6642,7 +6642,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Terakhir dibaca: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6662,25 +6662,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimalkan"
|
||||
|
||||
112
po/ie/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2022-10-28 19:18+0700\n"
|
||||
"Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
|
||||
"Language-Team: kde-i18n-doc@kde.org\n"
|
||||
@@ -1084,7 +1084,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1116,7 +1116,7 @@ msgid "Loading…"
|
||||
msgstr "Cargante..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1797,7 +1797,7 @@ msgstr "Converter smileys a emojis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2090,25 +2090,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%s invitat vos a(l) %s"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Ne successat crear un contextu OpenGL"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Ne successat crear un contextu OpenGL"
|
||||
@@ -6178,112 +6178,112 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Partir"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Compact"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Anullar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Visibil nómine"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Membres"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Ne successat inviar un missage D-Bus"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Contrasigne es ínvalid."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Adjunter"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6291,79 +6291,79 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Retro"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew %1's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "revocat li invitation de %1"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmar"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Chambres"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:inmenu"
|
||||
#| msgid "Copy Address to Clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar li adresse al Paperiere"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6371,13 +6371,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Aperter li file"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, fuzzy, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6406,61 +6406,61 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Nómine del chambre"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Remover li aparate"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Aperter _externmen"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6473,7 +6473,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Leet ultimmen: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6493,25 +6493,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
117
po/it/neochat.po
117
po/it/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: 2025-03-07 00:42+0000\n"
|
||||
"PO-Revision-Date: 2025-03-01 07:47+0100\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 16:43+0100\n"
|
||||
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
|
||||
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
|
||||
"Language: it\n"
|
||||
@@ -1042,7 +1042,7 @@ msgstr "La registrazione è disabilitata su questo server."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Caricamento"
|
||||
@@ -1074,7 +1074,7 @@ msgid "Loading…"
|
||||
msgstr "Caricamento…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1708,7 +1708,7 @@ msgstr "I propri emoji"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Caricamento risposta"
|
||||
@@ -1968,7 +1968,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 ti ha invitato"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1977,18 +1977,18 @@ msgstr ""
|
||||
"File troppo grande per essere scaricato.<br />Contatta l'amministratore del "
|
||||
"server Matrix per assistenza."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Nessun server delle identità configurato"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Creazione della stanza non riuscita: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Creazione dello spazio non riuscita: %1"
|
||||
@@ -2128,13 +2128,14 @@ msgstr "Verifica questo dispositivo"
|
||||
#, kde-format
|
||||
msgctxt "@title"
|
||||
msgid "Verification Request Sent"
|
||||
msgstr ""
|
||||
msgstr "Richiesta di verifica inviata"
|
||||
|
||||
#: src/qml/AccountMenu.qml:94
|
||||
#, kde-format
|
||||
msgctxt "@info:label"
|
||||
msgid "To proceed, accept the verification request on another device."
|
||||
msgstr ""
|
||||
"Per continuare, accetta la richiesta di verifica su un altro dispositivo."
|
||||
|
||||
#: src/qml/AccountMenu.qml:106 src/settings/AccountsPage.qml:88
|
||||
#, kde-format
|
||||
@@ -5913,86 +5914,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Seleziona il parametro da aggiungere"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Nascondi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Condividi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Rimuovi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completata"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Prefisso internazionale per il nuovo numero di telefono"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nuovo indirizzo di posta:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nuovo numero di telefono:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Ti abbiamo inviato un messaggio di posta elettronica"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Ti abbiamo inviato un messaggio di testo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sotto"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "L'indirizzo di posta digitato non è valido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Il numero di telefono digitato non è valido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "È stata digitata una password errata"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6001,7 +6002,7 @@ msgstr ""
|
||||
"L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di "
|
||||
"posta e segui le istruzioni presenti, quindi fai clic sul pulsante in basso"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6010,25 +6011,25 @@ msgstr ""
|
||||
"Il numero di telefono non è stato verificato. Vai al messaggio di testo e "
|
||||
"segui le istruzioni presenti, quindi fai clic sul pulsante in basso"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Aggiungi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Indietro"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Segui le istruzioni presenti e poi fai clic sul pulsante qui sopra"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6037,7 +6038,7 @@ msgstr ""
|
||||
"L'indirizzo di posta elettronica non è stato verificato. Vai al messaggio di "
|
||||
"posta e segui le istruzioni presenti, quindi fai clic sul pulsante in alto"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6046,35 +6047,35 @@ msgstr ""
|
||||
"Il numero di telefono non è stato verificato. Vai al messaggio di testo e "
|
||||
"segui le istruzioni presenti, quindi fai clic sul pulsante in alto"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ha iniziato una verifica utente"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Conferma la modifica"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Pubblica messaggio nella conversazione"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copia negli appunti"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Massimizza"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6083,20 +6084,20 @@ msgstr ""
|
||||
"Questo messaggio è cifrato e il mittente non ha condiviso la chiave con "
|
||||
"questo dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Recupera altri eventi"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Scarica"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6104,13 +6105,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Apri file"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6139,60 +6140,60 @@ msgstr "Ora di check-in: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Ora di check-out: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Mostra immagine"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Invia a KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Rimuovi l'anteprima"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Riduci l'anteprima"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Espandi l'anteprima"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Caricamento dell'anteprima dell'URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Apri esternamente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basato sui voti di %1 utente"
|
||||
msgstr[1] "Basato sui voti di %1 utenti"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Terminato)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6204,7 +6205,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Ultima lettura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6225,24 +6226,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Bin. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Mostra video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Massimizza"
|
||||
|
||||
112
po/ja/neochat.po
112
po/ja/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
|
||||
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
|
||||
"Language-Team: Japanese <kde-jp@kde.org>\n"
|
||||
@@ -1023,7 +1023,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
@@ -1053,7 +1053,7 @@ msgid "Loading…"
|
||||
msgstr ""
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1683,7 +1683,7 @@ msgstr ""
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr ""
|
||||
@@ -1932,25 +1932,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
@@ -5768,180 +5768,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5949,13 +5949,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -5984,59 +5984,59 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6048,7 +6048,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6067,24 +6067,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/ka/neochat.po
112
po/ka/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 02:46+0100\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1038,7 +1038,7 @@ msgstr "ამ სერვერზე რეგისტრაცია გა
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "იტვირთება"
|
||||
@@ -1070,7 +1070,7 @@ msgid "Loading…"
|
||||
msgstr "ჩატვირთვა…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1702,7 +1702,7 @@ msgstr "საკუთარი ემოჯიები"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "პასუხის ჩატვირთვა"
|
||||
@@ -1960,7 +1960,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1-მა მოგიწვიათ"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1969,18 +1969,18 @@ msgstr ""
|
||||
"გადმოსაწერად ფაილი მეტისმეტად დიდია.<br />მხარდაჭერისთვის დაუკავშირდით "
|
||||
"თქვენი Matrix-ის სერვერის ადმინისტრატორს."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "იდენტიფიკატორების სერვერი მორგებული არაა"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "ოთახის შექმნის შეცდომა: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "სივრცის შექმნის შეცდომა: %1"
|
||||
@@ -5855,86 +5855,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "აირჩიეთ დასამატებელი პარამეტრი"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "დამალვა"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "გაზიარება"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "წაშლა"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "დასრულებულია"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "გაუქმება"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "ქვეყნის კოდი ახალი ტელეფონის ნომრისთვის"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "ახალი ელფოსტის მისამართი:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "ახალი ტელეფონის ნომერი:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "ჩვენ ელფოსტა გამოგიგზავნეთ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "ჩვენ ტექსტური შეტყობინება გამოგიგზავნეთ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ქვემოთ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "შეყვანილი ელფოსტა არასწორია"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "შეყვანილი ტელეფონის ნომერი არასწორია"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "შეყვანილი პაროლი არასწორია"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5943,7 +5943,7 @@ msgstr ""
|
||||
"ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, "
|
||||
"რომლებიც გამოგიგზავნეთ, შემდეგ კი ქვემოთ ღილაკზე დააწკაპუნეთ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5953,25 +5953,25 @@ msgstr ""
|
||||
"მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ქვემოთ ღილაკზე "
|
||||
"დააწკაპუნეთ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "დამატება"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "უკან"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1, მიჰყევით ინსტრუქციებს და დააწკაპუნეთ ღილაკზე ზემოთ"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5980,7 +5980,7 @@ msgstr ""
|
||||
"ელფოსტა არ გადამოწმებულა. გადადით ელფოსტაზე და მიჰყავთ ინსტრუქციებს, "
|
||||
"რომლებიც გამოგიგზავნეთ, შემდეგ კი ზემოთ ღილაკზე დააწკაპუნეთ"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5990,35 +5990,35 @@ msgstr ""
|
||||
"მიჰყევით ინსტრუქციებს, რომელიც დაგხვდებათ. შემდეგ კი ზემოთ ღილაკზე "
|
||||
"დააწკაპუნეთ"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1-მა დაიწყო მომხმარებლის გადამოწმება"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "ჩასწორების დადასტურება"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "შეტყობინების დაპოსტვა დისკუსიაში"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "ბუფერში კოპირება"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "გადიდება"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6027,20 +6027,20 @@ msgstr ""
|
||||
"ეს შეტყობინება დაშიფრულია და გამომგზავნს ამ მოწყობილობისთვის გასაღები არ "
|
||||
"გაუზიარებია."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "მეტი მოვლენის მიღება"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "ჩამოტვირთვა"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6048,13 +6048,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "ფაილის გახსნა"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6083,60 +6083,60 @@ msgstr "ჩეკინის დრო: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "ჩეკაუტის დრო: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "გამოსახულების ჩვენება"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "გაგზავნა KDE Itinerary-სთვის"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "მინიატურის წაშლა"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "მინატურის შემცირება"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "მინიატურის გაფართოება"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL-ის მინიატურის ჩატვირთვა"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "გარეთ გახსნა"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "ეფუძნება %1 მომხმარებლის არჩევანს"
|
||||
msgstr[1] "ეფუძნება %1 მომხმარებლის არჩევანს"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(დასრულდა)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6148,7 +6148,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "ბოლოს წაიკითხა: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6168,24 +6168,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "პლ. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "ვიდეო"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "ვიდეოს ჩვენება"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "ხმის სიმაღლე"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "გადიდება"
|
||||
|
||||
112
po/ko/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-02-24 22:09+0100\n"
|
||||
"Last-Translator: Shinjo Park <kde@peremen.name>\n"
|
||||
"Language-Team: Korean <kde-kr@kde.org>\n"
|
||||
@@ -1126,7 +1126,7 @@ msgstr "이 서버에 등록이 비활성화되어 있습니다."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "불러오는 중"
|
||||
@@ -1157,7 +1157,7 @@ msgid "Loading…"
|
||||
msgstr "불러오는 중…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1792,7 +1792,7 @@ msgstr "내 이모지"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "답장 불러오는 중"
|
||||
@@ -2094,7 +2094,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 님이 대화방에 초대함"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Contact your matrix server administrator for support."
|
||||
msgid ""
|
||||
@@ -2102,18 +2102,18 @@ msgid ""
|
||||
"for support."
|
||||
msgstr "Matrix 서버 관리자에게 연락하십시오."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "대화방 생성 실패: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "스페이스 생성 실패: %1"
|
||||
@@ -6171,117 +6171,117 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "공유"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "삭제"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "간략함"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "취소"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add an e-mail address:"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "이메일 주소 추가:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "구성원"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "님이 메시지를 보냄"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "입력한 텍스트가 올바른 URL이 아님"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "입력한 텍스트가 올바른 URL이 아님"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "암호가 잘못됨"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "추가"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6289,59 +6289,59 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "뒤로"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew a user's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "님이 사용자의 초대를 거절함"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "편집 확인"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No messages found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "메시지를 찾을 수 없음"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Copy room ID to clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "클립보드에 대화방 ID 복사"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Maximize"
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "최대화"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6350,20 +6350,20 @@ msgstr ""
|
||||
"이 메시지는 암호화되어 있으며 전송한 사람이 이 장치와 키를 공유하지 않았습니"
|
||||
"다."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "다운로드"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6371,13 +6371,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "파일 열기"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6406,62 +6406,62 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Set Image"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "이미지 설정"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "KDE 여행 정보로 전송"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "장치 삭제"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "미리 보기 축소"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "미리 보기 확장"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL 미리 보기 불러오는 중"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "외부 프로그램으로 열기"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "사용자 %1명의 투표에 의함"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(종료됨)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6474,7 +6474,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "마지막 읽음: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6494,25 +6494,25 @@ msgstr "대화의 최초입니다. 이 지점보다 더 오래된 메시지가
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "비디오"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "비디오"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "음량"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "최대화"
|
||||
|
||||
112
po/lt/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2023-02-25 01:00+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -1030,7 +1030,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
@@ -1060,7 +1060,7 @@ msgid "Loading…"
|
||||
msgstr ""
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1690,7 +1690,7 @@ msgstr ""
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr ""
|
||||
@@ -1946,25 +1946,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
@@ -5796,180 +5796,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5977,13 +5977,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6012,47 +6012,47 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6060,13 +6060,13 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6078,7 +6078,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6097,24 +6097,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/lv/neochat.po
112
po/lv/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 18:51+0200\n"
|
||||
"Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\n"
|
||||
"Language-Team: Latvian <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1040,7 +1040,7 @@ msgstr "Šajā serverī reģistrācija ir izslēgta."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Ielādē"
|
||||
@@ -1071,7 +1071,7 @@ msgid "Loading…"
|
||||
msgstr "Ielādē..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1701,7 +1701,7 @@ msgstr "Savas emocijzīmes"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Ielādē atbildi"
|
||||
@@ -1960,7 +1960,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 jūs uzaicināja"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1969,18 +1969,18 @@ msgstr ""
|
||||
"Datne ir pārāk liela lejupielādei.<br />Atbalstam sazinieties ar sava "
|
||||
"„Matrix“ servera administratoru."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Identitātes serveris nav konfigurēts"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Istabas izveide neizdevās: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Telpas izveide neizdevās: %1"
|
||||
@@ -5858,86 +5858,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Atlasiet pievienojamu parametru"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Slēpt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Kopīgot"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Noņemt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Pabeigt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Atcelt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Valsts kods jaunam tālruņa numuram"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Jauna e-pasta adrese:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Jauns tālruņa numurs:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Mēs jums nosūtījām e-pasta vēstuli"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Mēs jums nosūtījām īsziņu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu zemāk"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Ievadītā e-pasta adrese nav derīga"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Ievadītais tālruņa numurs nav derīgs"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Ievadīta nepareiza parole"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5946,7 +5946,7 @@ msgstr ""
|
||||
"E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā "
|
||||
"esošajiem norādījumiem un klikšķiniet uz pogas zemāk"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5955,25 +5955,25 @@ msgstr ""
|
||||
"Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem "
|
||||
"norādījumiem un klikšķiniet uz pogas zemāk"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Pievienot"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Atpakaļ"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Sekojiet tajā esošajiem norādījumiem un spiediet pogu augstāk"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5982,7 +5982,7 @@ msgstr ""
|
||||
"E-pasta adrese nav verificēta. Atveriet e-pasta vēstuli, sekojiet tajā "
|
||||
"esošajiem norādījumiem un klikšķiniet uz pogas augstāk"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5991,55 +5991,55 @@ msgstr ""
|
||||
"Tālruņa numurs nav verificēts. Atveriet īsziņu, sekojiet tajā esošajiem "
|
||||
"norādījumiem un klikšķiniet uz pogas augstāk"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 uzsāka lietotāja verifikāciju"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Apstiprināt izmaiņas"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Publicēt ziņu pavedienā"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopēt starpliktuvē"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimizēt"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "Šī ziņa ir šifrēta, bet sūtītājs nav kopīgojis atslēgu ar šo ierīci."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Izgūt vairāk notikumu"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Lejupielādēt"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6047,13 +6047,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Atvērt datni"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6082,47 +6082,47 @@ msgstr "Reģistrācijas laiks: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Izrakstīšanās laiks: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Rādīt attēlu"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Sūtīt uz KDE „Itinerary“"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Noņemt priekšskatījumu"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Samazināt priekšskatījumu"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Palielināt priekšskatījumu"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Ielādē URL priekšskatījumu"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Atvērt ārēji"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6130,13 +6130,13 @@ msgstr[0] "Balstoties uz %1 lietotāja balsīm"
|
||||
msgstr[1] "Balstoties uz %1 lietotāju balsīm"
|
||||
msgstr[2] "Balstoties uz %1 lietotāju balsīm"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Beidzās)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6148,7 +6148,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Pēdējo reizi lasīta: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6167,24 +6167,24 @@ msgstr "Šis ir tērzēšanas sākums. Agrāk par šo vietu vēsturē ziņu nav.
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Rādīt video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Skaļums"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimizēt"
|
||||
|
||||
112
po/nl/neochat.po
112
po/nl/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 12:48+0100\n"
|
||||
"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -1038,7 +1038,7 @@ msgstr "Registratie is uitgeschakeld op deze server."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Laden"
|
||||
@@ -1070,7 +1070,7 @@ msgid "Loading…"
|
||||
msgstr "Laden…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1702,7 +1702,7 @@ msgstr "Eigen emoji's"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Antwoord wordt geladen"
|
||||
@@ -1962,7 +1962,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 heeft u uitgenodigd"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1971,18 +1971,18 @@ msgstr ""
|
||||
"Bestand is te groot om te downloaden.<br />Neem contact op met uw matrix-"
|
||||
"serverbeheerder voor ondersteuning."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Geen identiteitsserver geconfigureerd"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Aanmaken van room is mislukt: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Ruimte aanmaken is mislukt: %1"
|
||||
@@ -5896,86 +5896,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Selecteer toe te voegen parameter"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Verbergen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Delen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Voltooid"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Landcode voor nieuw telefoonnummer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nieuw e-mailadres:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nieuw telefoonnummer:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "We hebben u een e-mail gestuurd"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "We hebben u een tekstbericht gestuurd"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Volg de instructies daar en klik daarna op de onderstaande knop"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "De ingevoerde e-mail is niet geldig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Het ingevoerde telefoonnummer is niet geldig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Verkeerd wachtwoord ingevoerd"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5984,7 +5984,7 @@ msgstr ""
|
||||
"De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies "
|
||||
"daar en klik daarna op de onderstaande knop"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5993,25 +5993,25 @@ msgstr ""
|
||||
"De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de "
|
||||
"instructies daar en klik daarna op de onderstaande knop"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Toevoegen"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Terug"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Volg de instructies daar en klik daarna op de bovenstaande knop"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6020,7 +6020,7 @@ msgstr ""
|
||||
"De e-mail is niet geverifieerd. Ga naar de e-mail en volg de instructies "
|
||||
"daar en klik daarna op de bovenstaande knop"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6029,35 +6029,35 @@ msgstr ""
|
||||
"De telefoonnummer is niet geverifieerd. Ga naar het tekstbericht en volg de "
|
||||
"instructies daar en klik daarna op de bovenstaande knop"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 is verificatie van een gebruiker gestart"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Bewerking bevestigen"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Bericht in discussie posten"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Naar klembord kopiëren"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximaliseren"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6066,20 +6066,20 @@ msgstr ""
|
||||
"Dit bericht is versleuteld en de verzender heeft de sleutel niet gedeeld met "
|
||||
"dit apparaat."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Meer gebeurtenissen ophalen"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Downloaden"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6087,13 +6087,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Bestand openen"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6122,60 +6122,60 @@ msgstr "Inchecktijd: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Uitchecktijd: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Afbeelding tonen"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Naar KDE Itinerary zenden"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Voorbeeld verwijderen"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Voorbeeld invouwen"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Voorbeeld uitvouwen"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL voorbeeld laden"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Extern openen"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Gebaseerd op stem van %1 gebruiker"
|
||||
msgstr[1] "Gebaseerd op stemmen van %1 gebruikers"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Beëindigd)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6187,7 +6187,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Laatst gelezen: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6207,24 +6207,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Video tonen"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximaliseren"
|
||||
|
||||
112
po/nn/neochat.po
112
po/nn/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-10-27 15:01+0100\n"
|
||||
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
|
||||
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
|
||||
@@ -1038,7 +1038,7 @@ msgstr "Denne tenaren er stengd for nye registreringar."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Hentar inn"
|
||||
@@ -1069,7 +1069,7 @@ msgid "Loading…"
|
||||
msgstr "Lastar …"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1700,7 +1700,7 @@ msgstr "Eigne emojiar"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Hentar inn svar"
|
||||
@@ -1964,25 +1964,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 inviterte deg til eit rom"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr "Ta kontakt med administratoren av Matrix-tenaren for brukarstøtte."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Ingen identitetstenar sett opp"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Feil ved romregistrering: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Feil ved registrering av område: %1"
|
||||
@@ -5892,86 +5892,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Gøym"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Del"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Fullført"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Landskode for nytt telefonnummer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Ny e-postadresse:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nytt telefonnummer:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Me har sendt deg ein e-post"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Me har sendt deg ei tekstmelding"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Følg instruksjonane der, og trykk så på knappen nedanfor."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "E-postadressa du skreiv inn, er ikkje gyldig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Telefonnummeret du skreiv inn, er ikkje gyldig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Du oppgav feil passord"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5980,7 +5980,7 @@ msgstr ""
|
||||
"E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane "
|
||||
"der, og trykk så på knappen nedanfor."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5989,25 +5989,25 @@ msgstr ""
|
||||
"Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg "
|
||||
"instruksjonane der, og trykk så på knappen nedanfor."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Legg til"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Tilbake"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Følg instruksjonane der, og trykk så på knappen ovanfor."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6016,7 +6016,7 @@ msgstr ""
|
||||
"E-postadressa er ikkje stadfesta. Sjekk e-posten din, følg instruksjonane "
|
||||
"der, og trykk så på knappen ovanfor."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6025,35 +6025,35 @@ msgstr ""
|
||||
"Telefonnummeret er ikkje stadfesta. Sjekk tekstmeldingane dine, følg "
|
||||
"instruksjonane der, og trykk så på knappen ovanfor."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 starta brukarstadfesting"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Stadfest redigering"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Skriv innlegg i tråden"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopier til utklippstavla"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimer"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6062,20 +6062,20 @@ msgstr ""
|
||||
"Meldinga er kryptert, og avsendaren har ikkje delt krypteringsnøkkelen med "
|
||||
"denne eininga."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Last ned"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6083,13 +6083,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Opna fil"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6118,60 +6118,60 @@ msgstr "Innsjekk etter: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Utsjekk før: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Vis bilete"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Send til KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Fjern førehandsvising"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Krymp førehandsvising"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Utvid førehandsvising"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Lastar førehandsvising av nettside"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Opna eksternt"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Basert på avrøysting for %1 brukar"
|
||||
msgstr[1] "Basert på avstemming blant %1 brukarar"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(avslutta)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6184,7 +6184,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Sist lese: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6203,24 +6203,24 @@ msgstr "Dette er starten på praten. Det finst ingen eldre meldingar."
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Vis video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Lydstyrke"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimer"
|
||||
|
||||
112
po/pa/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2021-12-31 11:06-0800\n"
|
||||
"Last-Translator: A S Alam <aalam@satluj.org>\n"
|
||||
"Language-Team: Punjabi <punjabi-users@lists.sf.net>\n"
|
||||
@@ -1129,7 +1129,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading"
|
||||
msgid "Loading"
|
||||
@@ -1163,7 +1163,7 @@ msgid "Loading…"
|
||||
msgstr "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1869,7 +1869,7 @@ msgstr "ਕਸਟਮ"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading"
|
||||
msgid "Loading reply"
|
||||
@@ -2173,26 +2173,26 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 ਨੇ ਤੁਹਾਨੂੰ ਰੂਮ ਲਈ ਸੱਦਾ ਦਿੱਤਾ"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "ਰੂਮ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ: \"%1\""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6380,46 +6380,46 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "ਹਟਾਓ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "ਸੰਖੇਪ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "ਰੱਦ ਕਰੋ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "their refers to a singular user"
|
||||
#| msgid "cleared their display name"
|
||||
@@ -6427,68 +6427,68 @@ msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "ਆਪਣੇ ਵੇਖਾਉਣ ਵਾਲੇ ਨਾਂ ਮਿਟਾਏ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "ਮੈਂਬਰ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "ਸੁਨੇਹਾ ਭੇਜੋ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "ਗਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "ਜੋੜੋ"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6496,80 +6496,80 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "ਪਿੱਛੇ"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew %1's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 ਲਈ ਸੱਦਾ ਵਾਪਸ ਲਵੋ"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "ਤਸਦੀਕ ਕਰੋ"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No rooms found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "ਕੋਈ ਰੂਮ ਨਹੀਂ ਲੱਭਿਆ"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:inmenu"
|
||||
#| msgid "Copy address to clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "ਸਿਰਨਾਵਾਂ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰੋ"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "ਡਾਊਨਲੋਡ"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6577,13 +6577,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "ਫਾਇਲ ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6612,63 +6612,63 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "cleared the room name"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "ਰੂਮ ਦਾ ਨਾਂ ਮਿਟਾਇਆ"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "ਡਿਵਾਈਸ ਨੂੰ ਹਟਾਓ"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "ਬਾਹਰ ਖੋਲ੍ਹੋ"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6681,7 +6681,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "ਆਖਰੀ ਪੜ੍ਹੇ: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6701,25 +6701,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "ਵੀਡੀਓ"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "ਵੀਡੀਓ"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/pl/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-23 12:33+0100\n"
|
||||
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
|
||||
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1040,7 +1040,7 @@ msgstr "Rejestrowanie się na ten serwer jest wyłączone."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Wczytywanie"
|
||||
@@ -1071,7 +1071,7 @@ msgid "Loading…"
|
||||
msgstr "Wczytywanie…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1701,7 +1701,7 @@ msgstr "Własne emoji"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Wczytywanie odpowiedzi"
|
||||
@@ -1964,7 +1964,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 zaprosił cię"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1973,18 +1973,18 @@ msgstr ""
|
||||
"Plik jest zbyt duży do pobrania.<br /> Napisz do obsługi twojego serwera "
|
||||
"Matriksa z prośbą o pomoc."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Nie ustawiono żadnego serwera tożsamości"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Nie udało się utworzyć pokoju: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Nie udało się utworzyć przestrzeni: %1"
|
||||
@@ -5888,87 +5888,87 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Wybierz parametr do dodania"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Ukryj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Udostępnij"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Ukończone"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Kod kraju dla nowego numeru telefonu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Nowy adres pocztowy:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nowy numer telefonu:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Wysłaliśmy ci wiadomość tekstową"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Wysłaliśmy ci wiadomość tekstową"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
"%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Wpisany adres pocztowy jest nieprawidłowy"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Wpisany numer telefonu jest nieprawidłowy"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Wpisano złe hasło"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5977,7 +5977,7 @@ msgstr ""
|
||||
"Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i "
|
||||
"przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5986,26 +5986,26 @@ msgstr ""
|
||||
"Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i "
|
||||
"przejdź przez wypisane tam kroki, a na końcu naciśnij poniższy przycisk."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Wstecz"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
"%1. Przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6014,7 +6014,7 @@ msgstr ""
|
||||
"Adres pocztowy nie został potwierdzony. Wróć do wiadomości pocztowej i "
|
||||
"przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6023,35 +6023,35 @@ msgstr ""
|
||||
"Numer telefonu nie został potwierdzony. Wróć do wiadomości tekstowej i "
|
||||
"przejdź przez wypisane tam kroki, a na końcu naciśnij powyższy przycisk."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 rozpoczął sprawdzanie użytkownika"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Potwierdź zmianę"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Wyślij wiadomość w wątku"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Skopiuj do schowka"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Zmaksymalizuj"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6060,20 +6060,20 @@ msgstr ""
|
||||
"Ta wiadomość jest zaszyfrowana, a jej nadawca nie udostępnił klucza temu "
|
||||
"urządzeniowi."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Pobierz więcej wydarzeń"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6081,13 +6081,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Otwórz plik"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6116,47 +6116,47 @@ msgstr "Czas zameldowania: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Czas wymeldowania: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Pokaż obrazek"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Wyślij do KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Usuń podgląd"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Skurcz podgląd"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Rozpręż podgląd"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Wczytywanie podglądu adresu URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Otwórz zewnętrznie"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6164,13 +6164,13 @@ msgstr[0] "Na podstawie głosu %1 użytkownika"
|
||||
msgstr[1] "Na podstawie głosów %1 użytkowników"
|
||||
msgstr[2] "Na podstawie głosów %1 użytkowników"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Zakończone)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6182,7 +6182,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Ostatnio odczytywany: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6202,24 +6202,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Per. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Wideo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Pokaż wideo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Głośność"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Zmaksymalizuj"
|
||||
|
||||
112
po/pt/neochat.po
112
po/pt/neochat.po
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2023-06-24 10:17+0100\n"
|
||||
"Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
|
||||
"Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
|
||||
@@ -1128,7 +1128,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1161,7 +1161,7 @@ msgid "Loading…"
|
||||
msgstr "A carregar…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1815,7 +1815,7 @@ msgstr "Próprios Emojis"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2148,7 +2148,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 convidou-o para uma sala"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Contact your matrix server administrator for support."
|
||||
msgid ""
|
||||
@@ -2157,18 +2157,18 @@ msgid ""
|
||||
msgstr ""
|
||||
"Contacte o administrador do seu servidor de Matrix para obter algum suporte."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Não foi possível criar a sala: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Não foi possível criar o espaço: %1"
|
||||
@@ -6349,117 +6349,117 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Partilhar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Compacto"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm new display name"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Confirmar o novo nome visível"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Membros"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "sent a message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "enviou uma mensagem"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "O texto introduzido não é um URL válido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The entered text is not a valid url"
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "O texto introduzido não é um URL válido"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Foi introduzida uma senha errada"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Adicionar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6467,59 +6467,59 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew a user's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "retirou o convite de um utilizador"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmar a edição"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No results found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Não foram encontrados resultados"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Copy room ID to clipboard"
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar o ID da sala para a área de transferência"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Maximize"
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6528,20 +6528,20 @@ msgstr ""
|
||||
"Esta mensagem está encriptada e o remetente não partilhou a chave com este "
|
||||
"dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Transferir"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6549,13 +6549,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Abrir o Ficheiro"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6584,63 +6584,63 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Set Image"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Definir uma Imagem"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Remover o dispositivo"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Fechar a antevisão"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandir a antevisão"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "A carregar a antevisão do URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Abrir Externamente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Com base nos votos de %1 utilizador"
|
||||
msgstr[1] "Com base nos votos de %1 utilizadores"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Terminada)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6653,7 +6653,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última leitura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6673,25 +6673,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-08-03 00:01-0300\n"
|
||||
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
|
||||
@@ -1139,7 +1139,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1172,7 +1172,7 @@ msgid "Loading…"
|
||||
msgstr "Carregando..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1883,7 +1883,7 @@ msgstr "Emoji personalizado"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2197,26 +2197,26 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 convidou você para uma sala"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Criação de sala falhou: \"%1\""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6420,43 +6420,43 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Compartilhar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Completo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "their refers to a singular user"
|
||||
#| msgid "cleared their display name"
|
||||
@@ -6464,121 +6464,121 @@ msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "limpou seu nome de exibição"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Membros"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a message…"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Enviar uma mensagem…"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Senha digitada errada"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Adicionar"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 iniciou a verificação de usuário"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Confirmar edição"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No rooms found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Nenhuma sala encontrada"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar para a área de transferência"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6587,20 +6587,20 @@ msgstr ""
|
||||
"Esta mensagem está criptografada e o remetente não compartilhou a chave com "
|
||||
"este dispositivo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Baixar"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6608,13 +6608,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Abrir arquivo"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6643,62 +6643,62 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "cleared the room name"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "limpou o nome da sala"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Remover visualização"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open Externally"
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Abrir externamente"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6711,7 +6711,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Última leitura: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6731,25 +6731,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Vídeo"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/ru/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-10-31 10:08+0300\n"
|
||||
"Last-Translator: Olesya Gerasimenko <translation-team@basealt.ru>\n"
|
||||
"Language-Team: Basealt Translation Team\n"
|
||||
@@ -1060,7 +1060,7 @@ msgstr "Регистрация пользователей отключена н
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Загрузка"
|
||||
@@ -1092,7 +1092,7 @@ msgid "Loading…"
|
||||
msgstr "Загрузка..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1727,7 +1727,7 @@ msgstr "Свои эмодзи"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Загрузка ответа"
|
||||
@@ -1994,25 +1994,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 пригласил вас в комнату"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr "Обратитесь за помощью к администратору сервера Matrix."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Не настроен сервер профилей"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Не удалось создать комнату: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Не удалось создать пространство: %1"
|
||||
@@ -6012,65 +6012,65 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Скрыть"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Опубликовать"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Завершить"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Отменить"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Код страны для нового телефонного номера"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Новый адрес электронной почты"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Новый телефонный номер"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Вам отправлено письмо"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Вам отправлено текстовое сообщение"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
@@ -6078,22 +6078,22 @@ msgstr ""
|
||||
"%1. Выполните приведённые инструкции и затем нажмите расположенную ниже "
|
||||
"кнопку"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Введённый адрес электронной почты не является допустимым"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Введённый телефонный номер не является допустимым"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Введён неверный пароль"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6102,7 +6102,7 @@ msgstr ""
|
||||
"Письмо не было проверено. Перейдите к письму, выполните приведённые "
|
||||
"инструкции и затем нажмите расположенную ниже кнопку"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6111,19 +6111,19 @@ msgstr ""
|
||||
"Телефонный номер не был проверен. Перейдите к текстовому сообщению, "
|
||||
"выполните приведённые инструкции и затем нажмите расположенную ниже кнопку"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Добавить"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Назад"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
@@ -6131,7 +6131,7 @@ msgstr ""
|
||||
"%1. Выполните приведённые инструкции и затем нажмите расположенную выше "
|
||||
"кнопку"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6140,7 +6140,7 @@ msgstr ""
|
||||
"Письмо не было проверено. Перейдите к письму, выполните приведённые "
|
||||
"инструкции и затем нажмите расположенную выше кнопку"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6149,35 +6149,35 @@ msgstr ""
|
||||
"Телефонный номер не был проверен. Перейдите к текстовому сообщению, "
|
||||
"выполните приведённые инструкции и затем нажмите расположенную выше кнопку"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 начал(а) проверку пользователя"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Подтвердить изменение"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Не найдено ни одного сообщения"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Скопировать в буфер обмена"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Развернуть"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6186,20 +6186,20 @@ msgstr ""
|
||||
"Это сообщение зашифровано, и отправитель не поделился ключом с этим "
|
||||
"устройством."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Загрузить"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6207,13 +6207,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Открыть файл"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6242,47 +6242,47 @@ msgstr "Время регистрации: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Время регистрации отъезда: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Установить изображение"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Передать в KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Удалить область предварительного просмотра"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Уменьшить область предварительного просмотра"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Увеличить область предварительного просмотра"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Загрузка предпросмотра содержимого по ссылке"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Открывать во внешней программе"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6291,13 +6291,13 @@ msgstr[1] "Основано на голосах %1 пользователей"
|
||||
msgstr[2] "Основано на голосах %1 пользователей"
|
||||
msgstr[3] "Основано на голосе %1 пользователя"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Завершено)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6310,7 +6310,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Последнее сообщение прочитано: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6330,24 +6330,24 @@ msgstr "Это начало чата. Более ранних сообщений
|
||||
msgid "Pl. %1"
|
||||
msgstr "Пл. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Видео"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Видео"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Громкость"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Развернуть"
|
||||
|
||||
112
po/sa/neochat.po
112
po/sa/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-12-29 23:07+0530\n"
|
||||
"Last-Translator: kali <shreekantkalwar@gmail.com>\n"
|
||||
"Language-Team: Sanskrit <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1036,7 +1036,7 @@ msgstr "अस्मिन् सर्वरे पञ्जीकरणं न
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "लोडिंग"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Loading…"
|
||||
msgstr "लोडिंग..."
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1698,7 +1698,7 @@ msgstr "स्वकीय इमोजी"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "उत्तरं लोडयति"
|
||||
@@ -1953,7 +1953,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 भवन्तं कक्षे आमन्त्रितवान्"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1962,18 +1962,18 @@ msgstr ""
|
||||
"सञ्चिका अतीव विशाला डाउनलोड् कर्तुं।<br /> समर्थनार्थं स्वस्य matrix server प्रशासकेन सह "
|
||||
"सम्पर्कं कुर्वन्तु ।"
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "कोऽपि परिचयसर्वरः विन्यस्तः नास्ति"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "कक्षनिर्माणं विफलम्: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "अन्तरिक्षनिर्माणं विफलम्: %1"
|
||||
@@ -5849,86 +5849,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "जोड्यताम् परिमाणः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "गोपयतु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "संविभागः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "अपाकरोति"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "पूर्णं करोतु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "निरसयतु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "नूतनस्य दूरभाषसङ्ख्यायाः कृते देशसङ्केतः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "नवीनं ईमेल-सङ्केतं :"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "नवीनं दूरभाषसङ्ख्या :"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "वयं भवद्भ्यः ईमेल प्रेषितवन्तः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "वयं भवद्भ्यः पाठसन्देशं प्रेषितवन्तः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "प्रविष्टं ईमेल वैधं नास्ति"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "प्रविष्टः दूरभाषसङ्ख्या वैधः नास्ति"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "अशुद्धगुप्तशब्दः प्रविष्टः"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5936,7 +5936,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं बटनं नुदन्तु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5945,25 +5945,25 @@ msgstr ""
|
||||
"दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशे गत्वा तत्र निर्देशान् अनुसृत्य ततः अधोलिखितं "
|
||||
"बटनं नुदन्तु"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "संयोजयति"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "पृष्ठभागः"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5971,7 +5971,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"ईमेल सत्यापितं न कृतम्। कृपया ईमेल मध्ये गत्वा तत्र निर्देशान् अनुसृत्य ततः उपरि बटनं नुदन्तु"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5980,55 +5980,55 @@ msgstr ""
|
||||
"दूरभाषसङ्ख्या सत्यापितं नास्ति। कृपया पाठसन्देशं गत्वा तत्रत्याः निर्देशान् अनुसृत्य ततः उपरि "
|
||||
"स्थापितं बटनं नुदन्तु"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 इत्यनेन उपयोक्तृसत्यापनम् आरब्धम्"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "सम्पादनस्य पुष्टिं कुर्वन्तु"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "सूत्रे सन्देशं स्थापयन्तु"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "क्लिप्बोर्ड् प्रति प्रतिलिख्यताम्"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "अधिकतमं कुरुत"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "एषः सन्देशः गुप्तः अस्ति तथा च प्रेषकेन अस्मिन् यन्त्रेण सह कुञ्जी न साझा कृता ।"
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "अवाहरन"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6036,13 +6036,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "सञ्चिकां उद्घाटयन्तु"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6071,60 +6071,60 @@ msgstr "चेक-इन समयः %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "चेक-आउट् समयः %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "चित्रं दर्शयतु"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "KDE यात्रासूचीं प्रेषयन्तु"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "पूर्वावलोकनं निष्कासयन्तु"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "पूर्वावलोकनं संकोचयतु"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "पूर्वावलोकनं विस्तारयतु"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL पूर्वावलोकनं लोड् भवति"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "बाह्यरूपेण उद्घाटयतु"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "%1 उपयोक्तुः मतानाम् आधारेण"
|
||||
msgstr[1] "%1 उपयोक्तृणां मतानाम् आधारेण"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(समाप्तः)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6137,7 +6137,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "अन्तिमपठनं: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6156,24 +6156,24 @@ msgstr "इति चटस्य आरम्भः । अस्मात्
|
||||
msgid "Pl. %1"
|
||||
msgstr "प्ल. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "विडिओ"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "विडियो दर्शयतु"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "मात्रा"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "अधिकतमं कुरुत"
|
||||
|
||||
112
po/sk/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-11-10 11:41+0100\n"
|
||||
"Last-Translator: Roman Paholík <wizzardsk@gmail.com>\n"
|
||||
"Language-Team: KDE-SK\n"
|
||||
@@ -1129,7 +1129,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1161,7 +1161,7 @@ msgid "Loading…"
|
||||
msgstr "Načítava sa…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1874,7 +1874,7 @@ msgstr "Vlastné"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2183,26 +2183,26 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "pozval %1 do miestnosti"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Vytvorenie miestnosti zlyhalo: \"%1\""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Room creation failed: \"%1\""
|
||||
msgid "Space creation failed: %1"
|
||||
@@ -6345,45 +6345,45 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Skryť"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Share"
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Zdieľať"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Odstrániť"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Compact"
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Dokončené"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "their refers to a singular user"
|
||||
#| msgid "cleared their display name"
|
||||
@@ -6391,67 +6391,67 @@ msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "vymazali svoje zobrazované meno"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Members"
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Členovia"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Odoslať správu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Wrong password entered"
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Zadané nesprávne heslo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Pridať"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, fuzzy, kde-format
|
||||
#| msgctxt "@action:button"
|
||||
#| msgid "Back"
|
||||
@@ -6459,78 +6459,78 @@ msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Späť"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "withdrew %1's invitation"
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "stiahol pozvanie %1"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Confirm"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Potvrdiť"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No rooms found"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Žiadne miestnosti neboli nájdené"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, fuzzy, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopírovať do schránky"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovať"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Stiahnuť"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6538,13 +6538,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Otvoriť súbor"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6573,48 +6573,48 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Zobraziť obrázok"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove device"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Odstrániť zariadenie"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Otvoriť externe"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6622,13 +6622,13 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "ukončené"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "React"
|
||||
msgctxt "@button"
|
||||
@@ -6641,7 +6641,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Naposledy prečítané: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Reply"
|
||||
msgctxt "@action:button"
|
||||
@@ -6661,24 +6661,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Zobraziť video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, fuzzy, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Hlasitosť"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovať"
|
||||
|
||||
112
po/sl/neochat.po
112
po/sl/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 07:39+0100\n"
|
||||
"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
|
||||
"Language-Team: Slovenian <lugos-slo@lugos.si>\n"
|
||||
@@ -1043,7 +1043,7 @@ msgstr "Registracija je onemogočena na tem strežniku."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Nalaganje"
|
||||
@@ -1075,7 +1075,7 @@ msgid "Loading…"
|
||||
msgstr "Nalaganje …"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1705,7 +1705,7 @@ msgstr "Lastni čustvenčki"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Nalaganje odgovora"
|
||||
@@ -1966,7 +1966,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 vas je povabil"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1975,18 +1975,18 @@ msgstr ""
|
||||
"Datoteka je prevelika za prenos.<br />Za podporo se obrnite na skrbnika "
|
||||
"strežnika matrix."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Ni konfigurirana identiteta strežnika"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Ustvarjanje sobe ni uspelo: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Ustvarjanje prostora ni uspelo: %1"
|
||||
@@ -5884,86 +5884,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Izberite parameter za dodajanje"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Skrij"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Deli"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Odstrani"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Dokončano"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Koda države za novo telefonsko številko"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Novi naslov e-pošte:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nova telefonska številka:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Poslali smo vam elektronsko sporočilo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Poslali smo vam besedilno sporočilo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Sledite navodilom in nato kliknite na gumb spodaj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Vneseni naslov e-pošte ni veljaven"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Vnesena telefonska številka ni veljavna"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Vneseno napačno geslo"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5972,7 +5972,7 @@ msgstr ""
|
||||
"E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim "
|
||||
"navodilom ter nato kliknite spodnji gumb"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5981,25 +5981,25 @@ msgstr ""
|
||||
"Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in "
|
||||
"sledite tamkajšnjim navodilom ter nato kliknite na gumb spodaj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Nazaj"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Sledite navodilom in nato kliknite na gumb zgoraj"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6008,7 +6008,7 @@ msgstr ""
|
||||
"E-pošta ni bila preverjena. Pojdite v e-pošto in sledite tamkajšnjim "
|
||||
"navodilom ter nato kliknite gumb zgoraj"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6017,35 +6017,35 @@ msgstr ""
|
||||
"Telefonska številka ni bila preverjena. Pojdite na besedilno sporočilo in "
|
||||
"sledite tamkajšnjim navodilom ter nato kliknite na gumb zgoraj"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 je začel preverjanje uporabnika"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Potrdi urejanje"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Objavi sporočilo v niti"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiraj na odložišče"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Razpni"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6053,20 +6053,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"To sporočilo je šifrirano in pošiljatelj še ni delil ključa s to napravo."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Pridobi več dogodkov"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Prenos"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6074,13 +6074,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Odpri datoteko"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6109,47 +6109,47 @@ msgstr "Čas prijave: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Check-out time: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Prikaži sliko"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Pošlji v KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Odstrani predogled"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Skrči predogled"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Razširi predogled"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Nalaganje predogleda URL"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Odpri od zunaj"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6158,13 +6158,13 @@ msgstr[1] "Glede na glas %1 uporabnika"
|
||||
msgstr[2] "Glede na glasova %1 uporabnikov"
|
||||
msgstr[3] "Glede na glasove %1 uporabnikov"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Končano)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6176,7 +6176,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Nazadnje prebrano: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6196,24 +6196,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Prikaži video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Glasnost"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Razpni"
|
||||
|
||||
112
po/sv/neochat.po
112
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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-28 19:43+0100\n"
|
||||
"Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n"
|
||||
"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1036,7 +1036,7 @@ msgstr "Registrering är inaktiverad på servern."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Läser in"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Loading…"
|
||||
msgstr "Läser in…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1700,7 +1700,7 @@ msgstr "Egna emoji"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Läser in svar"
|
||||
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 bjöd in dig"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1966,18 +1966,18 @@ msgstr ""
|
||||
"Filen är för stor för att ladda ner.<br />Kontakta matrix-"
|
||||
"serveradministratören för support."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Ingen identitetsserver inställd"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Misslyckades skapa rum: \"%1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Misslyckades skapa utrymme: %1"
|
||||
@@ -5872,86 +5872,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Välj parameter att lägga till"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Dölj"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Dela"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Ta bort"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Komplettera"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Landskod för nytt telefonnummer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Ny e-postadress"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Nytt telefonnummer"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Vi skickade e-post till dig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Vi skickade ett textmeddelande till dig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Följ instruktionerna där och klicka sedan på knappen nedan."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Den angivna e-postadressen är inte giltig"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Det angivna telefonnumret är inte giltigt"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Felaktigt lösenord inmatat"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5960,7 +5960,7 @@ msgstr ""
|
||||
"E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ "
|
||||
"instruktionerna där och klicka sedan på knappen nedan."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5969,25 +5969,25 @@ msgstr ""
|
||||
"Telefonnumret har inte verifierats. Gå till textmeddelandet och följ "
|
||||
"instruktionerna där och klicka sedan på knappen nedan."
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Lägg till"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Tillbaka"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Följ instruktionerna där och klicka sedan på knappen ovan."
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5996,7 +5996,7 @@ msgstr ""
|
||||
"E-postmeddelandet har inte verifierats. Gå till e-postmeddelandet och följ "
|
||||
"instruktionerna där och klicka sedan på knappen ovan."
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6005,35 +6005,35 @@ msgstr ""
|
||||
"Telefonnumret har inte verifierats. Gå till textmeddelandet och följ "
|
||||
"instruktionerna där och klicka sedan på knappen ovan."
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 startade en användarverifikation"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Bekräfta redigering"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Skicka meddelande i tråd"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiera till klippbordet"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Maximera"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6042,20 +6042,20 @@ msgstr ""
|
||||
"Meddelandet är krypterat och avsändaren har inte delat nyckeln med den här "
|
||||
"enheten."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Hämta fler händelser"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Ladda ner"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6063,13 +6063,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Öppna fil"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6098,60 +6098,60 @@ msgstr "Incheckningstid: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Utcheckningstid: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Visa bild"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Skicka till KDE-resplan"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Ta bort förhandsgranskning"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Krymp förhandsgranskning"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Expandera förhandsgranskning"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Läser in webbadressförhandsgranskning"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Öppna externt"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "Baserat på röster av %1 användare"
|
||||
msgstr[1] "Baserat på röster av %1 användare"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Avslutad)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6163,7 +6163,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Senast läst: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6184,24 +6184,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Visa video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Volym"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Maximera"
|
||||
|
||||
112
po/ta/neochat.po
112
po/ta/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: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-16 16:26+0530\n"
|
||||
"Last-Translator: Kishore G <kishore96@gmail.com>\n"
|
||||
"Language-Team: Tamil <kde-i18n-doc@kde.org>\n"
|
||||
@@ -1034,7 +1034,7 @@ msgstr "இச்சேவையகத்தில் கணக்குரு
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "ஏற்றப்படுகிறது…"
|
||||
@@ -1066,7 +1066,7 @@ msgid "Loading…"
|
||||
msgstr "ஏற்றப்படுகிறது…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1698,7 +1698,7 @@ msgstr "சொந்த முகவடிகள்"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "பதில் ஏற்றப்படுகிறது…"
|
||||
@@ -1956,7 +1956,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 உங்களை ஒர் அரங்குக்கு வரவழைத்தார்"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1965,18 +1965,18 @@ msgstr ""
|
||||
"கோப்பு பதிவிறக்கக்கூடியதைவிட பெரிதாக உள்ளது.<br />உதவிக்கு உங்கள் மேட்ரிக்ஸு சேவையக "
|
||||
"நிர்வாகியை தொடர்புகொள்ளவும்."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "எந்த அடையாளச் சேவையகமும் அமைக்கப்பட்டிருக்கவில்லை"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "அரங்கு உருவாக்கம் தோல்வியடைந்தது: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "இட உருவாக்கம் தோல்வியடைந்தது: %1"
|
||||
@@ -5848,86 +5848,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "சேர்க்க வேண்டிய அம்சம்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "மறை"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "பகிர்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "நீக்கு"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "நிரப்பு"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "ரத்து செய்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "புதிய தொலைபேசி எண்ணுக்கான சர்வதேச குறியெண்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "புதிய மின்னஞ்சல் முகவரி:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "புதிய தொலைபேசி எண்:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "உங்களுக்கு அஞ்சலனுப்பியுள்ளோம்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "உங்களுக்கு குறுஞ்செய்தி அனுப்பியுள்ளோம்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. அதிலுள்ளவாறு செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "உள்ளிட்ட மின்னஞ்சல் முகவரி செல்லுபடியாகாதது"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "உள்ளிட்ட தொலைபேசி எண் செல்லுபடியாகாதது"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "தவறான கடவுச்சொல் உள்ளிடப்பட்டது"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5936,7 +5936,7 @@ msgstr ""
|
||||
"இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு "
|
||||
"செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5945,25 +5945,25 @@ msgstr ""
|
||||
"இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு "
|
||||
"செய்தபின் கீழுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "சேர்"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "பின்னே"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. அதிலுள்ளவாறு செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5972,7 +5972,7 @@ msgstr ""
|
||||
"இந்த மின்னஞ்சல் முகவரி உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட அஞ்சலிலுள்ளவாறு "
|
||||
"செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5981,35 +5981,35 @@ msgstr ""
|
||||
"இந்த தொலைபேசி எண் உறுதிசெய்யப்படாதது. உங்களுக்கு அனுப்பப்பட்ட குறுஞ்செய்தியிலுள்ளவாறு "
|
||||
"செய்தபின் மேலுள்ள பட்டனை அழுத்தவும்"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 பயனர் உறுதிப்பாட்டைத் துவக்கினார்"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "திருத்தத்தை உறுதிசெய்"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "தொடரில் தகவலை இடு"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "பிடிப்புப்பலகைக்கு நகலெடு"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "அதிகபட்ச பெரிதாக்கு"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6017,20 +6017,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"இந்த செய்தி மறையாக்கம் செய்யப்பட்டுள்ளது, ஆனால் அனுப்புநர் இச்சாதனத்துடன் சாவியை பகிரவில்லை."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "கூடுதல் நிகழ்வுகளை பெறு"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "பதிவிறக்கு"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6038,13 +6038,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "கோப்பை திற"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6073,60 +6073,60 @@ msgstr "நுழைவுப்பதிவுக்கான நேரம்:
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "வெளியேற்றப்பதிவுக்கான நேரம்: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "படத்தைக் காட்டு"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "KDE Itinerary-க்கு அனுப்பு"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "முன்னோட்டத்தை நீக்கு"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "முன்னோட்டத்தை சிறிதாக்கு"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "முன்னோட்டத்தை பெரிதாக்கு"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "முகவரியின் முன்னோட்டம் ஏற்றப்படுகிறது"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "வெளியமைவாகத் திற"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "%1 பயனரின் வாக்கின் அடிப்படையில்"
|
||||
msgstr[1] "%1 பயனர்களின் வாக்குகளின் அடிப்படையில்"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(முடிந்துள்ளது)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6138,7 +6138,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "கடைசியாக படித்தது: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6157,24 +6157,24 @@ msgstr "உரையாடலின் துவக்கம் இது. இ
|
||||
msgid "Pl. %1"
|
||||
msgstr "நடைமேடை %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "நிகழ்படம்"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "நிகழ்படத்தை காட்டு"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "ஒலியளவு"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "அதிகபட்ச பெரிதாக்கு"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-01-08 19:47-0500\n"
|
||||
"Last-Translator: Weblate Admin <admin@example.com>\n"
|
||||
"Language-Team: Toki Pona <http://weblate.blackquill.cc/projects/ante-toki-pi-"
|
||||
@@ -1082,7 +1082,7 @@ msgstr ""
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading"
|
||||
@@ -1115,7 +1115,7 @@ msgid "Loading…"
|
||||
msgstr "mi pali…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1774,7 +1774,7 @@ msgstr "sitelen Emosi sina"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Loading…"
|
||||
msgid "Loading reply"
|
||||
@@ -2054,7 +2054,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Contact your matrix server administrator for support."
|
||||
msgid ""
|
||||
@@ -2062,18 +2062,18 @@ msgid ""
|
||||
"for support."
|
||||
msgstr "o toki tawa lawa sina pi ilo Matrix."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr ""
|
||||
@@ -6081,186 +6081,186 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "o ante e toki"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Cancel"
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "o ala"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "o pana e toki"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add"
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "o lon e nimi len luka"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Configure"
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "o ante e lawa"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send message"
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "o pana e toki"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "toki ni li len. jan pana li pana ala e ken pi lukin len tawa ilo ni."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "o kama jo"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6268,13 +6268,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "o open e lipu ni"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6303,49 +6303,49 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Ban this user"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "o weka wawa e jan ni"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Edit Message"
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "o ante e toki"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6354,13 +6354,13 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6372,7 +6372,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6391,25 +6391,25 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "sitelen tawa"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Video"
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "sitelen tawa"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr ""
|
||||
|
||||
112
po/tr/neochat.po
112
po/tr/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 15:14+0300\n"
|
||||
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
|
||||
"Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
|
||||
@@ -1039,7 +1039,7 @@ msgstr "Bu sunucuda kayıt işlemi devre dışı."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Yükleniyor"
|
||||
@@ -1070,7 +1070,7 @@ msgid "Loading…"
|
||||
msgstr "Yükleniyor…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1701,7 +1701,7 @@ msgstr "Kendi Emojileriniz"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Yanıt yükleniyor"
|
||||
@@ -1957,7 +1957,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1, sizi davet etti"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1966,18 +1966,18 @@ msgstr ""
|
||||
"Dosya indirmek için pek büyük.<br />Destek için Matrix sunucusu yöneticisine "
|
||||
"ulaşın."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Yapılandırılmış kimlik sunucusu yok"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Oda oluşturulamadı: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Alan oluşturma başarısız: %1"
|
||||
@@ -5867,86 +5867,86 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Eklenecek Parametre Seç"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Gizle"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Paylaş"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Kaldır"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Tam"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "İptal"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Yeni telefon numarası için ülke kodu"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Yeni e-posta adresi:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Yeni telefon numarası:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Size bir e-posta gönderdik"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Size bir SMS gönderdik"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1. Oradaki yönergeleri izleyin ve aşağıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Girilen e-posta geçerli değil"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Girilen telefon numarası geçerli değil"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Doğru olmayan bir parola girildi"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5955,7 +5955,7 @@ msgstr ""
|
||||
"E-posta doğrulanmadı. Postanızı açıp oradaki yönergeleri izleyin ve "
|
||||
"sonrasında aşağıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -5964,25 +5964,25 @@ msgstr ""
|
||||
"Telefon numarası doğrulanmadı. Gelen SMS’e gidin ve oradaki yönergeleri "
|
||||
"izleyip aşağıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Ekle"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Geri"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1. Oradaki yönergeleri izleyin ve yukarıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -5991,7 +5991,7 @@ msgstr ""
|
||||
"E-posta doğrulanmadı. Postanızı açıp oradaki yönergeleri izleyin ve "
|
||||
"sonrasında yukarıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6000,55 +6000,55 @@ msgstr ""
|
||||
"Telefon numarası doğrulanmadı. Gelen SMS’e gidin ve oradaki yönergeleri "
|
||||
"izleyip yukarıdaki düğmeye tıklayın"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 bir kullanıcı doğrulaması başlattı"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Düzenlemeyi onayla"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "İleti Dizisine İleti Gönder"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Panoya kopyala"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Ekranı Kapla"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "Bu ileti şifreli ve gönderen, anahtarı bu aygıt ile paylaşmadı."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Daha Fazla Olay Getir"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "İndir"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6056,13 +6056,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Dosya Aç"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6091,60 +6091,60 @@ msgstr "Giriş zamanı: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Çıkış zamanı: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Görseli Göster"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "KDE Yol Kılavuzu’na Gönder"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Önizlemeyi kaldır"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Önizlemeyi küçült"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Önizlemeyi genişlet"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "URL önizlemesi yükleniyor"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Dışarıda Aç"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "%1 kullanıcı tarafından verilen oylara istinaden"
|
||||
msgstr[1] "%1 kullanıcı tarafından verilen oylara istinaden"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Bitti)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6156,7 +6156,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Son okunma: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6177,24 +6177,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr "Pl. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Videoyu Göster"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Ses Düzeyi"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Son Ses"
|
||||
|
||||
112
po/uk/neochat.po
112
po/uk/neochat.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-03-06 09:14+0200\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
@@ -1043,7 +1043,7 @@ msgstr "На цьому сервері реєстрацію вимкнено."
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "Завантаження"
|
||||
@@ -1075,7 +1075,7 @@ msgid "Loading…"
|
||||
msgstr "Завантаження…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1706,7 +1706,7 @@ msgstr "Власні емоційки"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "Завантаження відповіді"
|
||||
@@ -1972,7 +1972,7 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "Вас запрошено %1"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
@@ -1981,18 +1981,18 @@ msgstr ""
|
||||
"Файл є надто великим для отримання.<br />Зв'яжіться із адміністратором "
|
||||
"вашого сервера matrix, щоб отримати допомогу."
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "Не налаштовано жодного сервера профілів"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "Не вдалося створити кімнату: %1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "Не вдалося створити простір: %1"
|
||||
@@ -5912,65 +5912,65 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "Виберіть параметр для додавання"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "Приховати"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "Оприлюднити"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "Вилучити"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "Завершено"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "Скасувати"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "Код країни для нового номера телефону"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "Нова адреса електронної пошти:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "Новий номер телефону:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "Ми надіслали вам повідомлення електронної пошти"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "Ми надіслали вам текстове повідомлення"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
@@ -5978,22 +5978,22 @@ msgstr ""
|
||||
"%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку "
|
||||
"розташовано нижче"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "Введена адреса електронної пошти є некоректною"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "Введений номер телефону є некоректним"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "Введено помилковий пароль"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6003,7 +6003,7 @@ msgstr ""
|
||||
"повідомлення електронної пошти і виконайте настанови з нього, а потім "
|
||||
"натисніть кнопку, яку розташовано нижче"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6013,19 +6013,19 @@ msgstr ""
|
||||
"повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку "
|
||||
"розташовано нижче"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "Додати"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "Назад"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
@@ -6033,7 +6033,7 @@ msgstr ""
|
||||
"%1. Будь ласка, виконайте настанови з нього, а потім натисніть кнопку, яку "
|
||||
"розташовано вище"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
@@ -6043,7 +6043,7 @@ msgstr ""
|
||||
"повідомлення електронної пошти і виконайте настанови з нього, а потім "
|
||||
"натисніть кнопку, яку розташовано вище"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
@@ -6053,35 +6053,35 @@ msgstr ""
|
||||
"повідомлення і виконайте настанови з нього, а потім натисніть кнопку, яку "
|
||||
"розташовано вище"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 розпочато перевірку користувача"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "Підтвердити редагування"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "Додати повідомлення до гілки"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Скопіювати до буфера"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "Максимізувати"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
@@ -6090,20 +6090,20 @@ msgstr ""
|
||||
"Це повідомлення зашифровано, а відправник не поділився ключем із цим "
|
||||
"пристроєм."
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "Отримати ще дані подій"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "Отримати"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -6111,13 +6111,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "Відкрити файл"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 з %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6146,47 +6146,47 @@ msgstr "Час перевірки на вході: %1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Час перевірки на виході: %1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "Показати зображення"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "Надіслати до KDE Itinerary"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "Вилучити попередній перегляд"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "Стиснути попередній перегляд"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "Розгорнути попередній перегляд"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "Завантажуємо попередній перегляд адреси"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "Відкрити у сторонній програмі"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
@@ -6195,13 +6195,13 @@ msgstr[1] "На основі голосів %1 користувачів"
|
||||
msgstr[2] "На основі голосів %1 користувачів"
|
||||
msgstr[3] "На основі голосу %1 користувача"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(Завершено)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6213,7 +6213,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "Востаннє прочитано: %1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6232,24 +6232,24 @@ msgstr "Це початок спілкування. У журналі немає
|
||||
msgid "Pl. %1"
|
||||
msgstr "Пл. %1"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "Відео"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "Показати відео"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "Гучність"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "Максимізувати"
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2024-04-23 19:24\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -1027,7 +1027,7 @@ msgstr "此服务器已禁用注册。"
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "加载中"
|
||||
@@ -1057,7 +1057,7 @@ msgid "Loading…"
|
||||
msgstr "加载中…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1691,7 +1691,7 @@ msgstr "自己的表情"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "正在加载回复"
|
||||
@@ -1940,25 +1940,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr ""
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "聊天室创建失败:%1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "空间创建失败:%1"
|
||||
@@ -5785,180 +5785,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "分享"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "确认编辑"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "复制到剪贴板"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "最大化"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "此消息已加密,但发送者尚未与此设备共享密钥。"
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5966,13 +5966,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "打开文件"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6001,59 +6001,59 @@ msgstr ""
|
||||
msgid "Check-out time: %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "移除预览"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "收缩预览"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "展开预览"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "正在加载 URL 预览"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "在外部打开"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "基于 %1 位用户的投票"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(已结束)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6065,7 +6065,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "上次查看:%1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6084,24 +6084,24 @@ msgstr ""
|
||||
msgid "Pl. %1"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "视频"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr ""
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "最大化"
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: neochat\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2025-03-07 00:42+0000\n"
|
||||
"POT-Creation-Date: 2025-03-11 00:41+0000\n"
|
||||
"PO-Revision-Date: 2025-02-20 15:27+0900\n"
|
||||
"Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
|
||||
"Language-Team: Traditional Chinese <zh-l10n@lists.slat.org>\n"
|
||||
@@ -1033,7 +1033,7 @@ msgstr "此伺服器已停用註冊。"
|
||||
|
||||
#: src/login/Homeserver.qml:41 src/login/Username.qml:38
|
||||
#: src/models/messagecontentmodel.cpp:262
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:33
|
||||
#: src/models/messagecontentmodel.cpp:290 src/timeline/LoadComponent.qml:30
|
||||
#, kde-format
|
||||
msgid "Loading"
|
||||
msgstr "載入中"
|
||||
@@ -1063,7 +1063,7 @@ msgid "Loading…"
|
||||
msgstr "載入中…"
|
||||
|
||||
#: src/login/Login.qml:38 src/login/WelcomePage.qml:250
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Continue"
|
||||
@@ -1693,7 +1693,7 @@ msgstr "自己的表情符號"
|
||||
|
||||
#: src/models/messagecontentmodel.cpp:260
|
||||
#: src/models/messagecontentmodel.cpp:288
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:66
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:63
|
||||
#, kde-format
|
||||
msgid "Loading reply"
|
||||
msgstr "載入回覆中"
|
||||
@@ -1943,25 +1943,25 @@ msgctxt "@info:label"
|
||||
msgid "%1 invited you"
|
||||
msgstr "%1 邀請了您"
|
||||
|
||||
#: src/neochatconnection.cpp:77
|
||||
#: src/neochatconnection.cpp:75
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"File too large to download.<br />Contact your matrix server administrator "
|
||||
"for support."
|
||||
msgstr "檔案超過下載大小上限。請聯絡您的 matrix 伺服器管理員以求支援。"
|
||||
|
||||
#: src/neochatconnection.cpp:336
|
||||
#: src/neochatconnection.cpp:329
|
||||
#, kde-format
|
||||
msgctxt "@info"
|
||||
msgid "No identity server configured"
|
||||
msgstr "未設定身份伺服器"
|
||||
|
||||
#: src/neochatconnection.cpp:367
|
||||
#: src/neochatconnection.cpp:360
|
||||
#, kde-format
|
||||
msgid "Room creation failed: %1"
|
||||
msgstr "聊天室建立失敗:%1"
|
||||
|
||||
#: src/neochatconnection.cpp:397
|
||||
#: src/neochatconnection.cpp:390
|
||||
#, kde-format
|
||||
msgid "Space creation failed: %1"
|
||||
msgstr "聊天空間建立失敗:%1"
|
||||
@@ -5795,180 +5795,180 @@ msgctxt "@title:dialog"
|
||||
msgid "Select Parameter to Add"
|
||||
msgstr "選擇要加入的參數"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:55
|
||||
#: src/settings/ThreePIdCard.qml:58
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Hide"
|
||||
msgstr "隱藏"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:61
|
||||
#: src/settings/ThreePIdCard.qml:64
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Share"
|
||||
msgstr "分享"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:66
|
||||
#: src/settings/ThreePIdCard.qml:69
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:85
|
||||
#: src/settings/ThreePIdCard.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Complete"
|
||||
msgstr "完成"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:90 src/timeline/ChatBarComponent.qml:110
|
||||
#: src/settings/ThreePIdCard.qml:93 src/timeline/ChatBarComponent.qml:100
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:130
|
||||
#: src/settings/ThreePIdCard.qml:136
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Country Code for new phone number"
|
||||
msgstr "新的電話號碼的國碼"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Email Address:"
|
||||
msgstr "新的電子郵件地址:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:146
|
||||
#: src/settings/ThreePIdCard.qml:152
|
||||
#, kde-format
|
||||
msgctxt "@label:textbox"
|
||||
msgid "New Phone Number:"
|
||||
msgstr "新的電話號碼:"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you an email"
|
||||
msgstr "我們已向您傳送電子郵件"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150 src/threepidbindhelper.cpp:178
|
||||
#: src/settings/ThreePIdCard.qml:156 src/threepidbindhelper.cpp:179
|
||||
#, kde-format
|
||||
msgid "We've sent you a text message"
|
||||
msgstr "我們已向您傳送簡訊"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:150
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button below"
|
||||
msgstr "%1。請跟隨該訊息的指示後點擊下方的按鈕。"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered email is not valid"
|
||||
msgstr "輸入的電子郵件無效"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:152 src/threepidbindhelper.cpp:180
|
||||
#: src/settings/ThreePIdCard.qml:158 src/threepidbindhelper.cpp:181
|
||||
#, kde-format
|
||||
msgid "The entered phone number is not valid"
|
||||
msgstr "輸入的電話號碼無效"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:154
|
||||
#: src/settings/ThreePIdCard.qml:160
|
||||
#, kde-format
|
||||
msgid "Incorrect password entered"
|
||||
msgstr "輸入了錯誤的密碼"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button below"
|
||||
msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊下方的按鈕"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:156
|
||||
#: src/settings/ThreePIdCard.qml:162
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button below"
|
||||
msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊下方的按鈕"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:183
|
||||
#: src/settings/ThreePIdCard.qml:189
|
||||
#, kde-format
|
||||
msgctxt "@action:button Add new email or phone number"
|
||||
msgid "Add"
|
||||
msgstr "新增"
|
||||
|
||||
#: src/settings/ThreePIdCard.qml:191
|
||||
#: src/settings/ThreePIdCard.qml:197
|
||||
#, kde-format
|
||||
msgctxt "@action:button As in 'go back'"
|
||||
msgid "Back"
|
||||
msgstr "返回"
|
||||
|
||||
#: src/threepidbindhelper.cpp:177
|
||||
#: src/threepidbindhelper.cpp:178
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"%1. Please follow the instructions there and then click the button above"
|
||||
msgstr "%1。請跟隨該訊息的指示後點擊上方的按鈕"
|
||||
|
||||
#: src/threepidbindhelper.cpp:183
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The email has not been verified. Please go to the email and follow the "
|
||||
"instructions there and then click the button above"
|
||||
msgstr "電子郵件尚未驗證。請至電子郵件跟隨訊息的指示,之後點擊上方的按鈕"
|
||||
|
||||
#: src/threepidbindhelper.cpp:184
|
||||
#: src/threepidbindhelper.cpp:185
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"The phone number has not been verified. Please go to the text message and "
|
||||
"follow the instructions there and then click the button above"
|
||||
msgstr "電話號碼尚未驗證。請至簡訊並跟隨其的指示,之後點擊上方的按鈕"
|
||||
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:249
|
||||
#: src/timeline/BaseMessageComponentChooser.qml:172
|
||||
#, kde-format
|
||||
msgid "%1 started a user verification"
|
||||
msgstr "%1 開始了使用者驗證"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Confirm edit"
|
||||
msgstr "確認編輯"
|
||||
|
||||
#: src/timeline/ChatBarComponent.qml:98
|
||||
#: src/timeline/ChatBarComponent.qml:88
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Post message in thread"
|
||||
msgstr "在對話串中張貼訊息"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:164
|
||||
#: src/timeline/CodeComponent.qml:159
|
||||
#, kde-format
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "複製到剪貼簿"
|
||||
|
||||
#: src/timeline/CodeComponent.qml:176
|
||||
#: src/timeline/CodeComponent.qml:171
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Maximize"
|
||||
msgstr "最大化"
|
||||
|
||||
#: src/timeline/EncryptedComponent.qml:21
|
||||
#: src/timeline/EncryptedComponent.qml:18
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This message is encrypted and the sender has not shared the key with this "
|
||||
"device."
|
||||
msgstr "這個訊息已加密而傳送者並未與本裝置分享金鑰。"
|
||||
|
||||
#: src/timeline/FetchButtonComponent.qml:41
|
||||
#: src/timeline/FetchButtonComponent.qml:36
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Fetch More Events"
|
||||
msgstr "取得更多事件"
|
||||
|
||||
#: src/timeline/FileComponent.qml:104 src/timeline/FileComponent.qml:187
|
||||
#: src/timeline/FileComponent.qml:94 src/timeline/FileComponent.qml:177
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to download its file"
|
||||
msgid "Download"
|
||||
msgstr "下載"
|
||||
|
||||
#: src/timeline/FileComponent.qml:120 src/timeline/FileComponent.qml:177
|
||||
#: src/timeline/FileComponent.qml:110 src/timeline/FileComponent.qml:167
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; offers ability to open its downloaded "
|
||||
@@ -5976,13 +5976,13 @@ msgctxt ""
|
||||
msgid "Open File"
|
||||
msgstr "開啟檔案"
|
||||
|
||||
#: src/timeline/FileComponent.qml:135
|
||||
#: src/timeline/FileComponent.qml:125
|
||||
#, kde-format
|
||||
msgctxt "file download progress"
|
||||
msgid "%1 / %2"
|
||||
msgstr "%1 / %2"
|
||||
|
||||
#: src/timeline/FileComponent.qml:140
|
||||
#: src/timeline/FileComponent.qml:130
|
||||
#, kde-format
|
||||
msgctxt ""
|
||||
"tooltip for a button on a message; stops downloading the message's file"
|
||||
@@ -6011,59 +6011,59 @@ msgstr "Check-in 時間:%1"
|
||||
msgid "Check-out time: %1"
|
||||
msgstr "Check-out 時間:%1"
|
||||
|
||||
#: src/timeline/ImageComponent.qml:140
|
||||
#: src/timeline/ImageComponent.qml:120
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Image"
|
||||
msgstr "設定影像"
|
||||
|
||||
#: src/timeline/ItineraryComponent.qml:57
|
||||
#: src/timeline/ItineraryComponent.qml:54
|
||||
#, kde-format
|
||||
msgctxt "@action"
|
||||
msgid "Send to KDE Itinerary"
|
||||
msgstr "傳送到 KDE 旅程計劃"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:136
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:79
|
||||
#: src/timeline/LinkPreviewComponent.qml:131
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:76
|
||||
#, kde-format
|
||||
msgctxt "As in remove the link preview so it's no longer shown"
|
||||
msgid "Remove preview"
|
||||
msgstr "移除預覽"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Shrink preview"
|
||||
msgstr "收起預覽"
|
||||
|
||||
#: src/timeline/LinkPreviewComponent.qml:154
|
||||
#: src/timeline/LinkPreviewComponent.qml:149
|
||||
#, kde-format
|
||||
msgid "Expand preview"
|
||||
msgstr "展開預覽"
|
||||
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:68
|
||||
#: src/timeline/LinkPreviewLoadComponent.qml:65
|
||||
#, kde-format
|
||||
msgid "Loading URL preview"
|
||||
msgstr "正在載入網址預覽"
|
||||
|
||||
#: src/timeline/LocationComponent.qml:116
|
||||
#: src/timeline/LocationComponent.qml:111
|
||||
#, kde-format
|
||||
msgctxt "@action:button Open the location in an external program"
|
||||
msgid "Open Externally"
|
||||
msgstr "在外部開啟"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgid "Based on votes by %1 user"
|
||||
msgid_plural "Based on votes by %1 users"
|
||||
msgstr[0] "基於 %1 個使用者的投票"
|
||||
|
||||
#: src/timeline/PollComponent.qml:80
|
||||
#: src/timeline/PollComponent.qml:70
|
||||
#, kde-format
|
||||
msgctxt "as in 'this vote has ended'"
|
||||
msgid "(Ended)"
|
||||
msgstr "(已結束)"
|
||||
|
||||
#: src/timeline/ReactionComponent.qml:97
|
||||
#: src/timeline/ReactionComponent.qml:89
|
||||
#, kde-format
|
||||
msgctxt "@button"
|
||||
msgid "React"
|
||||
@@ -6075,7 +6075,7 @@ msgctxt "Relative time since the room was last read"
|
||||
msgid "Last read: %1"
|
||||
msgstr "最後閱讀:%1"
|
||||
|
||||
#: src/timeline/ReplyButtonComponent.qml:44
|
||||
#: src/timeline/ReplyButtonComponent.qml:34
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Reply"
|
||||
@@ -6094,24 +6094,24 @@ msgstr "這是此聊天的開頭。沒有比這更早的歷史訊息。"
|
||||
msgid "Pl. %1"
|
||||
msgstr "第 %1 月台"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:217
|
||||
#: src/timeline/VideoComponent.qml:197
|
||||
#, kde-format
|
||||
msgid "Video"
|
||||
msgstr "影片"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:257
|
||||
#: src/timeline/VideoComponent.qml:237
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Show Video"
|
||||
msgstr "顯示影片"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:298
|
||||
#: src/timeline/VideoComponent.qml:278
|
||||
#, kde-format
|
||||
msgctxt "@action:button"
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: src/timeline/VideoComponent.qml:382
|
||||
#: src/timeline/VideoComponent.qml:362
|
||||
#, kde-format
|
||||
msgid "Maximize"
|
||||
msgstr "最大化"
|
||||
|
||||
@@ -10,192 +10,192 @@ endif()
|
||||
add_library(neochat STATIC
|
||||
controller.cpp
|
||||
controller.h
|
||||
models/emojimodel.cpp
|
||||
models/emojimodel.h
|
||||
emojitones.cpp
|
||||
emojitones.h
|
||||
models/customemojimodel.cpp
|
||||
models/customemojimodel.h
|
||||
clipboard.cpp
|
||||
clipboard.h
|
||||
models/timelinemessagemodel.cpp
|
||||
models/timelinemessagemodel.h
|
||||
models/messagefiltermodel.cpp
|
||||
models/messagefiltermodel.h
|
||||
models/roomlistmodel.cpp
|
||||
models/roomlistmodel.h
|
||||
models/sortfilterspacelistmodel.cpp
|
||||
models/sortfilterspacelistmodel.h
|
||||
models/accountemoticonmodel.cpp
|
||||
models/accountemoticonmodel.h
|
||||
spacehierarchycache.cpp
|
||||
spacehierarchycache.h
|
||||
roommanager.cpp
|
||||
roommanager.h
|
||||
# models/emojimodel.cpp
|
||||
# models/emojimodel.h
|
||||
# emojitones.cpp
|
||||
# emojitones.h
|
||||
# models/customemojimodel.cpp
|
||||
# models/customemojimodel.h
|
||||
# clipboard.cpp
|
||||
# clipboard.h
|
||||
# models/timelinemessagemodel.cpp
|
||||
# models/timelinemessagemodel.h
|
||||
# models/messagefiltermodel.cpp
|
||||
# models/messagefiltermodel.h
|
||||
# models/roomlistmodel.cpp
|
||||
# models/roomlistmodel.h
|
||||
# models/sortfilterspacelistmodel.cpp
|
||||
# models/sortfilterspacelistmodel.h
|
||||
# models/accountemoticonmodel.cpp
|
||||
# models/accountemoticonmodel.h
|
||||
# spacehierarchycache.cpp
|
||||
# spacehierarchycache.h
|
||||
# roommanager.cpp
|
||||
# roommanager.h
|
||||
neochatroom.cpp
|
||||
neochatroom.h
|
||||
models/userlistmodel.cpp
|
||||
models/userlistmodel.h
|
||||
models/userfiltermodel.cpp
|
||||
models/userfiltermodel.h
|
||||
models/publicroomlistmodel.cpp
|
||||
models/publicroomlistmodel.h
|
||||
models/spacechildrenmodel.cpp
|
||||
models/spacechildrenmodel.h
|
||||
models/spacechildsortfiltermodel.cpp
|
||||
models/spacechildsortfiltermodel.h
|
||||
models/spacetreeitem.cpp
|
||||
models/spacetreeitem.h
|
||||
models/userdirectorylistmodel.cpp
|
||||
models/userdirectorylistmodel.h
|
||||
# models/publicroomlistmodel.cpp
|
||||
# models/publicroomlistmodel.h
|
||||
# models/spacechildrenmodel.cpp
|
||||
# models/spacechildrenmodel.h
|
||||
# models/spacechildsortfiltermodel.cpp
|
||||
# models/spacechildsortfiltermodel.h
|
||||
# models/spacetreeitem.cpp
|
||||
# models/spacetreeitem.h
|
||||
# models/userdirectorylistmodel.cpp
|
||||
# models/userdirectorylistmodel.h
|
||||
models/pushrulemodel.cpp
|
||||
models/pushrulemodel.h
|
||||
models/emoticonfiltermodel.cpp
|
||||
models/emoticonfiltermodel.h
|
||||
notificationsmanager.cpp
|
||||
notificationsmanager.h
|
||||
models/sortfilterroomlistmodel.cpp
|
||||
models/sortfilterroomlistmodel.h
|
||||
# models/emoticonfiltermodel.cpp
|
||||
# models/emoticonfiltermodel.h
|
||||
# notificationsmanager.cpp
|
||||
# notificationsmanager.h
|
||||
# models/sortfilterroomlistmodel.cpp
|
||||
# models/sortfilterroomlistmodel.h
|
||||
models/roomtreemodel.cpp
|
||||
models/roomtreemodel.h
|
||||
chatdocumenthandler.cpp
|
||||
chatdocumenthandler.h
|
||||
models/devicesmodel.cpp
|
||||
models/devicesmodel.h
|
||||
models/devicesproxymodel.cpp
|
||||
filetype.cpp
|
||||
filetype.h
|
||||
login.cpp
|
||||
login.h
|
||||
models/webshortcutmodel.cpp
|
||||
models/webshortcutmodel.h
|
||||
# models/devicesmodel.cpp
|
||||
# models/devicesmodel.h
|
||||
# models/devicesproxymodel.cpp
|
||||
# filetype.cpp
|
||||
# filetype.h
|
||||
# login.cpp
|
||||
# login.h
|
||||
# models/webshortcutmodel.cpp
|
||||
# models/webshortcutmodel.h
|
||||
blurhash.cpp
|
||||
blurhash.h
|
||||
blurhashimageprovider.cpp
|
||||
blurhashimageprovider.h
|
||||
models/mediamessagefiltermodel.cpp
|
||||
models/mediamessagefiltermodel.h
|
||||
urlhelper.cpp
|
||||
urlhelper.h
|
||||
# models/mediamessagefiltermodel.cpp
|
||||
# models/mediamessagefiltermodel.h
|
||||
# urlhelper.cpp
|
||||
# urlhelper.h
|
||||
windowcontroller.cpp
|
||||
windowcontroller.h
|
||||
linkpreviewer.cpp
|
||||
linkpreviewer.h
|
||||
# linkpreviewer.cpp
|
||||
# linkpreviewer.h
|
||||
models/completionmodel.cpp
|
||||
models/completionmodel.h
|
||||
models/completionproxymodel.cpp
|
||||
models/completionproxymodel.h
|
||||
models/actionsmodel.cpp
|
||||
models/actionsmodel.h
|
||||
models/serverlistmodel.cpp
|
||||
models/serverlistmodel.h
|
||||
models/statemodel.cpp
|
||||
models/statemodel.h
|
||||
models/statefiltermodel.cpp
|
||||
models/statefiltermodel.h
|
||||
filetransferpseudojob.cpp
|
||||
filetransferpseudojob.h
|
||||
models/searchmodel.cpp
|
||||
models/searchmodel.h
|
||||
texthandler.cpp
|
||||
texthandler.h
|
||||
# models/completionproxymodel.cpp
|
||||
# models/completionproxymodel.h
|
||||
# models/actionsmodel.cpp
|
||||
# models/actionsmodel.h
|
||||
# models/serverlistmodel.cpp
|
||||
# models/serverlistmodel.h
|
||||
# models/statemodel.cpp
|
||||
# models/statemodel.h
|
||||
# models/statefiltermodel.cpp
|
||||
# models/statefiltermodel.h
|
||||
# filetransferpseudojob.cpp
|
||||
# filetransferpseudojob.h
|
||||
# models/searchmodel.cpp
|
||||
# models/searchmodel.h
|
||||
# texthandler.cpp
|
||||
# texthandler.h
|
||||
logger.cpp
|
||||
logger.h
|
||||
models/stickermodel.cpp
|
||||
models/stickermodel.h
|
||||
models/imagepacksmodel.cpp
|
||||
models/imagepacksmodel.h
|
||||
events/imagepackevent.cpp
|
||||
events/imagepackevent.h
|
||||
models/reactionmodel.cpp
|
||||
models/reactionmodel.h
|
||||
# models/stickermodel.cpp
|
||||
# models/stickermodel.h
|
||||
# models/imagepacksmodel.cpp
|
||||
# models/imagepacksmodel.h
|
||||
# events/imagepackevent.cpp
|
||||
# events/imagepackevent.h
|
||||
# models/reactionmodel.cpp
|
||||
# models/reactionmodel.h
|
||||
delegatesizehelper.cpp
|
||||
delegatesizehelper.h
|
||||
models/livelocationsmodel.cpp
|
||||
models/livelocationsmodel.h
|
||||
models/locationsmodel.cpp
|
||||
models/locationsmodel.h
|
||||
locationhelper.cpp
|
||||
locationhelper.h
|
||||
events/pollevent.cpp
|
||||
pollhandler.cpp
|
||||
# models/livelocationsmodel.cpp
|
||||
# models/livelocationsmodel.h
|
||||
# models/locationsmodel.cpp
|
||||
# models/locationsmodel.h
|
||||
# locationhelper.cpp
|
||||
# locationhelper.h
|
||||
# events/pollevent.cpp
|
||||
# pollhandler.cpp
|
||||
utils.h
|
||||
utils.cpp
|
||||
registration.cpp
|
||||
# registration.cpp
|
||||
neochatconnection.cpp
|
||||
neochatconnection.h
|
||||
jobs/neochatgetcommonroomsjob.cpp
|
||||
jobs/neochatgetcommonroomsjob.h
|
||||
# jobs/neochatgetcommonroomsjob.cpp
|
||||
# jobs/neochatgetcommonroomsjob.h
|
||||
mediasizehelper.cpp
|
||||
mediasizehelper.h
|
||||
eventhandler.cpp
|
||||
enums/delegatetype.h
|
||||
roomlastmessageprovider.cpp
|
||||
roomlastmessageprovider.h
|
||||
# eventhandler.cpp
|
||||
# enums/delegatetype.h
|
||||
# roomlastmessageprovider.cpp
|
||||
# roomlastmessageprovider.h
|
||||
chatbarcache.cpp
|
||||
chatbarcache.h
|
||||
colorschemer.cpp
|
||||
colorschemer.h
|
||||
models/notificationsmodel.cpp
|
||||
models/notificationsmodel.h
|
||||
models/timelinemodel.cpp
|
||||
models/timelinemodel.h
|
||||
# models/notificationsmodel.cpp
|
||||
# models/notificationsmodel.h
|
||||
# models/timelinemodel.cpp
|
||||
# models/timelinemodel.h
|
||||
enums/pushrule.h
|
||||
models/itinerarymodel.cpp
|
||||
models/itinerarymodel.h
|
||||
# models/itinerarymodel.cpp
|
||||
# models/itinerarymodel.h
|
||||
proxycontroller.cpp
|
||||
proxycontroller.h
|
||||
models/linemodel.cpp
|
||||
models/linemodel.h
|
||||
events/locationbeaconevent.h
|
||||
events/widgetevent.h
|
||||
enums/messagecomponenttype.h
|
||||
models/messagecontentmodel.cpp
|
||||
models/messagecontentmodel.h
|
||||
# events/locationbeaconevent.h
|
||||
# events/widgetevent.h
|
||||
# enums/messagecomponenttype.h
|
||||
# models/messagecontentmodel.cpp
|
||||
# models/messagecontentmodel.h
|
||||
enums/neochatroomtype.h
|
||||
models/sortfilterroomtreemodel.cpp
|
||||
models/sortfilterroomtreemodel.h
|
||||
mediamanager.cpp
|
||||
mediamanager.h
|
||||
models/statekeysmodel.cpp
|
||||
models/statekeysmodel.h
|
||||
sharehandler.cpp
|
||||
sharehandler.h
|
||||
# models/statekeysmodel.cpp
|
||||
# models/statekeysmodel.h
|
||||
# sharehandler.cpp
|
||||
# sharehandler.h
|
||||
models/roomtreeitem.cpp
|
||||
models/roomtreeitem.h
|
||||
foreigntypes.h
|
||||
models/threepidmodel.cpp
|
||||
models/threepidmodel.h
|
||||
threepidaddhelper.cpp
|
||||
threepidaddhelper.h
|
||||
identityserverhelper.cpp
|
||||
identityserverhelper.h
|
||||
enums/powerlevel.cpp
|
||||
enums/powerlevel.h
|
||||
models/permissionsmodel.cpp
|
||||
models/permissionsmodel.h
|
||||
threepidbindhelper.cpp
|
||||
threepidbindhelper.h
|
||||
models/readmarkermodel.cpp
|
||||
models/readmarkermodel.h
|
||||
neochatroommember.cpp
|
||||
neochatroommember.h
|
||||
models/threadmodel.cpp
|
||||
models/threadmodel.h
|
||||
enums/messagetype.h
|
||||
messagecomponent.h
|
||||
# models/threepidmodel.cpp
|
||||
# models/threepidmodel.h
|
||||
# threepidaddhelper.cpp
|
||||
# threepidaddhelper.h
|
||||
# identityserverhelper.cpp
|
||||
# identityserverhelper.h
|
||||
# enums/powerlevel.cpp
|
||||
# enums/powerlevel.h
|
||||
# models/permissionsmodel.cpp
|
||||
# models/permissionsmodel.h
|
||||
# threepidbindhelper.cpp
|
||||
# threepidbindhelper.h
|
||||
# models/readmarkermodel.cpp
|
||||
# models/readmarkermodel.h
|
||||
# neochatroommember.cpp
|
||||
# neochatroommember.h
|
||||
# models/threadmodel.cpp
|
||||
# models/threadmodel.h
|
||||
# enums/messagetype.h
|
||||
# messagecomponent.h
|
||||
enums/roomsortparameter.cpp
|
||||
enums/roomsortparameter.h
|
||||
models/roomsortparametermodel.cpp
|
||||
models/roomsortparametermodel.h
|
||||
models/messagemodel.cpp
|
||||
models/messagemodel.h
|
||||
models/messagecontentfiltermodel.cpp
|
||||
models/messagecontentfiltermodel.h
|
||||
models/pinnedmessagemodel.cpp
|
||||
models/pinnedmessagemodel.h
|
||||
models/commonroomsmodel.cpp
|
||||
models/commonroomsmodel.h
|
||||
# models/roomsortparametermodel.cpp
|
||||
# models/roomsortparametermodel.h
|
||||
# models/messagemodel.cpp
|
||||
# models/messagemodel.h
|
||||
# models/messagecontentfiltermodel.cpp
|
||||
# models/messagecontentfiltermodel.h
|
||||
# models/pinnedmessagemodel.cpp
|
||||
# models/pinnedmessagemodel.h
|
||||
# models/commonroomsmodel.cpp
|
||||
# models/commonroomsmodel.h
|
||||
)
|
||||
|
||||
set_source_files_properties(qml/OsmLocationPlugin.qml PROPERTIES
|
||||
@@ -296,6 +296,9 @@ ecm_add_qml_module(neochat URI org.kde.neochat GENERATE_PLUGIN_SOURCE
|
||||
qml/HoverLinkIndicator.qml
|
||||
qml/AvatarNotification.qml
|
||||
qml/ReasonDialog.qml
|
||||
SOURCES
|
||||
# messageattached.cpp
|
||||
# messageattached.h
|
||||
DEPENDENCIES
|
||||
QtCore
|
||||
QtQuick
|
||||
@@ -395,10 +398,10 @@ endif()
|
||||
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE AND NOT HAIKU)
|
||||
target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER)
|
||||
target_compile_definitions(neochat PUBLIC -DHAVE_X11=1)
|
||||
target_sources(neochat PRIVATE runner.cpp)
|
||||
# target_sources(neochat PRIVATE runner.cpp)
|
||||
|
||||
if (TARGET KUnifiedPush)
|
||||
target_sources(neochat PRIVATE fakerunner.cpp)
|
||||
# target_sources(neochat PRIVATE fakerunner.cpp)
|
||||
endif()
|
||||
else()
|
||||
target_compile_definitions(neochat PUBLIC -DHAVE_X11=0)
|
||||
@@ -424,7 +427,7 @@ target_link_libraries(neochat PUBLIC
|
||||
KF6::IconThemes
|
||||
KF6::ColorScheme
|
||||
KF6::ItemModels
|
||||
QuotientQt6
|
||||
Integral
|
||||
cmark::cmark
|
||||
QCoro::Core
|
||||
QCoro::Network
|
||||
|
||||
@@ -344,13 +344,13 @@ QQC2.Control {
|
||||
Item {
|
||||
implicitWidth: replyComponent.implicitWidth
|
||||
implicitHeight: replyComponent.implicitHeight
|
||||
ReplyComponent {
|
||||
id: replyComponent
|
||||
replyEventId: _private.chatBarCache.replyId
|
||||
replyAuthor: _private.chatBarCache.relationAuthor
|
||||
replyContentModel: _private.chatBarCache.relationEventContentModel
|
||||
maxContentWidth: paneLoader.item.width
|
||||
}
|
||||
// ReplyComponent {
|
||||
// id: replyComponent
|
||||
// replyEventId: _private.chatBarCache.replyId
|
||||
// replyAuthor: _private.chatBarCache.relationAuthor
|
||||
// replyContentModel: _private.chatBarCache.relationEventContentModel
|
||||
// Message.maxContentWidth: paneLoader.item.width
|
||||
// }
|
||||
QQC2.Button {
|
||||
id: cancelButton
|
||||
|
||||
@@ -498,23 +498,23 @@ QQC2.Control {
|
||||
}
|
||||
}
|
||||
|
||||
EmojiDialog {
|
||||
id: emojiDialog
|
||||
|
||||
x: root.width - width
|
||||
y: -implicitHeight
|
||||
|
||||
modal: false
|
||||
includeCustom: true
|
||||
closeOnChosen: false
|
||||
|
||||
currentRoom: root.currentRoom
|
||||
|
||||
onChosen: emoji => insertText(emoji)
|
||||
onClosed: if (emojiAction.checked) {
|
||||
emojiAction.checked = false;
|
||||
}
|
||||
}
|
||||
// EmojiDialog {
|
||||
// id: emojiDialog
|
||||
//
|
||||
// x: root.width - width
|
||||
// y: -implicitHeight
|
||||
//
|
||||
// modal: false
|
||||
// includeCustom: true
|
||||
// closeOnChosen: false
|
||||
//
|
||||
// currentRoom: root.currentRoom
|
||||
//
|
||||
// onChosen: emoji => insertText(emoji)
|
||||
// onClosed: if (emojiAction.checked) {
|
||||
// emojiAction.checked = false;
|
||||
// }
|
||||
// }
|
||||
|
||||
function insertText(text) {
|
||||
let initialCursorPosition = textField.cursorPosition;
|
||||
|
||||
@@ -2,14 +2,15 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "chatbarcache.h"
|
||||
#include "chatdocumenthandler.h"
|
||||
|
||||
#include <Quotient/roommember.h>
|
||||
|
||||
#include "chatdocumenthandler.h"
|
||||
#include "eventhandler.h"
|
||||
#include "models/actionsmodel.h"
|
||||
// #include "chatdocumenthandler.h"
|
||||
// #include "eventhandler.h"
|
||||
// #include "models/actionsmodel.h"
|
||||
#include "neochatroom.h"
|
||||
#include "texthandler.h"
|
||||
// #include "texthandler.h"
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
@@ -88,7 +89,7 @@ void ChatBarCache::setReplyId(const QString &replyId)
|
||||
m_relationType = Reply;
|
||||
}
|
||||
m_attachmentPath = QString();
|
||||
delete m_relationContentModel;
|
||||
// delete m_relationContentModel;
|
||||
Q_EMIT relationIdChanged(oldEventId, m_relationId);
|
||||
Q_EMIT attachmentPathChanged();
|
||||
}
|
||||
@@ -118,27 +119,27 @@ void ChatBarCache::setEditId(const QString &editId)
|
||||
m_relationType = Edit;
|
||||
}
|
||||
m_attachmentPath = QString();
|
||||
delete m_relationContentModel;
|
||||
// delete m_relationContentModel;
|
||||
Q_EMIT relationIdChanged(oldEventId, m_relationId);
|
||||
Q_EMIT attachmentPathChanged();
|
||||
}
|
||||
|
||||
Quotient::RoomMember ChatBarCache::relationAuthor() const
|
||||
{
|
||||
if (parent() == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return {};
|
||||
}
|
||||
if (m_relationId.isEmpty()) {
|
||||
return room->member(QString());
|
||||
}
|
||||
return room->member((*room->findInTimeline(m_relationId))->senderId());
|
||||
}
|
||||
// Quotient::RoomMember ChatBarCache::relationAuthor() const
|
||||
// {
|
||||
// if (parent() == nullptr) {
|
||||
// qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
// return {};
|
||||
// }
|
||||
// auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
// if (room == nullptr) {
|
||||
// qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
// return {};
|
||||
// }
|
||||
// if (m_relationId.isEmpty()) {
|
||||
// return room->member(QString());
|
||||
// }
|
||||
// return room->member((*room->findInTimeline(m_relationId))->senderId());
|
||||
// }
|
||||
|
||||
QString ChatBarCache::relationMessage() const
|
||||
{
|
||||
@@ -155,33 +156,33 @@ QString ChatBarCache::relationMessage() const
|
||||
return {};
|
||||
}
|
||||
|
||||
if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
|
||||
return EventHandler::markdownBody(&**event);
|
||||
}
|
||||
// if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
|
||||
// return EventHandler::markdownBody(&**event);
|
||||
// }
|
||||
return {};
|
||||
}
|
||||
|
||||
MessageContentModel *ChatBarCache::relationEventContentModel()
|
||||
{
|
||||
if (parent() == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return nullptr;
|
||||
}
|
||||
if (m_relationId.isEmpty()) {
|
||||
return nullptr;
|
||||
}
|
||||
if (m_relationContentModel != nullptr) {
|
||||
return m_relationContentModel;
|
||||
}
|
||||
|
||||
auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
if (room == nullptr) {
|
||||
qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
return nullptr;
|
||||
}
|
||||
m_relationContentModel = new MessageContentModel(room, m_relationId, true);
|
||||
return m_relationContentModel;
|
||||
}
|
||||
// MessageContentModel *ChatBarCache::relationEventContentModel()
|
||||
// {
|
||||
// if (parent() == nullptr) {
|
||||
// qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
// return nullptr;
|
||||
// }
|
||||
// if (m_relationId.isEmpty()) {
|
||||
// return nullptr;
|
||||
// }
|
||||
// if (m_relationContentModel != nullptr) {
|
||||
// return m_relationContentModel;
|
||||
// }
|
||||
//
|
||||
// auto room = dynamic_cast<NeoChatRoom *>(parent());
|
||||
// if (room == nullptr) {
|
||||
// qWarning() << "ChatBarCache created with incorrect parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
// return nullptr;
|
||||
// }
|
||||
// m_relationContentModel = new MessageContentModel(room, m_relationId, true);
|
||||
// return m_relationContentModel;
|
||||
// }
|
||||
|
||||
bool ChatBarCache::isThreaded() const
|
||||
{
|
||||
@@ -215,7 +216,7 @@ void ChatBarCache::setAttachmentPath(const QString &attachmentPath)
|
||||
m_attachmentPath = attachmentPath;
|
||||
m_relationType = None;
|
||||
const auto oldEventId = std::exchange(m_relationId, QString());
|
||||
delete m_relationContentModel;
|
||||
// delete m_relationContentModel;
|
||||
Q_EMIT attachmentPathChanged();
|
||||
Q_EMIT relationIdChanged(oldEventId, m_relationId);
|
||||
}
|
||||
@@ -225,7 +226,7 @@ void ChatBarCache::clearRelations()
|
||||
const auto oldEventId = std::exchange(m_relationId, QString());
|
||||
const auto oldThreadId = std::exchange(m_threadId, QString());
|
||||
m_attachmentPath = QString();
|
||||
delete m_relationContentModel;
|
||||
// delete m_relationContentModel;
|
||||
Q_EMIT relationIdChanged(oldEventId, m_relationId);
|
||||
Q_EMIT threadIdChanged(oldThreadId, m_threadId);
|
||||
Q_EMIT attachmentPathChanged();
|
||||
@@ -238,7 +239,7 @@ QList<Mention> *ChatBarCache::mentions()
|
||||
|
||||
void ChatBarCache::updateMentions(QQuickTextDocument *document, ChatDocumentHandler *documentHandler)
|
||||
{
|
||||
documentHandler->setDocument(document);
|
||||
// documentHandler->setDocument(document);
|
||||
|
||||
if (parent() == nullptr) {
|
||||
qWarning() << "ChatBarCache created with no parent, a NeoChatRoom must be set as the parent on creation.";
|
||||
@@ -253,35 +254,35 @@ void ChatBarCache::updateMentions(QQuickTextDocument *document, ChatDocumentHand
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
|
||||
if (const auto &roomMessageEvent = &*event->viewAs<Quotient::RoomMessageEvent>()) {
|
||||
// Replaces the mentions that are baked into the HTML but plaintext in the original markdown
|
||||
const QRegularExpression re(uR"lit(<a\shref="https:\/\/matrix.to\/#\/([\S]*)"\s?>([\S]*)<\/a>)lit"_s);
|
||||
|
||||
m_mentions.clear();
|
||||
|
||||
int linkSize = 0;
|
||||
auto matches = re.globalMatch(EventHandler::rawMessageBody(*roomMessageEvent));
|
||||
while (matches.hasNext()) {
|
||||
const QRegularExpressionMatch match = matches.next();
|
||||
if (match.hasMatch()) {
|
||||
const QString id = match.captured(1);
|
||||
const QString name = match.captured(2);
|
||||
|
||||
const int position = match.capturedStart(0) - linkSize;
|
||||
const int end = position + name.length();
|
||||
linkSize += match.capturedLength(0) - name.length();
|
||||
|
||||
QTextCursor cursor(documentHandler->document()->textDocument());
|
||||
cursor.setPosition(position);
|
||||
cursor.setPosition(end, QTextCursor::KeepAnchor);
|
||||
cursor.setKeepPositionOnInsert(true);
|
||||
|
||||
m_mentions.push_back(Mention{.cursor = cursor, .text = name, .start = position, .position = end, .id = id});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (auto event = room->findInTimeline(m_relationId); event != room->historyEdge()) {
|
||||
// if (const auto &roomMessageEvent = &*event->viewAs<Quotient::RoomMessageEvent>()) {
|
||||
// // Replaces the mentions that are baked into the HTML but plaintext in the original markdown
|
||||
// const QRegularExpression re(uR"lit(<a\shref="https:\/\/matrix.to\/#\/([\S]*)"\s?>([\S]*)<\/a>)lit"_s);
|
||||
//
|
||||
// m_mentions.clear();
|
||||
//
|
||||
// int linkSize = 0;
|
||||
// auto matches = re.globalMatch(EventHandler::rawMessageBody(*roomMessageEvent));
|
||||
// while (matches.hasNext()) {
|
||||
// const QRegularExpressionMatch match = matches.next();
|
||||
// if (match.hasMatch()) {
|
||||
// const QString id = match.captured(1);
|
||||
// const QString name = match.captured(2);
|
||||
//
|
||||
// const int position = match.capturedStart(0) - linkSize;
|
||||
// const int end = position + name.length();
|
||||
// linkSize += match.capturedLength(0) - name.length();
|
||||
//
|
||||
// QTextCursor cursor(documentHandler->document()->textDocument());
|
||||
// cursor.setPosition(position);
|
||||
// cursor.setPosition(end, QTextCursor::KeepAnchor);
|
||||
// cursor.setKeepPositionOnInsert(true);
|
||||
//
|
||||
// m_mentions.push_back(Mention{.cursor = cursor, .text = name, .start = position, .position = end, .id = id});
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
QString ChatBarCache::savedText() const
|
||||
@@ -308,37 +309,37 @@ void ChatBarCache::postMessage()
|
||||
return;
|
||||
}
|
||||
|
||||
const auto result = ActionsModel::handleAction(room, this);
|
||||
if (!result.second.has_value()) {
|
||||
return;
|
||||
}
|
||||
// const auto result = ActionsModel::handleAction(room, this);
|
||||
// if (!result.second.has_value()) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
TextHandler textHandler;
|
||||
textHandler.setData(*std::get<std::optional<QString>>(result));
|
||||
const auto sendText = textHandler.handleSendText();
|
||||
|
||||
if (sendText.length() == 0) {
|
||||
return;
|
||||
}
|
||||
// TextHandler textHandler;
|
||||
// textHandler.setData(*std::get<std::optional<QString>>(result));
|
||||
// const auto sendText = textHandler.handleSendText();
|
||||
//
|
||||
// if (sendText.length() == 0) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
bool isReply = !replyId().isEmpty();
|
||||
const auto replyIt = room->findInTimeline(replyId());
|
||||
if (replyIt == room->historyEdge()) {
|
||||
isReply = false;
|
||||
}
|
||||
// const auto replyIt = room->findInTimeline(replyId());
|
||||
// if (replyIt == room->historyEdge()) {
|
||||
// isReply = false;
|
||||
// }
|
||||
|
||||
auto content = std::make_unique<Quotient::EventContent::TextContent>(sendText, u"text/html"_s);
|
||||
std::optional<Quotient::EventRelation> relatesTo = std::nullopt;
|
||||
// auto content = std::make_unique<Quotient::EventContent::TextContent>(sendText, u"text/html"_s);
|
||||
// std::optional<Quotient::EventRelation> relatesTo = std::nullopt;
|
||||
//
|
||||
// if (!threadId().isEmpty()) {
|
||||
// relatesTo = Quotient::EventRelation::replyInThread(threadId(), !isReply, isReply ? replyId() : threadId());
|
||||
// } else if (!editId().isEmpty()) {
|
||||
// relatesTo = Quotient::EventRelation::replace(editId());
|
||||
// } else if (isReply) {
|
||||
// relatesTo = Quotient::EventRelation::replyTo(replyId());
|
||||
// }
|
||||
|
||||
if (!threadId().isEmpty()) {
|
||||
relatesTo = Quotient::EventRelation::replyInThread(threadId(), !isReply, isReply ? replyId() : threadId());
|
||||
} else if (!editId().isEmpty()) {
|
||||
relatesTo = Quotient::EventRelation::replace(editId());
|
||||
} else if (isReply) {
|
||||
relatesTo = Quotient::EventRelation::replyTo(replyId());
|
||||
}
|
||||
|
||||
room->post<Quotient::RoomMessageEvent>(text(), *std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result), std::move(content), relatesTo);
|
||||
// room->post<Quotient::RoomMessageEvent>(text(), *std::get<std::optional<Quotient::RoomMessageEvent::MsgType>>(result), std::move(content), relatesTo);
|
||||
clearCache();
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <QQuickTextDocument>
|
||||
#include <QTextCursor>
|
||||
|
||||
#include "models/messagecontentmodel.h"
|
||||
// #include "models/messagecontentmodel.h"
|
||||
|
||||
class ChatDocumentHandler;
|
||||
|
||||
@@ -102,7 +102,7 @@ class ChatBarCache : public QObject
|
||||
*
|
||||
* @sa Quotient::RoomMember
|
||||
*/
|
||||
Q_PROPERTY(Quotient::RoomMember relationAuthor READ relationAuthor NOTIFY relationIdChanged)
|
||||
// Q_PROPERTY(Quotient::RoomMember relationAuthor READ relationAuthor NOTIFY relationIdChanged)
|
||||
|
||||
/**
|
||||
* @brief The content of the related message.
|
||||
@@ -116,7 +116,7 @@ class ChatBarCache : public QObject
|
||||
*
|
||||
* Will be nullptr if no related message.
|
||||
*/
|
||||
Q_PROPERTY(MessageContentModel *relationEventContentModel READ relationEventContentModel NOTIFY relationIdChanged)
|
||||
// Q_PROPERTY(MessageContentModel *relationEventContentModel READ relationEventContentModel NOTIFY relationIdChanged)
|
||||
|
||||
/**
|
||||
* @brief Whether the chat bar is replying in a thread.
|
||||
@@ -164,10 +164,10 @@ public:
|
||||
QString editId() const;
|
||||
void setEditId(const QString &editId);
|
||||
|
||||
Quotient::RoomMember relationAuthor() const;
|
||||
// Quotient::RoomMember relationAuthor() const;
|
||||
|
||||
QString relationMessage() const;
|
||||
MessageContentModel *relationEventContentModel();
|
||||
// MessageContentModel *relationEventContentModel();
|
||||
|
||||
bool isThreaded() const;
|
||||
QString threadId() const;
|
||||
@@ -225,7 +225,7 @@ private:
|
||||
QList<Mention> m_mentions;
|
||||
QString m_savedText;
|
||||
|
||||
QPointer<MessageContentModel> m_relationContentModel;
|
||||
// QPointer<MessageContentModel> m_relationContentModel;
|
||||
|
||||
void clearCache();
|
||||
};
|
||||
|
||||
@@ -105,7 +105,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
|
||||
, m_completionModel(new CompletionModel(this))
|
||||
{
|
||||
connect(this, &ChatDocumentHandler::roomChanged, this, [this]() {
|
||||
m_completionModel->setRoom(m_room);
|
||||
// m_completionModel->setRoom(m_room);
|
||||
static QPointer<NeoChatRoom> previousRoom = nullptr;
|
||||
if (previousRoom) {
|
||||
disconnect(m_chatBarCache, &ChatBarCache::textChanged, this, nullptr);
|
||||
@@ -113,7 +113,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
|
||||
previousRoom = m_room;
|
||||
connect(m_chatBarCache, &ChatBarCache::textChanged, this, [this]() {
|
||||
int start = completionStartIndex();
|
||||
m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
|
||||
// m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
|
||||
});
|
||||
});
|
||||
connect(this, &ChatDocumentHandler::documentChanged, this, [this]() {
|
||||
@@ -124,7 +124,7 @@ ChatDocumentHandler::ChatDocumentHandler(QObject *parent)
|
||||
return;
|
||||
}
|
||||
int start = completionStartIndex();
|
||||
m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
|
||||
// m_completionModel->setText(getText().mid(start, cursorPosition() - start), getText().mid(start));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -217,58 +217,58 @@ void ChatDocumentHandler::complete(int index)
|
||||
qCWarning(ChatDocumentHandling) << "complete called with m_document set to nullptr.";
|
||||
return;
|
||||
}
|
||||
if (m_completionModel->autoCompletionType() == CompletionModel::None) {
|
||||
qCWarning(ChatDocumentHandling) << "complete called with m_completionModel->autoCompletionType() == CompletionModel::None.";
|
||||
return;
|
||||
}
|
||||
// if (m_completionModel->autoCompletionType() == CompletionModel::None) {
|
||||
// qCWarning(ChatDocumentHandling) << "complete called with m_completionModel->autoCompletionType() == CompletionModel::None.";
|
||||
// return;
|
||||
// }
|
||||
|
||||
// Ensure we only search for the beginning of the current completion identifier
|
||||
const auto fromIndex = qMax(completionStartIndex(), 0);
|
||||
|
||||
if (m_completionModel->autoCompletionType() == CompletionModel::User) {
|
||||
auto name = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::DisplayNameRole).toString();
|
||||
auto id = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
|
||||
auto text = getText();
|
||||
auto at = text.indexOf(QLatin1Char('@'), fromIndex);
|
||||
QTextCursor cursor(document()->textDocument());
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
cursor.insertText(name + u" "_s);
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursor.position() + name.size(), QTextCursor::KeepAnchor);
|
||||
cursor.setKeepPositionOnInsert(true);
|
||||
pushMention({cursor, name, 0, 0, id});
|
||||
m_highlighter->rehighlight();
|
||||
} else if (m_completionModel->autoCompletionType() == CompletionModel::Command) {
|
||||
auto command = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
|
||||
auto text = getText();
|
||||
auto at = text.indexOf(QLatin1Char('/'), fromIndex);
|
||||
QTextCursor cursor(document()->textDocument());
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
cursor.insertText(u"/%1 "_s.arg(command));
|
||||
} else if (m_completionModel->autoCompletionType() == CompletionModel::Room) {
|
||||
auto alias = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
|
||||
auto text = getText();
|
||||
auto at = text.indexOf(QLatin1Char('#'), fromIndex);
|
||||
QTextCursor cursor(document()->textDocument());
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
cursor.insertText(alias + u" "_s);
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursor.position() + alias.size(), QTextCursor::KeepAnchor);
|
||||
cursor.setKeepPositionOnInsert(true);
|
||||
pushMention({cursor, alias, 0, 0, alias});
|
||||
m_highlighter->rehighlight();
|
||||
} else if (m_completionModel->autoCompletionType() == CompletionModel::Emoji) {
|
||||
auto shortcode = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
|
||||
auto text = getText();
|
||||
auto at = text.indexOf(QLatin1Char(':'), fromIndex);
|
||||
QTextCursor cursor(document()->textDocument());
|
||||
cursor.setPosition(at);
|
||||
cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
cursor.insertText(shortcode);
|
||||
}
|
||||
// if (m_completionModel->autoCompletionType() == CompletionModel::User) {
|
||||
// auto name = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::DisplayNameRole).toString();
|
||||
// auto id = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
|
||||
// auto text = getText();
|
||||
// auto at = text.indexOf(QLatin1Char('@'), fromIndex);
|
||||
// QTextCursor cursor(document()->textDocument());
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
// cursor.insertText(name + u" "_s);
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursor.position() + name.size(), QTextCursor::KeepAnchor);
|
||||
// cursor.setKeepPositionOnInsert(true);
|
||||
// pushMention({cursor, name, 0, 0, id});
|
||||
// m_highlighter->rehighlight();
|
||||
// } else if (m_completionModel->autoCompletionType() == CompletionModel::Command) {
|
||||
// auto command = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
|
||||
// auto text = getText();
|
||||
// auto at = text.indexOf(QLatin1Char('/'), fromIndex);
|
||||
// QTextCursor cursor(document()->textDocument());
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
// cursor.insertText(u"/%1 "_s.arg(command));
|
||||
// } else if (m_completionModel->autoCompletionType() == CompletionModel::Room) {
|
||||
// auto alias = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::SubtitleRole).toString();
|
||||
// auto text = getText();
|
||||
// auto at = text.indexOf(QLatin1Char('#'), fromIndex);
|
||||
// QTextCursor cursor(document()->textDocument());
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
// cursor.insertText(alias + u" "_s);
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursor.position() + alias.size(), QTextCursor::KeepAnchor);
|
||||
// cursor.setKeepPositionOnInsert(true);
|
||||
// pushMention({cursor, alias, 0, 0, alias});
|
||||
// m_highlighter->rehighlight();
|
||||
// } else if (m_completionModel->autoCompletionType() == CompletionModel::Emoji) {
|
||||
// auto shortcode = m_completionModel->data(m_completionModel->index(index, 0), CompletionModel::ReplacedTextRole).toString();
|
||||
// auto text = getText();
|
||||
// auto at = text.indexOf(QLatin1Char(':'), fromIndex);
|
||||
// QTextCursor cursor(document()->textDocument());
|
||||
// cursor.setPosition(at);
|
||||
// cursor.setPosition(cursorPosition(), QTextCursor::KeepAnchor);
|
||||
// cursor.insertText(shortcode);
|
||||
// }
|
||||
}
|
||||
|
||||
CompletionModel *ChatDocumentHandler::completionModel() const
|
||||
|
||||
@@ -8,19 +8,16 @@
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QFile>
|
||||
#include <QGuiApplication>
|
||||
#include <QTimer>
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#include <Quotient/csapi/notifications.h>
|
||||
#include <Quotient/qt_connection_util.h>
|
||||
#include <Quotient/settings.h>
|
||||
|
||||
#include "neochatconfig.h"
|
||||
#include "neochatconnection.h"
|
||||
#include "neochatroom.h"
|
||||
#include "notificationsmanager.h"
|
||||
// #include "neochatroom.h"
|
||||
// #include "notificationsmanager.h"
|
||||
#include "proxycontroller.h"
|
||||
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
|
||||
@@ -43,12 +40,13 @@
|
||||
|
||||
bool testMode = false;
|
||||
|
||||
using namespace Quotient;
|
||||
using namespace Integral;
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
Controller::Controller(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
Connection::setRoomType<NeoChatRoom>();
|
||||
// Connection::setRoomType<NeoChatRoom>();
|
||||
|
||||
ProxyController::instance().setApplicationProxy();
|
||||
|
||||
@@ -57,18 +55,18 @@ Controller::Controller(QObject *parent)
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::SystemTrayChanged, this, &Controller::setQuitOnLastWindowClosed);
|
||||
#endif
|
||||
|
||||
if (!testMode) {
|
||||
QTimer::singleShot(0, this, [this] {
|
||||
invokeLogin();
|
||||
});
|
||||
} else {
|
||||
auto c = new NeoChatConnection(this);
|
||||
c->assumeIdentity(u"@user:localhost:1234"_s, u"device_1234"_s, u"token_1234"_s);
|
||||
connect(c, &Connection::connected, this, [c, this]() {
|
||||
m_accountRegistry.add(c);
|
||||
c->syncLoop();
|
||||
});
|
||||
}
|
||||
// if (!testMode) {
|
||||
// QTimer::singleShot(0, this, [this] {
|
||||
// invokeLogin();
|
||||
// });
|
||||
// } else {
|
||||
// auto c = new NeoChatConnection(this);
|
||||
// c->assumeIdentity(u"@user:localhost:1234"_s, u"device_1234"_s, u"token_1234"_s);
|
||||
// connect(c, &Connection::connected, this, [c, this]() {
|
||||
// m_accountRegistry.add(c);
|
||||
// c->syncLoop();
|
||||
// });
|
||||
// }
|
||||
|
||||
QObject::connect(QGuiApplication::instance(), &QCoreApplication::aboutToQuit, QGuiApplication::instance(), [this] {
|
||||
delete m_trayIcon;
|
||||
@@ -99,31 +97,31 @@ Controller::Controller(QObject *parent)
|
||||
#endif
|
||||
|
||||
static int oldAccountCount = 0;
|
||||
connect(&m_accountRegistry, &AccountRegistry::accountCountChanged, this, [this]() {
|
||||
if (m_accountRegistry.size() > oldAccountCount) {
|
||||
auto connection = dynamic_cast<NeoChatConnection *>(m_accountRegistry.accounts()[m_accountRegistry.size() - 1]);
|
||||
connect(
|
||||
connection,
|
||||
&NeoChatConnection::syncDone,
|
||||
this,
|
||||
[this, connection] {
|
||||
if (!m_endpoint.isEmpty()) {
|
||||
connection->setupPushNotifications(m_endpoint);
|
||||
}
|
||||
},
|
||||
Qt::SingleShotConnection);
|
||||
}
|
||||
oldAccountCount = m_accountRegistry.size();
|
||||
});
|
||||
// connect(&m_accountRegistry, &AccountRegistry::accountCountChanged, this, [this]() {
|
||||
// if (m_accountRegistry.size() > oldAccountCount) {
|
||||
// auto connection = dynamic_cast<NeoChatConnection *>(m_accountRegistry.accounts()[m_accountRegistry.size() - 1]);
|
||||
// connect(
|
||||
// connection,
|
||||
// &NeoChatConnection::syncDone,
|
||||
// this,
|
||||
// [this, connection] {
|
||||
// if (!m_endpoint.isEmpty()) {
|
||||
// connection->setupPushNotifications(m_endpoint);
|
||||
// }
|
||||
// },
|
||||
// Qt::SingleShotConnection);
|
||||
// }
|
||||
// oldAccountCount = m_accountRegistry.size();
|
||||
// });
|
||||
|
||||
#ifdef HAVE_KUNIFIEDPUSH
|
||||
auto connector = new KUnifiedPush::Connector(u"org.kde.neochat"_s);
|
||||
connect(connector, &KUnifiedPush::Connector::endpointChanged, this, [this](const QString &endpoint) {
|
||||
m_endpoint = endpoint;
|
||||
for (auto "ientConnection : m_accountRegistry) {
|
||||
auto connection = dynamic_cast<NeoChatConnection *>(quotientConnection);
|
||||
connection->setupPushNotifications(endpoint);
|
||||
}
|
||||
// for (auto "ientConnection : m_accountRegistry) {
|
||||
// auto connection = dynamic_cast<NeoChatConnection *>(quotientConnection);
|
||||
// connection->setupPushNotifications(endpoint);
|
||||
// }
|
||||
});
|
||||
|
||||
connector->registerClient(
|
||||
@@ -140,147 +138,6 @@ Controller &Controller::instance()
|
||||
return _instance;
|
||||
}
|
||||
|
||||
void Controller::addConnection(NeoChatConnection *c)
|
||||
{
|
||||
Q_ASSERT_X(c, __FUNCTION__, "Attempt to add a null connection");
|
||||
|
||||
m_accountRegistry.add(c);
|
||||
|
||||
c->setLazyLoading(true);
|
||||
|
||||
connect(c, &NeoChatConnection::syncDone, this, [c] {
|
||||
c->sync(30000);
|
||||
c->saveState();
|
||||
});
|
||||
connect(c, &NeoChatConnection::loggedOut, this, [this, c] {
|
||||
if (accounts().count() > 1) {
|
||||
// Only set the connection if the account being logged out is currently active
|
||||
if (c == activeConnection()) {
|
||||
setActiveConnection(dynamic_cast<NeoChatConnection *>(accounts().accounts()[0]));
|
||||
}
|
||||
} else {
|
||||
setActiveConnection(nullptr);
|
||||
}
|
||||
|
||||
dropConnection(c);
|
||||
});
|
||||
connect(c, &NeoChatConnection::badgeNotificationCountChanged, this, &Controller::updateBadgeNotificationCount);
|
||||
connect(c, &NeoChatConnection::syncDone, this, [this, c]() {
|
||||
m_notificationsManager.handleNotifications(c);
|
||||
});
|
||||
|
||||
c->sync();
|
||||
|
||||
Q_EMIT connectionAdded(c);
|
||||
}
|
||||
|
||||
void Controller::dropConnection(NeoChatConnection *c)
|
||||
{
|
||||
Q_ASSERT_X(c, __FUNCTION__, "Attempt to drop a null connection");
|
||||
|
||||
c->disconnect(this);
|
||||
c->disconnect(&m_notificationsManager);
|
||||
m_accountRegistry.drop(c);
|
||||
Q_EMIT connectionDropped(c);
|
||||
}
|
||||
|
||||
void Controller::invokeLogin()
|
||||
{
|
||||
const auto accounts = SettingsGroup("Accounts"_L1).childGroups();
|
||||
for (const auto &accountId : accounts) {
|
||||
AccountSettings account{accountId};
|
||||
m_accountsLoading += accountId;
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
if (!account.homeserver().isEmpty()) {
|
||||
auto accessTokenLoadingJob = loadAccessTokenFromKeyChain(account.userId());
|
||||
connect(accessTokenLoadingJob, &QKeychain::Job::finished, this, [accountId, this, accessTokenLoadingJob](QKeychain::Job *) {
|
||||
AccountSettings account{accountId};
|
||||
QString accessToken;
|
||||
if (accessTokenLoadingJob->error() == QKeychain::Error::NoError) {
|
||||
accessToken = QString::fromLatin1(accessTokenLoadingJob->binaryData());
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
auto connection = new NeoChatConnection(account.homeserver());
|
||||
m_connectionsLoading[accountId] = connection;
|
||||
connect(connection, &NeoChatConnection::connected, this, [this, connection, accountId] {
|
||||
connection->loadState();
|
||||
if (connection->allRooms().size() == 0 || connection->allRooms()[0]->currentState().get<RoomCreateEvent>()) {
|
||||
addConnection(connection);
|
||||
m_accountsLoading.removeAll(connection->userId());
|
||||
m_connectionsLoading.remove(accountId);
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
} else {
|
||||
connect(
|
||||
connection->allRooms()[0],
|
||||
&Room::baseStateLoaded,
|
||||
this,
|
||||
[this, connection, accountId]() {
|
||||
addConnection(connection);
|
||||
m_accountsLoading.removeAll(connection->userId());
|
||||
m_connectionsLoading.remove(accountId);
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
},
|
||||
Qt::SingleShotConnection);
|
||||
}
|
||||
});
|
||||
connection->assumeIdentity(account.userId(), account.deviceId(), accessToken);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QKeychain::ReadPasswordJob *Controller::loadAccessTokenFromKeyChain(const QString &userId)
|
||||
{
|
||||
qDebug() << "Reading access token from the keychain for" << userId;
|
||||
auto job = new QKeychain::ReadPasswordJob(qAppName(), this);
|
||||
job->setKey(userId);
|
||||
|
||||
// Handling of errors
|
||||
connect(job, &QKeychain::Job::finished, this, [this, job]() {
|
||||
if (job->error() == QKeychain::Error::NoError) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (job->error()) {
|
||||
case QKeychain::EntryNotFound:
|
||||
Q_EMIT errorOccured(i18n("Access token wasn't found: Maybe it was deleted?"));
|
||||
break;
|
||||
case QKeychain::AccessDeniedByUser:
|
||||
case QKeychain::AccessDenied:
|
||||
Q_EMIT errorOccured(i18n("Access to keychain was denied: Please allow NeoChat to read the access token"));
|
||||
break;
|
||||
case QKeychain::NoBackendAvailable:
|
||||
Q_EMIT errorOccured(i18n("No keychain available: Please install a keychain, e.g. KWallet or GNOME keyring on Linux"));
|
||||
break;
|
||||
case QKeychain::OtherError:
|
||||
Q_EMIT errorOccured(i18n("Unable to read access token: %1", job->errorString()));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
job->start();
|
||||
|
||||
return job;
|
||||
}
|
||||
|
||||
void Controller::saveAccessTokenToKeyChain(const QString &userId, const QByteArray &accessToken)
|
||||
{
|
||||
qDebug() << "Save the access token to the keychain for " << userId;
|
||||
auto job = new QKeychain::WritePasswordJob(qAppName());
|
||||
job->setAutoDelete(true);
|
||||
job->setKey(userId);
|
||||
job->setBinaryData(accessToken);
|
||||
connect(job, &QKeychain::WritePasswordJob::finished, this, [job]() {
|
||||
if (job->error()) {
|
||||
qWarning() << "Could not save access token to the keychain: " << qPrintable(job->errorString());
|
||||
}
|
||||
});
|
||||
job->start();
|
||||
}
|
||||
|
||||
bool Controller::supportSystemTray() const
|
||||
{
|
||||
#ifdef Q_OS_ANDROID
|
||||
@@ -322,7 +179,7 @@ void Controller::setActiveConnection(NeoChatConnection *connection)
|
||||
|
||||
if (m_connection != nullptr) {
|
||||
m_connection->disconnect(this);
|
||||
m_connection->disconnect(&m_notificationsManager);
|
||||
// m_connection->disconnect(&m_notificationsManager);
|
||||
}
|
||||
|
||||
m_connection = connection;
|
||||
@@ -331,7 +188,7 @@ void Controller::setActiveConnection(NeoChatConnection *connection)
|
||||
m_connection->refreshBadgeNotificationCount();
|
||||
updateBadgeNotificationCount(m_connection, m_connection->badgeNotificationCount());
|
||||
|
||||
connect(m_connection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
|
||||
// connect(m_connection, &NeoChatConnection::errorOccured, this, &Controller::errorOccured);
|
||||
}
|
||||
|
||||
Q_EMIT activeConnectionChanged(m_connection);
|
||||
@@ -346,7 +203,7 @@ void Controller::listenForNotifications()
|
||||
connect(timer, &QTimer::timeout, qGuiApp, &QGuiApplication::quit);
|
||||
|
||||
connect(connector, &KUnifiedPush::Connector::messageReceived, [timer](const QByteArray &data) {
|
||||
instance().m_notificationsManager.postPushNotification(data);
|
||||
// instance().m_notificationsManager.postPushNotification(data);
|
||||
timer->stop();
|
||||
});
|
||||
|
||||
@@ -360,7 +217,7 @@ void Controller::listenForNotifications()
|
||||
|
||||
void Controller::clearInvitationNotification(const QString &roomId)
|
||||
{
|
||||
m_notificationsManager.clearInvitationNotification(roomId);
|
||||
// m_notificationsManager.clearInvitationNotification(roomId);
|
||||
}
|
||||
|
||||
void Controller::updateBadgeNotificationCount(NeoChatConnection *connection, int count)
|
||||
@@ -402,9 +259,9 @@ bool Controller::isFlatpak() const
|
||||
#endif
|
||||
}
|
||||
|
||||
AccountRegistry &Controller::accounts()
|
||||
Accounts &Controller::accounts()
|
||||
{
|
||||
return m_accountRegistry;
|
||||
return m_accounts;
|
||||
}
|
||||
|
||||
QString Controller::loadFileContent(const QString &path) const
|
||||
@@ -420,20 +277,6 @@ void Controller::setTestMode(bool test)
|
||||
testMode = test;
|
||||
}
|
||||
|
||||
void Controller::removeConnection(const QString &userId)
|
||||
{
|
||||
// When loadAccessTokenFromKeyChain() fails m_connectionsLoading won't have an
|
||||
// entry for it so we need to check both separately.
|
||||
if (m_accountsLoading.contains(userId)) {
|
||||
m_accountsLoading.removeAll(userId);
|
||||
Q_EMIT accountsLoadingChanged();
|
||||
}
|
||||
if (m_connectionsLoading.contains(userId) && m_connectionsLoading[userId]) {
|
||||
auto connection = m_connectionsLoading[userId];
|
||||
SettingsGroup("Accounts"_L1).remove(userId);
|
||||
}
|
||||
}
|
||||
|
||||
bool Controller::csSupported() const
|
||||
{
|
||||
return true;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include "neochatconnection.h"
|
||||
#include "notificationsmanager.h"
|
||||
#include <Quotient/accountregistry.h>
|
||||
// #include "notificationsmanager.h"
|
||||
#include <Integral/Accounts>
|
||||
|
||||
class TrayIcon;
|
||||
|
||||
@@ -63,21 +63,6 @@ public:
|
||||
void setActiveConnection(NeoChatConnection *connection);
|
||||
[[nodiscard]] NeoChatConnection *activeConnection() const;
|
||||
|
||||
/**
|
||||
* @brief Add a new connection to the account registry.
|
||||
*/
|
||||
void addConnection(NeoChatConnection *c);
|
||||
|
||||
/**
|
||||
* @brief Drop a connection from the account registry.
|
||||
*/
|
||||
void dropConnection(NeoChatConnection *c);
|
||||
|
||||
/**
|
||||
* @brief Save an access token to the keychain for the given account.
|
||||
*/
|
||||
void saveAccessTokenToKeyChain(const QString &userId, const QByteArray &accessToken);
|
||||
|
||||
[[nodiscard]] bool supportSystemTray() const;
|
||||
|
||||
bool isFlatpak() const;
|
||||
@@ -97,12 +82,10 @@ public:
|
||||
|
||||
Q_INVOKABLE QString loadFileContent(const QString &path) const;
|
||||
|
||||
Quotient::AccountRegistry &accounts();
|
||||
Integral::Accounts &accounts();
|
||||
|
||||
static void setTestMode(bool testMode);
|
||||
|
||||
Q_INVOKABLE void removeConnection(const QString &userId);
|
||||
|
||||
bool csSupported() const;
|
||||
|
||||
/**
|
||||
@@ -122,18 +105,15 @@ private:
|
||||
QPointer<NeoChatConnection> m_connection;
|
||||
TrayIcon *m_trayIcon = nullptr;
|
||||
|
||||
QKeychain::ReadPasswordJob *loadAccessTokenFromKeyChain(const QString &account);
|
||||
|
||||
Quotient::AccountRegistry m_accountRegistry;
|
||||
Integral::Accounts m_accounts;
|
||||
QStringList m_accountsLoading;
|
||||
QMap<QString, QPointer<NeoChatConnection>> m_connectionsLoading;
|
||||
QString m_endpoint;
|
||||
QStringList m_shownImages;
|
||||
|
||||
NotificationsManager m_notificationsManager;
|
||||
// NotificationsManager m_notificationsManager;
|
||||
|
||||
private Q_SLOTS:
|
||||
void invokeLogin();
|
||||
void setQuitOnLastWindowClosed();
|
||||
void updateBadgeNotificationCount(NeoChatConnection *connection, int count);
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "neochatroom.h"
|
||||
#include <Quotient/quotient_common.h>
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <Integral/lib.rs.h>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
class NeoChatRoomType : public QObject
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
/**
|
||||
* @brief Defines the room list categories a room can be assigned.
|
||||
*/
|
||||
enum Types {
|
||||
enum Type {
|
||||
Invited, /**< The user has been invited to the room. */
|
||||
Favorite, /**< The room is set as a favourite. */
|
||||
Direct, /**< The room is a direct chat. */
|
||||
@@ -32,23 +32,23 @@ public:
|
||||
AddDirect, /**< So we can show the add friend delegate. */
|
||||
TypesCount, /**< Number of different types (this should always be last). */
|
||||
};
|
||||
Q_ENUM(Types);
|
||||
Q_ENUM(Type);
|
||||
|
||||
static NeoChatRoomType::Types typeForRoom(const NeoChatRoom *room)
|
||||
static NeoChatRoomType::Type typeForRoom(rust::Box<sdk::RoomListRoom> room)
|
||||
{
|
||||
if (room->isSpace()) {
|
||||
if (room->is_space()) {
|
||||
return NeoChatRoomType::Space;
|
||||
}
|
||||
if (room->joinState() == Quotient::JoinState::Invite) {
|
||||
if (room->state() == 2) {
|
||||
return NeoChatRoomType::Invited;
|
||||
}
|
||||
if (room->isFavourite()) {
|
||||
if (room->is_favourite()) {
|
||||
return NeoChatRoomType::Favorite;
|
||||
}
|
||||
if (room->isLowPriority()) {
|
||||
if (room->is_low_priority()) {
|
||||
return NeoChatRoomType::Deprioritized;
|
||||
}
|
||||
if (room->isDirectChat()) {
|
||||
if (false /*room->isDirectChat()*/) {
|
||||
return NeoChatRoomType::Direct;
|
||||
}
|
||||
return NeoChatRoomType::Normal;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
// SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
@@ -5,8 +6,8 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "neochatconfig.h"
|
||||
#include "neochatroom.h"
|
||||
// #include "neochatconfig.h"
|
||||
#include <Integral/Utils>
|
||||
|
||||
namespace
|
||||
{
|
||||
@@ -56,27 +57,27 @@ QList<RoomSortParameter::Parameter> RoomSortParameter::allParameterList()
|
||||
|
||||
QList<RoomSortParameter::Parameter> RoomSortParameter::currentParameterList()
|
||||
{
|
||||
QList<RoomSortParameter::Parameter> configParamList;
|
||||
switch (static_cast<NeoChatConfig::EnumSortOrder::type>(NeoChatConfig::sortOrder())) {
|
||||
case NeoChatConfig::EnumSortOrder::Activity:
|
||||
configParamList = activitySortPriorities;
|
||||
break;
|
||||
case NeoChatConfig::EnumSortOrder::Alphabetical:
|
||||
configParamList = alphabeticalSortPriorities;
|
||||
break;
|
||||
case NeoChatConfig::EnumSortOrder::LastMessage:
|
||||
configParamList = lastMessageSortPriorities;
|
||||
break;
|
||||
case NeoChatConfig::EnumSortOrder::Custom: {
|
||||
const auto intList = NeoChatConfig::customSortOrder();
|
||||
std::transform(intList.constBegin(), intList.constEnd(), std::back_inserter(configParamList), [](int param) {
|
||||
return static_cast<Parameter>(param);
|
||||
});
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
QList<RoomSortParameter::Parameter> configParamList = activitySortPriorities;
|
||||
// switch (static_cast<NeoChatConfig::EnumSortOrder::type>(NeoChatConfig::sortOrder())) {
|
||||
// case NeoChatConfig::EnumSortOrder::Activity:
|
||||
// configParamList = activitySortPriorities;
|
||||
// break;
|
||||
// case NeoChatConfig::EnumSortOrder::Alphabetical:
|
||||
// configParamList = alphabeticalSortPriorities;
|
||||
// break;
|
||||
// case NeoChatConfig::EnumSortOrder::LastMessage:
|
||||
// configParamList = lastMessageSortPriorities;
|
||||
// break;
|
||||
// case NeoChatConfig::EnumSortOrder::Custom: {
|
||||
// const auto intList = NeoChatConfig::customSortOrder();
|
||||
// std::transform(intList.constBegin(), intList.constEnd(), std::back_inserter(configParamList), [](int param) {
|
||||
// return static_cast<Parameter>(param);
|
||||
// });
|
||||
// break;
|
||||
// }
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
|
||||
if (configParamList.isEmpty()) {
|
||||
return activitySortPriorities;
|
||||
@@ -90,73 +91,74 @@ void RoomSortParameter::saveNewParameterList(const QList<Parameter> &newList)
|
||||
std::transform(newList.constBegin(), newList.constEnd(), std::back_inserter(intList), [](Parameter param) {
|
||||
return static_cast<int>(param);
|
||||
});
|
||||
NeoChatConfig::setCustomSortOrder(intList);
|
||||
NeoChatConfig::setSortOrder(NeoChatConfig::EnumSortOrder::Custom);
|
||||
NeoChatConfig::self()->save();
|
||||
// NeoChatConfig::setCustomSortOrder(intList);
|
||||
// NeoChatConfig::setSortOrder(NeoChatConfig::EnumSortOrder::Custom);
|
||||
// NeoChatConfig::self()->save();
|
||||
}
|
||||
|
||||
int RoomSortParameter::compareParameter(Parameter parameter, NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter(Parameter parameter, rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
switch (parameter) {
|
||||
case AlphabeticalAscending:
|
||||
return compareParameter<AlphabeticalAscending>(leftRoom, rightRoom);
|
||||
return compareParameter<AlphabeticalAscending>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case AlphabeticalDescending:
|
||||
return compareParameter<AlphabeticalDescending>(leftRoom, rightRoom);
|
||||
return compareParameter<AlphabeticalDescending>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case HasUnread:
|
||||
return compareParameter<HasUnread>(leftRoom, rightRoom);
|
||||
return compareParameter<HasUnread>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case MostUnread:
|
||||
return compareParameter<MostUnread>(leftRoom, rightRoom);
|
||||
return compareParameter<MostUnread>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case HasHighlight:
|
||||
return compareParameter<HasHighlight>(leftRoom, rightRoom);
|
||||
return compareParameter<HasHighlight>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case MostHighlights:
|
||||
return compareParameter<MostHighlights>(leftRoom, rightRoom);
|
||||
return compareParameter<MostHighlights>(leftRoom->box_me(), rightRoom->box_me());
|
||||
case LastActive:
|
||||
return compareParameter<LastActive>(leftRoom, rightRoom);
|
||||
return compareParameter<LastActive>(leftRoom->box_me(), rightRoom->box_me());
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return -typeCompare(leftRoom->displayName(), rightRoom->displayName());
|
||||
return -typeCompare(stringFromRust(leftRoom->display_name()), stringFromRust(rightRoom->display_name()));
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(rust::Box<sdk::RoomListRoom> leftRoom,
|
||||
rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return typeCompare(leftRoom->displayName(), rightRoom->displayName());
|
||||
return typeCompare(stringFromRust(leftRoom->display_name()), stringFromRust(rightRoom->display_name()));
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return typeCompare(leftRoom->contextAwareNotificationCount() > 0, rightRoom->contextAwareNotificationCount() > 0);
|
||||
return typeCompare(leftRoom->num_unread_messages() > 0, rightRoom->num_unread_messages() > 0);
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return typeCompare(leftRoom->contextAwareNotificationCount(), rightRoom->contextAwareNotificationCount());
|
||||
return typeCompare(leftRoom->num_unread_messages(), rightRoom->num_unread_messages());
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
const auto leftHighlight = leftRoom->highlightCount() > 0 && leftRoom->contextAwareNotificationCount() > 0;
|
||||
const auto rightHighlight = rightRoom->highlightCount() > 0 && rightRoom->contextAwareNotificationCount() > 0;
|
||||
const auto leftHighlight = leftRoom->num_unread_mentions() > 0 && leftRoom->num_unread_messages() > 0;
|
||||
const auto rightHighlight = rightRoom->num_unread_mentions() > 0 && rightRoom->num_unread_messages() > 0;
|
||||
return typeCompare(leftHighlight, rightHighlight);
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return typeCompare(int(leftRoom->highlightCount()), int(rightRoom->highlightCount()));
|
||||
return typeCompare(int(leftRoom->num_unread_mentions()), int(rightRoom->num_unread_mentions()));
|
||||
}
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom)
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom)
|
||||
{
|
||||
return typeCompare(leftRoom->lastActiveTime(), rightRoom->lastActiveTime());
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
class NeoChatRoom;
|
||||
#include <Integral/lib.rs.h>
|
||||
|
||||
class Room;
|
||||
|
||||
/**
|
||||
* @class RoomSortParameter
|
||||
@@ -116,27 +118,29 @@ public:
|
||||
*
|
||||
* @sa Parameter
|
||||
*/
|
||||
static int compareParameter(Parameter parameter, NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
static int compareParameter(Parameter parameter, rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
|
||||
private:
|
||||
template<Parameter parameter>
|
||||
static int compareParameter(NeoChatRoom *, NeoChatRoom *)
|
||||
static int compareParameter(rust::Box<sdk::RoomListRoom>, rust::Box<sdk::RoomListRoom>)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalAscending>(rust::Box<sdk::RoomListRoom> leftRoom,
|
||||
rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::AlphabeticalDescending>(rust::Box<sdk::RoomListRoom> leftRoom,
|
||||
rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostUnread>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::HasHighlight>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::MostHighlights>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
template<>
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(NeoChatRoom *leftRoom, NeoChatRoom *rightRoom);
|
||||
int RoomSortParameter::compareParameter<RoomSortParameter::LastActive>(rust::Box<sdk::RoomListRoom> leftRoom, rust::Box<sdk::RoomListRoom> rightRoom);
|
||||
|
||||
@@ -5,44 +5,36 @@
|
||||
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include <Quotient/accountregistry.h>
|
||||
#include <Quotient/e2ee/sssshandler.h>
|
||||
#include <Quotient/keyimport.h>
|
||||
#include <Quotient/keyverificationsession.h>
|
||||
#include <Quotient/roommember.h>
|
||||
#include <Integral/Accounts>
|
||||
#include <Integral/Homeserver>
|
||||
|
||||
#include "controller.h"
|
||||
#include "neochatconfig.h"
|
||||
|
||||
struct ForeignAccountRegistry {
|
||||
struct ForeignAccounts {
|
||||
Q_GADGET
|
||||
QML_FOREIGN(Quotient::AccountRegistry)
|
||||
QML_NAMED_ELEMENT(AccountRegistry)
|
||||
QML_ELEMENT
|
||||
QML_SINGLETON
|
||||
public:
|
||||
static Quotient::AccountRegistry *create(QQmlEngine *, QJSEngine *)
|
||||
QML_FOREIGN(Integral::Accounts)
|
||||
QML_NAMED_ELEMENT(Accounts)
|
||||
static Integral::Accounts *create(QQmlEngine *, QJSEngine *)
|
||||
{
|
||||
QQmlEngine::setObjectOwnership(&Controller::instance().accounts(), QQmlEngine::CppOwnership);
|
||||
return &Controller::instance().accounts();
|
||||
auto &accounts = Controller::instance().accounts();
|
||||
QQmlEngine::setObjectOwnership(&accounts, QQmlEngine::CppOwnership);
|
||||
return &accounts;
|
||||
}
|
||||
};
|
||||
|
||||
struct ForeignKeyVerificationSession {
|
||||
struct ForeignHomeserver {
|
||||
Q_GADGET
|
||||
QML_FOREIGN(Quotient::KeyVerificationSession)
|
||||
QML_NAMED_ELEMENT(KeyVerificationSession)
|
||||
QML_UNCREATABLE("")
|
||||
QML_ELEMENT
|
||||
QML_FOREIGN(Integral::Homeserver)
|
||||
QML_NAMED_ELEMENT(Homeserver)
|
||||
};
|
||||
|
||||
struct ForeignSSSSHandler {
|
||||
struct ForeignConnection {
|
||||
Q_GADGET
|
||||
QML_FOREIGN(Quotient::SSSSHandler)
|
||||
QML_NAMED_ELEMENT(SSSSHandler)
|
||||
};
|
||||
|
||||
struct ForeignKeyImport {
|
||||
Q_GADGET
|
||||
QML_SINGLETON
|
||||
QML_FOREIGN(Quotient::KeyImport)
|
||||
QML_NAMED_ELEMENT(KeyImport)
|
||||
QML_ELEMENT
|
||||
QML_FOREIGN(Integral::Connection)
|
||||
QML_NAMED_ELEMENT(Connection)
|
||||
};
|
||||
|
||||
@@ -16,8 +16,15 @@ LoginStep {
|
||||
onActiveFocusChanged: if (activeFocus)
|
||||
matrixIdField.forceActiveFocus()
|
||||
|
||||
Component.onCompleted: {
|
||||
LoginHelper.matrixId = "";
|
||||
property Homeserver homeserver
|
||||
|
||||
Timer {
|
||||
id: timer
|
||||
interval: 500
|
||||
repeat: false
|
||||
onTriggered: if (matrixIdField.text.length > 0) {
|
||||
root.homeserver.resolveFromMatrixId(matrixIdField.text)
|
||||
}
|
||||
}
|
||||
|
||||
FormCard.FormTextFieldDelegate {
|
||||
@@ -26,7 +33,7 @@ LoginStep {
|
||||
placeholderText: "@user:example.org"
|
||||
Accessible.name: i18n("Matrix ID")
|
||||
onTextChanged: {
|
||||
LoginHelper.matrixId = text;
|
||||
timer.restart()
|
||||
}
|
||||
|
||||
Keys.onReturnPressed: {
|
||||
@@ -35,17 +42,17 @@ LoginStep {
|
||||
}
|
||||
|
||||
nextAction: Kirigami.Action {
|
||||
text: LoginHelper.isLoggedIn ? i18n("Already logged in") : (LoginHelper.testing && matrixIdField.acceptableInput) ? i18n("Loading…") : i18nc("@action:button", "Continue")
|
||||
// text: LoginHelper.isLoggedIn ? i18n("Already logged in") : (LoginHelper.testing && matrixIdField.acceptableInput) ? i18n("Loading…") : i18nc("@action:button", "Continue")
|
||||
onTriggered: {
|
||||
if (LoginHelper.supportsSso && LoginHelper.supportsPassword) {
|
||||
if (root.homeserver.ssoLoginSupported && root.homeserver.passwordLoginSupported) {
|
||||
processed("LoginMethod");
|
||||
} else if (LoginHelper.supportsSso) {
|
||||
} else if (root.homeserver.ssoLoginSupported) {
|
||||
processed("Sso");
|
||||
} else {
|
||||
processed("Password");
|
||||
}
|
||||
}
|
||||
enabled: LoginHelper.homeserverReachable
|
||||
enabled: root.homeserver.loginFlowsLoaded
|
||||
}
|
||||
previousAction: Kirigami.Action {
|
||||
onTriggered: {
|
||||
|
||||
@@ -12,6 +12,8 @@ import org.kde.neochat
|
||||
LoginStep {
|
||||
id: root
|
||||
|
||||
property Homeserver homeserver
|
||||
|
||||
Connections {
|
||||
target: LoginHelper
|
||||
function onConnected() {
|
||||
@@ -26,7 +28,6 @@ LoginStep {
|
||||
id: passwordField
|
||||
|
||||
label: i18n("Password:")
|
||||
onTextChanged: LoginHelper.password = text
|
||||
enabled: !LoginHelper.isLoggingIn
|
||||
echoMode: TextInput.Password
|
||||
Accessible.name: i18n("Password")
|
||||
@@ -39,10 +40,10 @@ LoginStep {
|
||||
|
||||
nextAction: Kirigami.Action {
|
||||
text: i18nc("@action:button", "Login")
|
||||
enabled: passwordField.text.length > 0 && !LoginHelper.isLoggingIn
|
||||
// enabled: passwordField.text.length > 0 && !LoginHelper.isLoggingIn
|
||||
onTriggered: {
|
||||
root.clearError();
|
||||
LoginHelper.login();
|
||||
let pending = Accounts.loginWithPassword(root.homeserver.matrixId, passwordField.text)
|
||||
}
|
||||
}
|
||||
previousAction: Kirigami.Action {
|
||||
|
||||
@@ -27,6 +27,10 @@ Kirigami.Page {
|
||||
title: i18n("Welcome")
|
||||
globalToolBarStyle: Kirigami.ApplicationHeaderStyle.None
|
||||
|
||||
Homeserver {
|
||||
id: homeserver
|
||||
}
|
||||
|
||||
header: QQC2.Control {
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
@@ -81,7 +85,7 @@ Kirigami.Page {
|
||||
FormCard.FormHeader {
|
||||
id: existingAccountsHeader
|
||||
title: i18nc("@title", "Continue with an existing account")
|
||||
visible: (loadedAccounts.count > 0 || loadingAccounts.count > 0) && root._showExisting
|
||||
// visible: (loadedAccounts.count > 0 || loadingAccounts.count > 0) && root._showExisting
|
||||
maximumWidth: Kirigami.Units.gridUnit * 20
|
||||
}
|
||||
|
||||
@@ -90,15 +94,21 @@ Kirigami.Page {
|
||||
maximumWidth: Kirigami.Units.gridUnit * 20
|
||||
Repeater {
|
||||
id: loadedAccounts
|
||||
model: AccountRegistry
|
||||
model: Accounts
|
||||
delegate: FormCard.FormButtonDelegate {
|
||||
id: delegate
|
||||
|
||||
required property string userId
|
||||
required property NeoChatConnection connection
|
||||
required property string matrixId
|
||||
required property string displayName
|
||||
required property string avatarUrl
|
||||
required property int index
|
||||
required property bool ready
|
||||
required property Connection connection
|
||||
|
||||
text: QmlUtils.escapeString(connection.localUser.displayName)
|
||||
description: connection.localUser.id
|
||||
enabled: ready
|
||||
|
||||
text: QmlUtils.escapeString(delegate.displayName)
|
||||
description: delegate.matrixId
|
||||
leadingPadding: Kirigami.Units.largeSpacing
|
||||
|
||||
onClicked: {
|
||||
@@ -109,62 +119,12 @@ Kirigami.Page {
|
||||
id: avatar
|
||||
name: delegate.text
|
||||
// Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl.
|
||||
source: delegate.connection.localUser.avatarUrl.toString().length > 0 ? delegate.connection.makeMediaUrl(delegate.connection.localUser.avatarUrl) : ""
|
||||
source: delegate.avatarUrl
|
||||
implicitWidth: Kirigami.Units.iconSizes.medium
|
||||
implicitHeight: Kirigami.Units.iconSizes.medium
|
||||
}
|
||||
}
|
||||
}
|
||||
Repeater {
|
||||
id: loadingAccounts
|
||||
model: Controller.accountsLoading
|
||||
delegate: FormCard.AbstractFormDelegate {
|
||||
id: loadingDelegate
|
||||
|
||||
topPadding: Kirigami.Units.smallSpacing
|
||||
bottomPadding: Kirigami.Units.smallSpacing
|
||||
|
||||
background: null
|
||||
contentItem: RowLayout {
|
||||
spacing: 0
|
||||
|
||||
QQC2.Label {
|
||||
Layout.fillWidth: true
|
||||
text: i18nc("As in 'this account is still loading'", "%1 (loading)", modelData)
|
||||
elide: Text.ElideRight
|
||||
wrapMode: Text.Wrap
|
||||
maximumLineCount: 2
|
||||
color: Kirigami.Theme.disabledTextColor
|
||||
Accessible.ignored: true // base class sets this text on root already
|
||||
}
|
||||
|
||||
QQC2.ToolButton {
|
||||
text: i18nc("@action:button", "Log out of this account")
|
||||
icon.name: "im-kick-user"
|
||||
onClicked: Controller.removeConnection(modelData)
|
||||
display: QQC2.Button.IconOnly
|
||||
QQC2.ToolTip.text: text
|
||||
QQC2.ToolTip.visible: hovered
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
enabled: true
|
||||
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
|
||||
}
|
||||
|
||||
FormCard.FormArrow {
|
||||
Layout.leftMargin: Kirigami.Units.smallSpacing
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
direction: Qt.RightArrow
|
||||
visible: root.background.visible
|
||||
}
|
||||
}
|
||||
}
|
||||
onCountChanged: {
|
||||
if (loadingAccounts.count === 0 && loadedAccounts.count === 1 && showExisting) {
|
||||
Controller.activeConnection = AccountRegistry.data(AccountRegistry.index(0, 0), 257);
|
||||
root.connectionChosen();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FormCard.FormHeader {
|
||||
@@ -188,6 +148,7 @@ Kirigami.Page {
|
||||
root.currentStepString = nextStep;
|
||||
headerMessage.text = "";
|
||||
headerMessage.visible = false;
|
||||
module.item.homeserver = homeserver
|
||||
if (!module.item.noControls) {
|
||||
module.item.forceActiveFocus();
|
||||
} else {
|
||||
@@ -211,33 +172,33 @@ Kirigami.Page {
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Registration
|
||||
|
||||
function onNextStepChanged() {
|
||||
if (Registration.nextStep === "m.login.recaptcha") {
|
||||
stepConnections.onProcessed("Captcha");
|
||||
}
|
||||
if (Registration.nextStep === "m.login.terms") {
|
||||
stepConnections.onProcessed("Terms");
|
||||
}
|
||||
if (Registration.nextStep === "m.login.email.identity") {
|
||||
stepConnections.onProcessed("Email");
|
||||
}
|
||||
if (Registration.nextStep === "loading") {
|
||||
stepConnections.onProcessed("Loading");
|
||||
}
|
||||
}
|
||||
}
|
||||
Connections {
|
||||
target: LoginHelper
|
||||
|
||||
function onLoginErrorOccured(message) {
|
||||
headerMessage.text = message;
|
||||
headerMessage.visible = message.length > 0;
|
||||
headerMessage.type = Kirigami.MessageType.Error;
|
||||
}
|
||||
}
|
||||
// Connections {
|
||||
// target: Registration
|
||||
//
|
||||
// function onNextStepChanged() {
|
||||
// if (Registration.nextStep === "m.login.recaptcha") {
|
||||
// stepConnections.onProcessed("Captcha");
|
||||
// }
|
||||
// if (Registration.nextStep === "m.login.terms") {
|
||||
// stepConnections.onProcessed("Terms");
|
||||
// }
|
||||
// if (Registration.nextStep === "m.login.email.identity") {
|
||||
// stepConnections.onProcessed("Email");
|
||||
// }
|
||||
// if (Registration.nextStep === "loading") {
|
||||
// stepConnections.onProcessed("Loading");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// Connections {
|
||||
// target: LoginHelper
|
||||
//
|
||||
// function onLoginErrorOccured(message) {
|
||||
// headerMessage.text = message;
|
||||
// headerMessage.visible = message.length > 0;
|
||||
// headerMessage.type = Kirigami.MessageType.Error;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
FormCard.FormDelegateSeparator {
|
||||
@@ -276,11 +237,11 @@ Kirigami.Page {
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
LoginHelper.init();
|
||||
module.item.forceActiveFocus();
|
||||
Registration.username = "";
|
||||
Registration.password = "";
|
||||
Registration.email = "";
|
||||
}
|
||||
// Component.onCompleted: {
|
||||
// LoginHelper.init();
|
||||
// module.item.forceActiveFocus();
|
||||
// Registration.username = "";
|
||||
// Registration.password = "";
|
||||
// Registration.email = "";
|
||||
// }
|
||||
}
|
||||
|
||||
130
src/main.cpp
130
src/main.cpp
@@ -13,7 +13,12 @@
|
||||
#include <QQuickStyle>
|
||||
#include <QQuickWindow>
|
||||
#include <QtQml/QQmlExtensionPlugin>
|
||||
#include <Quotient/connection.h>
|
||||
|
||||
#include <Integral/Connection_p>
|
||||
#include <Integral/NetworkAccessManager>
|
||||
#include <Integral/PendingConnection>
|
||||
|
||||
// #include <Quotient/connection.h>
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#include <QGuiApplication>
|
||||
@@ -43,31 +48,35 @@
|
||||
|
||||
#include "neochat-version.h"
|
||||
|
||||
#include <Quotient/networkaccessmanager.h>
|
||||
// #include <Quotient/networkaccessmanager.h>
|
||||
|
||||
#include "blurhashimageprovider.h"
|
||||
#include "colorschemer.h"
|
||||
#include "controller.h"
|
||||
// #include "controller.h"
|
||||
#include "logger.h"
|
||||
#include "roommanager.h"
|
||||
#include "sharehandler.h"
|
||||
// #include "roommanager.h"
|
||||
// #include "sharehandler.h"
|
||||
#include "neochatconnection.h"
|
||||
#include "neochatroom.h"
|
||||
#include "windowcontroller.h"
|
||||
|
||||
#ifdef HAVE_RUNNER
|
||||
#include "runner.h"
|
||||
// #include "runner.h"
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusMetaType>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_RUNNER) && defined(HAVE_KUNIFIEDPUSH)
|
||||
#include "fakerunner.h"
|
||||
// #include "fakerunner.h"
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
using namespace Quotient;
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
using namespace Integral;
|
||||
|
||||
void qml_register_types_org_kde_neochat();
|
||||
|
||||
@@ -158,14 +167,14 @@ int main(int argc, char *argv[])
|
||||
about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
|
||||
about.setOrganizationDomain("kde.org");
|
||||
|
||||
about.addComponent(u"libQuotient"_s,
|
||||
i18n("A Qt library to write cross-platform clients for Matrix"),
|
||||
i18nc("<version number> (built against <possibly different version number>)",
|
||||
"%1 (built against %2)",
|
||||
Quotient::versionString(),
|
||||
QStringLiteral(Quotient_VERSION_STRING)),
|
||||
u"https://github.com/quotient-im/libquotient"_s,
|
||||
KAboutLicense::LGPL_V2_1);
|
||||
// about.addComponent(u"libQuotient"_s,
|
||||
// i18n("A Qt library to write cross-platform clients for Matrix"),
|
||||
// i18nc("<version number> (built against <possibly different version number>)",
|
||||
// "%1 (built against %2)",
|
||||
// Quotient::versionString(),
|
||||
// QStringLiteral(Quotient_VERSION_STRING)),
|
||||
// u"https://github.com/quotient-im/libquotient"_s,
|
||||
// KAboutLicense::LGPL_V2_1);
|
||||
|
||||
KAboutData::setApplicationData(about);
|
||||
QGuiApplication::setWindowIcon(QIcon::fromTheme(u"org.kde.neochat"_s));
|
||||
@@ -174,10 +183,13 @@ int main(int argc, char *argv[])
|
||||
KCrash::initialize();
|
||||
#endif
|
||||
|
||||
PendingConnection::setConnectionType<NeoChatConnection>();
|
||||
Connection::setRoomType<NeoChatRoom>();
|
||||
|
||||
initLogging();
|
||||
|
||||
Connection::setEncryptionDefault(true);
|
||||
Connection::setDirectChatEncryptionDefault(true);
|
||||
// Connection::setEncryptionDefault(true);
|
||||
// Connection::setDirectChatEncryptionDefault(true);
|
||||
|
||||
#ifdef NEOCHAT_FLATPAK
|
||||
// Copy over the included FontConfig configuration to the
|
||||
@@ -185,7 +197,7 @@ int main(int argc, char *argv[])
|
||||
QFile::copy(u"/app/etc/fonts/conf.d/99-noto-mono-color-emoji.conf"_s, u"/var/config/fontconfig/conf.d/99-noto-mono-color-emoji.conf"_s);
|
||||
#endif
|
||||
|
||||
ColorSchemer colorScheme;
|
||||
// ColorSchemer colorScheme;
|
||||
|
||||
QCommandLineParser parser;
|
||||
parser.setApplicationDescription(i18n("Client for the matrix communication protocol"));
|
||||
@@ -208,7 +220,7 @@ int main(int argc, char *argv[])
|
||||
about.setupCommandLine(&parser);
|
||||
parser.process(app);
|
||||
about.processCommandLine(&parser);
|
||||
Controller::setTestMode(parser.isSet("test"_L1));
|
||||
// Controller::setTestMode(parser.isSet("test"_L1));
|
||||
|
||||
#ifdef HAVE_KUNIFIEDPUSH
|
||||
if (parser.isSet(dbusActivatedOption)) {
|
||||
@@ -220,10 +232,10 @@ int main(int argc, char *argv[])
|
||||
// Because KRunner may call us on the D-Bus (under the same service name org.kde.neochat) then it may
|
||||
// accidentally activate us for push notifications instead. If this happens, then immediately quit if the fake
|
||||
// runner is called.
|
||||
QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, new FakeRunner(), QDBusConnection::ExportScriptableContents);
|
||||
// QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, new FakeRunner(), QDBusConnection::ExportScriptableContents);
|
||||
#endif
|
||||
|
||||
Controller::listenForNotifications();
|
||||
// Controller::listenForNotifications();
|
||||
return QCoreApplication::exec();
|
||||
}
|
||||
#endif
|
||||
@@ -239,51 +251,51 @@ int main(int argc, char *argv[])
|
||||
Q_IMPORT_QML_PLUGIN(org_kde_neochat_chatbarPlugin)
|
||||
|
||||
qml_register_types_org_kde_neochat();
|
||||
qmlRegisterUncreatableMetaObject(Quotient::staticMetaObject, "Quotient", 1, 0, "JoinRule", u"Access to JoinRule enum only"_s);
|
||||
// qmlRegisterUncreatableMetaObject(Quotient::staticMetaObject, "Quotient", 1, 0, "JoinRule", u"Access to JoinRule enum only"_s);
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
|
||||
#ifdef HAVE_KDBUSADDONS
|
||||
service.connect(&service,
|
||||
&KDBusService::activateRequested,
|
||||
&RoomManager::instance(),
|
||||
[&engine](const QStringList &arguments, const QString &workingDirectory) {
|
||||
Q_UNUSED(workingDirectory);
|
||||
|
||||
QWindow *window = windowFromEngine(&engine);
|
||||
KWindowSystem::updateStartupId(window);
|
||||
|
||||
WindowController::instance().showAndRaiseWindow(QString());
|
||||
|
||||
// Open matrix uri
|
||||
if (arguments.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto args = arguments;
|
||||
args.removeFirst();
|
||||
if (args.length() == 2 && args[0] == "--share"_L1) {
|
||||
ShareHandler::instance().setText(args[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
for (const auto &arg : args) {
|
||||
RoomManager::instance().resolveResource(arg);
|
||||
}
|
||||
});
|
||||
#endif
|
||||
// #ifdef HAVE_KDBUSADDONS
|
||||
// service.connect(&service,
|
||||
// &KDBusService::activateRequested,
|
||||
// &RoomManager::instance(),
|
||||
// [&engine](const QStringList &arguments, const QString &workingDirectory) {
|
||||
// Q_UNUSED(workingDirectory);
|
||||
//
|
||||
// QWindow *window = windowFromEngine(&engine);
|
||||
// KWindowSystem::updateStartupId(window);
|
||||
//
|
||||
// // WindowController::instance().showAndRaiseWindow(QString());
|
||||
//
|
||||
// // Open matrix uri
|
||||
// if (arguments.isEmpty()) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// auto args = arguments;
|
||||
// args.removeFirst();
|
||||
// if (args.length() == 2 && args[0] == "--share"_L1) {
|
||||
// // ShareHandler::instance().setText(args[1]);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// for (const auto &arg : args) {
|
||||
// // RoomManager::instance().resolveResource(arg);
|
||||
// }
|
||||
// });
|
||||
// #endif
|
||||
|
||||
engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
|
||||
engine.setNetworkAccessManagerFactory(new NetworkAccessManagerFactory());
|
||||
|
||||
if (parser.isSet("ignore-ssl-errors"_L1)) {
|
||||
QObject::connect(NetworkAccessManager::instance(), &QNetworkAccessManager::sslErrors, NetworkAccessManager::instance(), [](QNetworkReply *reply) {
|
||||
reply->ignoreSslErrors();
|
||||
});
|
||||
// QObject::connect(NetworkAccessManager::instance(), &QNetworkAccessManager::sslErrors, NetworkAccessManager::instance(), [](QNetworkReply *reply) {
|
||||
// reply->ignoreSslErrors();
|
||||
// });
|
||||
}
|
||||
|
||||
if (parser.isSet("share"_L1)) {
|
||||
ShareHandler::instance().setText(parser.value(shareOption));
|
||||
// ShareHandler::instance().setText(parser.value(shareOption));
|
||||
}
|
||||
|
||||
engine.addImageProvider(u"blurhash"_s, new BlurhashImageProvider);
|
||||
@@ -294,12 +306,12 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (!parser.positionalArguments().isEmpty() && !parser.isSet("share"_L1)) {
|
||||
RoomManager::instance().setUrlArgument(parser.positionalArguments()[0]);
|
||||
// RoomManager::instance().setUrlArgument(parser.positionalArguments()[0]);
|
||||
}
|
||||
|
||||
#ifdef HAVE_RUNNER
|
||||
auto runner = Runner::create(&engine, &engine);
|
||||
QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, runner, QDBusConnection::ExportScriptableContents);
|
||||
// auto runner = Runner::create(&engine, &engine);
|
||||
// QDBusConnection::sessionBus().registerObject("/RoomRunner"_L1, runner, QDBusConnection::ExportScriptableContents);
|
||||
#endif
|
||||
|
||||
QWindow *window = windowFromEngine(&engine);
|
||||
|
||||
126
src/messageattached.cpp
Normal file
126
src/messageattached.cpp
Normal file
@@ -0,0 +1,126 @@
|
||||
// SPDX-FileCopyrightText: 2025 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "messageattached.h"
|
||||
|
||||
MessageAttached::MessageAttached(QObject *parent)
|
||||
: QQuickAttachedPropertyPropagator(parent)
|
||||
{
|
||||
if (parent == nullptr) {
|
||||
qWarning() << "Message must be attached to an Item" << parent;
|
||||
return;
|
||||
}
|
||||
initialize();
|
||||
}
|
||||
|
||||
MessageAttached *MessageAttached::qmlAttachedProperties(QObject *object)
|
||||
{
|
||||
return new MessageAttached(object);
|
||||
}
|
||||
|
||||
NeoChatRoom *MessageAttached::room() const
|
||||
{
|
||||
return m_room;
|
||||
}
|
||||
|
||||
void MessageAttached::setRoom(NeoChatRoom *room)
|
||||
{
|
||||
m_explicitRoom = true;
|
||||
if (m_room == room) {
|
||||
return;
|
||||
}
|
||||
m_room = room;
|
||||
propagateMessage(this);
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
QQuickItem *MessageAttached::timeline() const
|
||||
{
|
||||
return m_timeline;
|
||||
}
|
||||
|
||||
void MessageAttached::setTimeline(QQuickItem *timeline)
|
||||
{
|
||||
m_explicitTimeline = true;
|
||||
if (m_timeline == timeline) {
|
||||
return;
|
||||
}
|
||||
m_timeline = timeline;
|
||||
propagateMessage(this);
|
||||
Q_EMIT timelineChanged();
|
||||
}
|
||||
|
||||
int MessageAttached::index() const
|
||||
{
|
||||
return m_index;
|
||||
}
|
||||
|
||||
void MessageAttached::setIndex(int index)
|
||||
{
|
||||
m_explicitIndex = true;
|
||||
if (m_index == index) {
|
||||
return;
|
||||
}
|
||||
m_index = index;
|
||||
propagateMessage(this);
|
||||
Q_EMIT indexChanged();
|
||||
}
|
||||
|
||||
qreal MessageAttached::maxContentWidth() const
|
||||
{
|
||||
return m_maxContentWidth;
|
||||
}
|
||||
|
||||
void MessageAttached::setMaxContentWidth(qreal maxContentWidth)
|
||||
{
|
||||
m_explicitMaxContentWidth = true;
|
||||
if (m_maxContentWidth == maxContentWidth) {
|
||||
return;
|
||||
}
|
||||
m_maxContentWidth = maxContentWidth;
|
||||
propagateMessage(this);
|
||||
Q_EMIT maxContentWidthChanged();
|
||||
}
|
||||
|
||||
void MessageAttached::propagateMessage(MessageAttached *message)
|
||||
{
|
||||
if (m_explicitRoom || m_room != message->room()) {
|
||||
m_room = message->room();
|
||||
Q_EMIT roomChanged();
|
||||
}
|
||||
|
||||
if (m_explicitTimeline || m_timeline != message->timeline()) {
|
||||
m_timeline = message->timeline();
|
||||
Q_EMIT timelineChanged();
|
||||
}
|
||||
|
||||
if (m_explicitIndex || m_index != message->index()) {
|
||||
m_index = message->index();
|
||||
Q_EMIT indexChanged();
|
||||
}
|
||||
|
||||
if (m_explicitMaxContentWidth || m_maxContentWidth != message->maxContentWidth()) {
|
||||
m_maxContentWidth = message->maxContentWidth();
|
||||
Q_EMIT maxContentWidthChanged();
|
||||
}
|
||||
|
||||
const auto styles = attachedChildren();
|
||||
for (auto *child : attachedChildren()) {
|
||||
MessageAttached *message = qobject_cast<MessageAttached *>(child);
|
||||
if (message != nullptr) {
|
||||
message->propagateMessage(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MessageAttached::attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent)
|
||||
{
|
||||
Q_UNUSED(oldParent);
|
||||
|
||||
MessageAttached *attachedParent = qobject_cast<MessageAttached *>(newParent);
|
||||
if (attachedParent) {
|
||||
propagateMessage(attachedParent);
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_messageattached.cpp"
|
||||
78
src/messageattached.h
Normal file
78
src/messageattached.h
Normal file
@@ -0,0 +1,78 @@
|
||||
// SPDX-FileCopyrightText: 2025 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QQmlEngine>
|
||||
#include <QQuickAttachedPropertyPropagator>
|
||||
#include <QQuickItem>
|
||||
|
||||
#include "neochatroom.h"
|
||||
|
||||
class MessageAttached : public QQuickAttachedPropertyPropagator
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_NAMED_ELEMENT(Message)
|
||||
QML_ATTACHED(MessageAttached)
|
||||
QML_UNCREATABLE("")
|
||||
|
||||
/**
|
||||
* @brief The room that the message comes from.
|
||||
*/
|
||||
Q_PROPERTY(NeoChatRoom *room READ room WRITE setRoom NOTIFY roomChanged FINAL)
|
||||
|
||||
/**
|
||||
* @brief The timeline for the current message.
|
||||
*/
|
||||
Q_PROPERTY(QQuickItem *timeline READ timeline WRITE setTimeline NOTIFY timelineChanged FINAL)
|
||||
|
||||
/**
|
||||
* @brief The index of the message in the timeline
|
||||
*/
|
||||
Q_PROPERTY(int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
|
||||
|
||||
/**
|
||||
* @brief The width available to the message content.
|
||||
*/
|
||||
Q_PROPERTY(qreal maxContentWidth READ maxContentWidth WRITE setMaxContentWidth NOTIFY maxContentWidthChanged FINAL)
|
||||
|
||||
public:
|
||||
explicit MessageAttached(QObject *parent = nullptr);
|
||||
|
||||
static MessageAttached *qmlAttachedProperties(QObject *object);
|
||||
|
||||
NeoChatRoom *room() const;
|
||||
void setRoom(NeoChatRoom *room);
|
||||
|
||||
QQuickItem *timeline() const;
|
||||
void setTimeline(QQuickItem *timeline);
|
||||
|
||||
int index() const;
|
||||
void setIndex(int index);
|
||||
|
||||
qreal maxContentWidth() const;
|
||||
void setMaxContentWidth(qreal maxContentWidth);
|
||||
|
||||
Q_SIGNALS:
|
||||
void roomChanged();
|
||||
void timelineChanged();
|
||||
void indexChanged();
|
||||
void maxContentWidthChanged();
|
||||
|
||||
protected:
|
||||
void propagateMessage(MessageAttached *message);
|
||||
void attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent) override;
|
||||
|
||||
private:
|
||||
QPointer<NeoChatRoom> m_room;
|
||||
bool m_explicitRoom = false;
|
||||
|
||||
QPointer<QQuickItem> m_timeline;
|
||||
bool m_explicitTimeline = false;
|
||||
|
||||
int m_index;
|
||||
bool m_explicitIndex = false;
|
||||
|
||||
qreal m_maxContentWidth = -1;
|
||||
bool m_explicitMaxContentWidth = false;
|
||||
};
|
||||
@@ -4,23 +4,23 @@
|
||||
#include "completionmodel.h"
|
||||
#include <QDebug>
|
||||
|
||||
#include "actionsmodel.h"
|
||||
#include "completionproxymodel.h"
|
||||
#include "customemojimodel.h"
|
||||
#include "emojimodel.h"
|
||||
// #include "actionsmodel.h"
|
||||
// #include "completionproxymodel.h"
|
||||
// #include "customemojimodel.h"
|
||||
// #include "emojimodel.h"
|
||||
#include "neochatroom.h"
|
||||
#include "roommanager.h"
|
||||
#include "userlistmodel.h"
|
||||
// #include "roommanager.h"
|
||||
// #include "userlistmodel.h"
|
||||
|
||||
CompletionModel::CompletionModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
, m_filterModel(new CompletionProxyModel())
|
||||
, m_userListModel(RoomManager::instance().userListModel())
|
||||
// , m_filterModel(new CompletionProxyModel())
|
||||
// , m_userListModel(RoomManager::instance().userListModel())
|
||||
, m_emojiModel(new QConcatenateTablesProxyModel(this))
|
||||
{
|
||||
connect(this, &CompletionModel::textChanged, this, &CompletionModel::updateCompletion);
|
||||
m_emojiModel->addSourceModel(&CustomEmojiModel::instance());
|
||||
m_emojiModel->addSourceModel(&EmojiModel::instance());
|
||||
// m_emojiModel->addSourceModel(&CustomEmojiModel::instance());
|
||||
// m_emojiModel->addSourceModel(&EmojiModel::instance());
|
||||
}
|
||||
|
||||
QString CompletionModel::text() const
|
||||
@@ -41,67 +41,68 @@ int CompletionModel::rowCount(const QModelIndex &parent) const
|
||||
if (m_autoCompletionType == None) {
|
||||
return 0;
|
||||
}
|
||||
return m_filterModel->rowCount();
|
||||
// return m_filterModel->rowCount();
|
||||
return {};
|
||||
}
|
||||
|
||||
QVariant CompletionModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (index.row() < 0 || index.row() >= m_filterModel->rowCount()) {
|
||||
return {};
|
||||
}
|
||||
auto filterIndex = m_filterModel->index(index.row(), 0);
|
||||
if (m_autoCompletionType == User) {
|
||||
if (role == DisplayNameRole) {
|
||||
return m_filterModel->data(filterIndex, UserListModel::DisplayNameRole);
|
||||
}
|
||||
if (role == SubtitleRole) {
|
||||
return m_filterModel->data(filterIndex, UserListModel::UserIdRole);
|
||||
}
|
||||
if (role == IconNameRole) {
|
||||
return m_filterModel->data(filterIndex, UserListModel::AvatarRole);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_autoCompletionType == Command) {
|
||||
if (role == DisplayNameRole) {
|
||||
return u"%1 %2"_s.arg(m_filterModel->data(filterIndex, ActionsModel::Prefix).toString(),
|
||||
m_filterModel->data(filterIndex, ActionsModel::Parameters).toString());
|
||||
}
|
||||
if (role == SubtitleRole) {
|
||||
return m_filterModel->data(filterIndex, ActionsModel::Description);
|
||||
}
|
||||
if (role == IconNameRole) {
|
||||
return u"invalid"_s;
|
||||
}
|
||||
if (role == ReplacedTextRole) {
|
||||
return m_filterModel->data(filterIndex, ActionsModel::Prefix);
|
||||
}
|
||||
}
|
||||
if (m_autoCompletionType == Room) {
|
||||
if (role == DisplayNameRole) {
|
||||
return m_filterModel->data(filterIndex, RoomListModel::DisplayNameRole);
|
||||
}
|
||||
if (role == SubtitleRole) {
|
||||
return m_filterModel->data(filterIndex, RoomListModel::CanonicalAliasRole);
|
||||
}
|
||||
if (role == IconNameRole) {
|
||||
return m_filterModel->data(filterIndex, RoomListModel::AvatarRole).toString();
|
||||
}
|
||||
}
|
||||
if (m_autoCompletionType == Emoji) {
|
||||
if (role == DisplayNameRole) {
|
||||
return m_filterModel->data(filterIndex, CustomEmojiModel::DisplayRole);
|
||||
}
|
||||
if (role == IconNameRole) {
|
||||
return m_filterModel->data(filterIndex, CustomEmojiModel::MxcUrl);
|
||||
}
|
||||
if (role == ReplacedTextRole) {
|
||||
return m_filterModel->data(filterIndex, CustomEmojiModel::ReplacedTextRole);
|
||||
}
|
||||
if (role == SubtitleRole) {
|
||||
return m_filterModel->data(filterIndex, EmojiModel::DescriptionRole);
|
||||
}
|
||||
}
|
||||
// if (index.row() < 0 || index.row() >= m_filterModel->rowCount()) {
|
||||
// return {};
|
||||
// }
|
||||
// auto filterIndex = m_filterModel->index(index.row(), 0);
|
||||
// if (m_autoCompletionType == User) {
|
||||
// if (role == DisplayNameRole) {
|
||||
// return m_filterModel->data(filterIndex, UserListModel::DisplayNameRole);
|
||||
// }
|
||||
// if (role == SubtitleRole) {
|
||||
// return m_filterModel->data(filterIndex, UserListModel::UserIdRole);
|
||||
// }
|
||||
// if (role == IconNameRole) {
|
||||
// return m_filterModel->data(filterIndex, UserListModel::AvatarRole);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (m_autoCompletionType == Command) {
|
||||
// if (role == DisplayNameRole) {
|
||||
// return u"%1 %2"_s.arg(m_filterModel->data(filterIndex, ActionsModel::Prefix).toString(),
|
||||
// m_filterModel->data(filterIndex, ActionsModel::Parameters).toString());
|
||||
// }
|
||||
// if (role == SubtitleRole) {
|
||||
// return m_filterModel->data(filterIndex, ActionsModel::Description);
|
||||
// }
|
||||
// if (role == IconNameRole) {
|
||||
// return u"invalid"_s;
|
||||
// }
|
||||
// if (role == ReplacedTextRole) {
|
||||
// return m_filterModel->data(filterIndex, ActionsModel::Prefix);
|
||||
// }
|
||||
// }
|
||||
// if (m_autoCompletionType == Room) {
|
||||
// if (role == DisplayNameRole) {
|
||||
// return m_filterModel->data(filterIndex, RoomListModel::DisplayNameRole);
|
||||
// }
|
||||
// if (role == SubtitleRole) {
|
||||
// return m_filterModel->data(filterIndex, RoomListModel::CanonicalAliasRole);
|
||||
// }
|
||||
// if (role == IconNameRole) {
|
||||
// return m_filterModel->data(filterIndex, RoomListModel::AvatarRole).toString();
|
||||
// }
|
||||
// }
|
||||
// if (m_autoCompletionType == Emoji) {
|
||||
// if (role == DisplayNameRole) {
|
||||
// return m_filterModel->data(filterIndex, CustomEmojiModel::DisplayRole);
|
||||
// }
|
||||
// if (role == IconNameRole) {
|
||||
// return m_filterModel->data(filterIndex, CustomEmojiModel::MxcUrl);
|
||||
// }
|
||||
// if (role == ReplacedTextRole) {
|
||||
// return m_filterModel->data(filterIndex, CustomEmojiModel::ReplacedTextRole);
|
||||
// }
|
||||
// if (role == SubtitleRole) {
|
||||
// return m_filterModel->data(filterIndex, EmojiModel::DescriptionRole);
|
||||
// }
|
||||
// }
|
||||
|
||||
return {};
|
||||
}
|
||||
@@ -118,50 +119,50 @@ QHash<int, QByteArray> CompletionModel::roleNames() const
|
||||
|
||||
void CompletionModel::updateCompletion()
|
||||
{
|
||||
if (text().startsWith(QLatin1Char('@'))) {
|
||||
m_filterModel->setSourceModel(m_userListModel);
|
||||
m_filterModel->setFilterRole(UserListModel::UserIdRole);
|
||||
m_filterModel->setSecondaryFilterRole(UserListModel::DisplayNameRole);
|
||||
m_filterModel->setFullText(m_fullText);
|
||||
m_filterModel->setFilterText(m_text);
|
||||
m_autoCompletionType = User;
|
||||
m_filterModel->invalidate();
|
||||
} else if (text().startsWith(QLatin1Char('/'))) {
|
||||
m_filterModel->setSourceModel(&ActionsModel::instance());
|
||||
m_filterModel->setFilterRole(ActionsModel::Prefix);
|
||||
m_filterModel->setSecondaryFilterRole(-1);
|
||||
m_filterModel->setFullText(m_fullText);
|
||||
m_filterModel->setFilterText(m_text.mid(1));
|
||||
m_autoCompletionType = Command;
|
||||
m_filterModel->invalidate();
|
||||
} else if (text().startsWith(QLatin1Char('#'))) {
|
||||
m_autoCompletionType = Room;
|
||||
m_filterModel->setSourceModel(m_roomListModel);
|
||||
m_filterModel->setFilterRole(RoomListModel::CanonicalAliasRole);
|
||||
m_filterModel->setSecondaryFilterRole(RoomListModel::DisplayNameRole);
|
||||
m_filterModel->setFullText(m_fullText);
|
||||
m_filterModel->setFilterText(m_text);
|
||||
m_filterModel->invalidate();
|
||||
} else if (text().startsWith(QLatin1Char(':')) && text().size() > 1 && !text()[1].isUpper()
|
||||
&& (m_fullText.indexOf(QLatin1Char(':'), 1) == -1
|
||||
|| (m_fullText.indexOf(QLatin1Char(' ')) != -1 && m_fullText.indexOf(QLatin1Char(':'), 1) > m_fullText.indexOf(QLatin1Char(' '), 1)))) {
|
||||
m_filterModel->setSourceModel(m_emojiModel);
|
||||
m_autoCompletionType = Emoji;
|
||||
m_filterModel->setFilterRole(CustomEmojiModel::Name);
|
||||
m_filterModel->setSecondaryFilterRole(EmojiModel::DescriptionRole);
|
||||
m_filterModel->setFullText(m_fullText);
|
||||
m_filterModel->setFilterText(m_text);
|
||||
m_filterModel->invalidate();
|
||||
} else {
|
||||
m_autoCompletionType = None;
|
||||
}
|
||||
// if (text().startsWith(QLatin1Char('@'))) {
|
||||
// m_filterModel->setSourceModel(m_userListModel);
|
||||
// m_filterModel->setFilterRole(UserListModel::UserIdRole);
|
||||
// m_filterModel->setSecondaryFilterRole(UserListModel::DisplayNameRole);
|
||||
// m_filterModel->setFullText(m_fullText);
|
||||
// m_filterModel->setFilterText(m_text);
|
||||
// m_autoCompletionType = User;
|
||||
// m_filterModel->invalidate();
|
||||
// } else if (text().startsWith(QLatin1Char('/'))) {
|
||||
// m_filterModel->setSourceModel(&ActionsModel::instance());
|
||||
// m_filterModel->setFilterRole(ActionsModel::Prefix);
|
||||
// m_filterModel->setSecondaryFilterRole(-1);
|
||||
// m_filterModel->setFullText(m_fullText);
|
||||
// m_filterModel->setFilterText(m_text.mid(1));
|
||||
// m_autoCompletionType = Command;
|
||||
// m_filterModel->invalidate();
|
||||
// } else if (text().startsWith(QLatin1Char('#'))) {
|
||||
// m_autoCompletionType = Room;
|
||||
// m_filterModel->setSourceModel(m_roomListModel);
|
||||
// m_filterModel->setFilterRole(RoomListModel::CanonicalAliasRole);
|
||||
// m_filterModel->setSecondaryFilterRole(RoomListModel::DisplayNameRole);
|
||||
// m_filterModel->setFullText(m_fullText);
|
||||
// m_filterModel->setFilterText(m_text);
|
||||
// m_filterModel->invalidate();
|
||||
// } else if (text().startsWith(QLatin1Char(':')) && text().size() > 1 && !text()[1].isUpper()
|
||||
// && (m_fullText.indexOf(QLatin1Char(':'), 1) == -1
|
||||
// || (m_fullText.indexOf(QLatin1Char(' ')) != -1 && m_fullText.indexOf(QLatin1Char(':'), 1) > m_fullText.indexOf(QLatin1Char(' '), 1)))) {
|
||||
// m_filterModel->setSourceModel(m_emojiModel);
|
||||
// m_autoCompletionType = Emoji;
|
||||
// m_filterModel->setFilterRole(CustomEmojiModel::Name);
|
||||
// m_filterModel->setSecondaryFilterRole(EmojiModel::DescriptionRole);
|
||||
// m_filterModel->setFullText(m_fullText);
|
||||
// m_filterModel->setFilterText(m_text);
|
||||
// m_filterModel->invalidate();
|
||||
// } else {
|
||||
// m_autoCompletionType = None;
|
||||
// }
|
||||
beginResetModel();
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
NeoChatRoom *CompletionModel::room() const
|
||||
{
|
||||
return m_room;
|
||||
return m_room.get();
|
||||
}
|
||||
|
||||
void CompletionModel::setRoom(NeoChatRoom *room)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <QQmlEngine>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
#include "roomlistmodel.h"
|
||||
// #include "roomlistmodel.h"
|
||||
|
||||
class CompletionProxyModel;
|
||||
class UserListModel;
|
||||
@@ -47,7 +47,7 @@ class CompletionModel : public QAbstractListModel
|
||||
/**
|
||||
* @brief The RoomListModel to be used for room completions.
|
||||
*/
|
||||
Q_PROPERTY(RoomListModel *roomListModel READ roomListModel WRITE setRoomListModel NOTIFY roomListModelChanged)
|
||||
// Q_PROPERTY(RoomListModel *roomListModel READ roomListModel WRITE setRoomListModel NOTIFY roomListModelChanged)
|
||||
|
||||
public:
|
||||
/**
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include <Quotient/converters.h>
|
||||
#include <Quotient/csapi/definitions/push_ruleset.h>
|
||||
#include <Quotient/csapi/pushrules.h>
|
||||
#include <Quotient/jobs/basejob.h>
|
||||
// #include <Quotient/converters.h>
|
||||
// #include <Quotient/csapi/definitions/push_ruleset.h>
|
||||
// #include <Quotient/csapi/pushrules.h>
|
||||
// #include <Quotient/jobs/basejob.h>
|
||||
|
||||
#include "neochatconfig.h"
|
||||
|
||||
@@ -74,18 +74,18 @@ void PushRuleModel::updateNotificationRules(const QString &type)
|
||||
return;
|
||||
}
|
||||
|
||||
const QJsonObject ruleDataJson = m_connection->accountDataJson(u"m.push_rules"_s);
|
||||
const Quotient::PushRuleset ruleData = Quotient::fromJson<Quotient::PushRuleset>(ruleDataJson["global"_L1].toObject());
|
||||
// const QJsonObject ruleDataJson = m_connection->accountDataJson(u"m.push_rules"_s);
|
||||
// const Quotient::PushRuleset ruleData = Quotient::fromJson<Quotient::PushRuleset>(ruleDataJson["global"_L1].toObject());
|
||||
|
||||
beginResetModel();
|
||||
m_rules.clear();
|
||||
|
||||
// Doing this 5 times because PushRuleset is a struct.
|
||||
setRules(ruleData.override, PushRuleKind::Override);
|
||||
setRules(ruleData.content, PushRuleKind::Content);
|
||||
setRules(ruleData.room, PushRuleKind::Room);
|
||||
setRules(ruleData.sender, PushRuleKind::Sender);
|
||||
setRules(ruleData.underride, PushRuleKind::Underride);
|
||||
// setRules(ruleData.override, PushRuleKind::Override);
|
||||
// setRules(ruleData.content, PushRuleKind::Content);
|
||||
// setRules(ruleData.room, PushRuleKind::Room);
|
||||
// setRules(ruleData.sender, PushRuleKind::Sender);
|
||||
// setRules(ruleData.underride, PushRuleKind::Underride);
|
||||
|
||||
Q_EMIT globalNotificationsEnabledChanged();
|
||||
Q_EMIT globalNotificationsSetChanged();
|
||||
@@ -93,28 +93,28 @@ void PushRuleModel::updateNotificationRules(const QString &type)
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
void PushRuleModel::setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind)
|
||||
{
|
||||
for (const auto &rule : rules) {
|
||||
QString roomId;
|
||||
if (rule.conditions.size() > 0) {
|
||||
for (const auto &condition : std::as_const(rule.conditions)) {
|
||||
if (condition.key == u"room_id"_s) {
|
||||
roomId = condition.pattern;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_rules.append(Rule{
|
||||
rule.ruleId,
|
||||
kind,
|
||||
variantToAction(rule.actions, rule.enabled),
|
||||
getSection(rule),
|
||||
rule.enabled,
|
||||
roomId,
|
||||
});
|
||||
}
|
||||
}
|
||||
// void PushRuleModel::setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind)
|
||||
// {
|
||||
// for (const auto &rule : rules) {
|
||||
// QString roomId;
|
||||
// if (rule.conditions.size() > 0) {
|
||||
// for (const auto &condition : std::as_const(rule.conditions)) {
|
||||
// if (condition.key == u"room_id"_s) {
|
||||
// roomId = condition.pattern;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// m_rules.append(Rule{
|
||||
// rule.ruleId,
|
||||
// kind,
|
||||
// variantToAction(rule.actions, rule.enabled),
|
||||
// getSection(rule),
|
||||
// rule.enabled,
|
||||
// roomId,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
int PushRuleModel::getRuleIndex(const QString &ruleId) const
|
||||
{
|
||||
@@ -126,51 +126,51 @@ int PushRuleModel::getRuleIndex(const QString &ruleId) const
|
||||
return -1;
|
||||
}
|
||||
|
||||
PushRuleSection::Section PushRuleModel::getSection(Quotient::PushRule rule)
|
||||
{
|
||||
auto ruleId = rule.ruleId;
|
||||
|
||||
if (defaultSections.contains(ruleId)) {
|
||||
return defaultSections.value(ruleId);
|
||||
} else {
|
||||
if (rule.ruleId.startsWith(u'.')) {
|
||||
return PushRuleSection::Unknown;
|
||||
}
|
||||
/**
|
||||
* If the rule name resolves to a matrix id for a room that the user is part
|
||||
* of it shouldn't appear in the global list as it's overriding the global
|
||||
* state for that room.
|
||||
*
|
||||
* Rooms that the user hasn't joined shouldn't have a rule.
|
||||
*/
|
||||
if (m_connection->room(ruleId) != nullptr) {
|
||||
return PushRuleSection::Undefined;
|
||||
}
|
||||
/**
|
||||
* If the rule name resolves to a matrix id for a user it shouldn't appear
|
||||
* in the global list as it's a rule to block notifications from a user and
|
||||
* is handled elsewhere.
|
||||
*/
|
||||
auto testUserId = ruleId;
|
||||
// Rules for user matrix IDs often don't have the @ on the beginning so add
|
||||
// if not there to avoid malformed ID.
|
||||
if (!testUserId.startsWith(u'@')) {
|
||||
testUserId.prepend(u'@');
|
||||
}
|
||||
if (testUserId.startsWith(u'@') && !Quotient::serverPart(testUserId).isEmpty() && m_connection->user(testUserId) != nullptr) {
|
||||
return PushRuleSection::Undefined;
|
||||
}
|
||||
// If the rule has push conditions and one is a room ID it is a room only keyword.
|
||||
if (!rule.conditions.isEmpty()) {
|
||||
for (const auto &condition : std::as_const(rule.conditions)) {
|
||||
if (condition.key == u"room_id"_s) {
|
||||
return PushRuleSection::RoomKeywords;
|
||||
}
|
||||
}
|
||||
}
|
||||
return PushRuleSection::Keywords;
|
||||
}
|
||||
}
|
||||
// PushRuleSection::Section PushRuleModel::getSection(Quotient::PushRule rule)
|
||||
// {
|
||||
// auto ruleId = rule.ruleId;
|
||||
//
|
||||
// if (defaultSections.contains(ruleId)) {
|
||||
// return defaultSections.value(ruleId);
|
||||
// } else {
|
||||
// if (rule.ruleId.startsWith(u'.')) {
|
||||
// return PushRuleSection::Unknown;
|
||||
// }
|
||||
// /**
|
||||
// * If the rule name resolves to a matrix id for a room that the user is part
|
||||
// * of it shouldn't appear in the global list as it's overriding the global
|
||||
// * state for that room.
|
||||
// *
|
||||
// * Rooms that the user hasn't joined shouldn't have a rule.
|
||||
// */
|
||||
// if (m_connection->room(ruleId) != nullptr) {
|
||||
// return PushRuleSection::Undefined;
|
||||
// }
|
||||
// /**
|
||||
// * If the rule name resolves to a matrix id for a user it shouldn't appear
|
||||
// * in the global list as it's a rule to block notifications from a user and
|
||||
// * is handled elsewhere.
|
||||
// */
|
||||
// auto testUserId = ruleId;
|
||||
// // Rules for user matrix IDs often don't have the @ on the beginning so add
|
||||
// // if not there to avoid malformed ID.
|
||||
// if (!testUserId.startsWith(u'@')) {
|
||||
// testUserId.prepend(u'@');
|
||||
// }
|
||||
// if (testUserId.startsWith(u'@') && !Quotient::serverPart(testUserId).isEmpty() && m_connection->user(testUserId) != nullptr) {
|
||||
// return PushRuleSection::Undefined;
|
||||
// }
|
||||
// // If the rule has push conditions and one is a room ID it is a room only keyword.
|
||||
// if (!rule.conditions.isEmpty()) {
|
||||
// for (const auto &condition : std::as_const(rule.conditions)) {
|
||||
// if (condition.key == u"room_id"_s) {
|
||||
// return PushRuleSection::RoomKeywords;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return PushRuleSection::Keywords;
|
||||
// }
|
||||
// }
|
||||
|
||||
PushRuleAction::Action PushRuleModel::defaultState() const
|
||||
{
|
||||
@@ -294,33 +294,33 @@ void PushRuleModel::addKeyword(const QString &keyword, const QString &roomId)
|
||||
{
|
||||
PushRuleKind::Kind kind = PushRuleKind::Content;
|
||||
const QList<QVariant> actions = actionToVariant(m_defaultKeywordAction);
|
||||
QList<Quotient::PushCondition> pushConditions;
|
||||
if (!roomId.isEmpty()) {
|
||||
kind = PushRuleKind::Override;
|
||||
|
||||
Quotient::PushCondition roomCondition;
|
||||
roomCondition.kind = u"event_match"_s;
|
||||
roomCondition.key = u"room_id"_s;
|
||||
roomCondition.pattern = roomId;
|
||||
pushConditions.append(roomCondition);
|
||||
|
||||
Quotient::PushCondition keywordCondition;
|
||||
keywordCondition.kind = u"event_match"_s;
|
||||
keywordCondition.key = u"content.body"_s;
|
||||
keywordCondition.pattern = keyword;
|
||||
pushConditions.append(keywordCondition);
|
||||
}
|
||||
|
||||
auto job = m_connection->callApi<Quotient::SetPushRuleJob>(PushRuleKind::kindString(kind),
|
||||
keyword,
|
||||
actions,
|
||||
QString(),
|
||||
QString(),
|
||||
pushConditions,
|
||||
roomId.isEmpty() ? keyword : QString());
|
||||
connect(job, &Quotient::BaseJob::failure, this, [job, keyword]() {
|
||||
qWarning() << "Unable to set push rule for keyword %1: "_L1.arg(keyword) << job->errorString();
|
||||
});
|
||||
// QList<Quotient::PushCondition> pushConditions;
|
||||
// if (!roomId.isEmpty()) {
|
||||
// kind = PushRuleKind::Override;
|
||||
//
|
||||
// Quotient::PushCondition roomCondition;
|
||||
// roomCondition.kind = u"event_match"_s;
|
||||
// roomCondition.key = u"room_id"_s;
|
||||
// roomCondition.pattern = roomId;
|
||||
// pushConditions.append(roomCondition);
|
||||
//
|
||||
// Quotient::PushCondition keywordCondition;
|
||||
// keywordCondition.kind = u"event_match"_s;
|
||||
// keywordCondition.key = u"content.body"_s;
|
||||
// keywordCondition.pattern = keyword;
|
||||
// pushConditions.append(keywordCondition);
|
||||
// }
|
||||
//
|
||||
// auto job = m_connection->callApi<Quotient::SetPushRuleJob>(PushRuleKind::kindString(kind),
|
||||
// keyword,
|
||||
// actions,
|
||||
// QString(),
|
||||
// QString(),
|
||||
// pushConditions,
|
||||
// roomId.isEmpty() ? keyword : QString());
|
||||
// connect(job, &Quotient::BaseJob::failure, this, [job, keyword]() {
|
||||
// qWarning() << "Unable to set push rule for keyword %1: "_L1.arg(keyword) << job->errorString();
|
||||
// });
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -336,20 +336,20 @@ void PushRuleModel::removeKeyword(const QString &keyword)
|
||||
}
|
||||
|
||||
auto kind = PushRuleKind::kindString(m_rules[index].kind);
|
||||
auto job = m_connection->callApi<Quotient::DeletePushRuleJob>(kind, m_rules[index].id);
|
||||
connect(job, &Quotient::BaseJob::failure, this, [this, job, index]() {
|
||||
qWarning() << "Unable to remove push rule for keyword %1: "_L1.arg(m_rules[index].id) << job->errorString();
|
||||
});
|
||||
// auto job = m_connection->callApi<Quotient::DeletePushRuleJob>(kind, m_rules[index].id);
|
||||
// connect(job, &Quotient::BaseJob::failure, this, [this, job, index]() {
|
||||
// qWarning() << "Unable to remove push rule for keyword %1: "_L1.arg(m_rules[index].id) << job->errorString();
|
||||
// });
|
||||
}
|
||||
|
||||
void PushRuleModel::setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled)
|
||||
{
|
||||
auto job = m_connection->callApi<Quotient::IsPushRuleEnabledJob>(kind, ruleId);
|
||||
connect(job, &Quotient::BaseJob::success, this, [job, kind, ruleId, enabled, this]() {
|
||||
if (job->enabled() != enabled) {
|
||||
m_connection->callApi<Quotient::SetPushRuleEnabledJob>(kind, ruleId, enabled);
|
||||
}
|
||||
});
|
||||
// auto job = m_connection->callApi<Quotient::IsPushRuleEnabledJob>(kind, ruleId);
|
||||
// connect(job, &Quotient::BaseJob::success, this, [job, kind, ruleId, enabled, this]() {
|
||||
// if (job->enabled() != enabled) {
|
||||
// m_connection->callApi<Quotient::SetPushRuleEnabledJob>(kind, ruleId, enabled);
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
void PushRuleModel::setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action)
|
||||
@@ -361,7 +361,7 @@ void PushRuleModel::setNotificationRuleActions(const QString &kind, const QStrin
|
||||
actions = actionToVariant(action);
|
||||
}
|
||||
|
||||
m_connection->callApi<Quotient::SetPushRuleActionsJob>(kind, ruleId, actions);
|
||||
// m_connection->callApi<Quotient::SetPushRuleActionsJob>(kind, ruleId, actions);
|
||||
}
|
||||
|
||||
PushRuleAction::Action PushRuleModel::variantToAction(const QList<QVariant> &actions, bool enabled)
|
||||
@@ -378,14 +378,14 @@ PushRuleAction::Action PushRuleModel::variantToAction(const QList<QVariant> &act
|
||||
continue;
|
||||
}
|
||||
|
||||
QJsonObject action = i.toJsonObject();
|
||||
if (action["set_tweak"_L1].toString() == u"sound"_s) {
|
||||
isNoisy = true;
|
||||
} else if (action["set_tweak"_L1].toString() == u"highlight"_s) {
|
||||
if (action["value"_L1].toString() != u"false"_s) {
|
||||
highlightEnabled = true;
|
||||
}
|
||||
}
|
||||
// QJsonObject action = i.toJsonObject();
|
||||
// if (action["set_tweak"_L1].toString() == u"sound"_s) {
|
||||
// isNoisy = true;
|
||||
// } else if (action["set_tweak"_L1].toString() == u"highlight"_s) {
|
||||
// if (action["value"_L1].toString() != u"false"_s) {
|
||||
// highlightEnabled = true;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
if (!enabled) {
|
||||
@@ -424,15 +424,15 @@ QList<QVariant> PushRuleModel::actionToVariant(PushRuleAction::Action action, co
|
||||
actions.append(u"dont_notify"_s);
|
||||
}
|
||||
if (action == PushRuleAction::Noisy || action == PushRuleAction::NoisyHighlight) {
|
||||
QJsonObject soundTweak;
|
||||
soundTweak.insert("set_tweak"_L1, u"sound"_s);
|
||||
soundTweak.insert("value"_L1, sound);
|
||||
actions.append(soundTweak);
|
||||
// QJsonObject soundTweak;
|
||||
// soundTweak.insert("set_tweak"_L1, u"sound"_s);
|
||||
// soundTweak.insert("value"_L1, sound);
|
||||
// actions.append(soundTweak);
|
||||
}
|
||||
if (action == PushRuleAction::Highlight || action == PushRuleAction::NoisyHighlight) {
|
||||
QJsonObject highlightTweak;
|
||||
highlightTweak.insert("set_tweak"_L1, u"highlight"_s);
|
||||
actions.append(highlightTweak);
|
||||
// QJsonObject highlightTweak;
|
||||
// highlightTweak.insert("set_tweak"_L1, u"highlight"_s);
|
||||
// actions.append(highlightTweak);
|
||||
}
|
||||
|
||||
return actions;
|
||||
@@ -452,7 +452,7 @@ void PushRuleModel::setConnection(NeoChatConnection *connection)
|
||||
Q_EMIT connectionChanged();
|
||||
|
||||
if (m_connection) {
|
||||
connect(m_connection, &NeoChatConnection::accountDataChanged, this, &PushRuleModel::updateNotificationRules);
|
||||
// connect(m_connection, &NeoChatConnection::accountDataChanged, this, &PushRuleModel::updateNotificationRules);
|
||||
updateNotificationRules(u"m.push_rules"_s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include <QAbstractListModel>
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include <Quotient/csapi/definitions/push_rule.h>
|
||||
// #include <Quotient/csapi/definitions/push_rule.h>
|
||||
|
||||
#include "enums/pushrule.h"
|
||||
#include "neochatconnection.h"
|
||||
@@ -130,10 +130,10 @@ private:
|
||||
QList<Rule> m_rules;
|
||||
QPointer<NeoChatConnection> m_connection;
|
||||
|
||||
void setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind);
|
||||
// void setRules(QList<Quotient::PushRule> rules, PushRuleKind::Kind kind);
|
||||
|
||||
int getRuleIndex(const QString &ruleId) const;
|
||||
PushRuleSection::Section getSection(Quotient::PushRule rule);
|
||||
// PushRuleSection::Section getSection(Quotient::PushRule rule);
|
||||
|
||||
void setNotificationRuleEnabled(const QString &kind, const QString &ruleId, bool enabled);
|
||||
void setNotificationRuleActions(const QString &kind, const QString &ruleId, PushRuleAction::Action action);
|
||||
|
||||
@@ -12,11 +12,11 @@ RoomTreeItem::RoomTreeItem(TreeData data, RoomTreeItem *parent)
|
||||
|
||||
bool RoomTreeItem::operator==(const RoomTreeItem &other) const
|
||||
{
|
||||
if (std::holds_alternative<NeoChatRoomType::Types>(m_data) && std::holds_alternative<NeoChatRoomType::Types>(other.data())) {
|
||||
return std::get<NeoChatRoomType::Types>(m_data) == std::get<NeoChatRoomType::Types>(m_data);
|
||||
if (std::holds_alternative<NeoChatRoomType::Type>(m_data) && std::holds_alternative<NeoChatRoomType::Type>(other.data())) {
|
||||
return std::get<NeoChatRoomType::Type>(m_data) == std::get<NeoChatRoomType::Type>(m_data);
|
||||
}
|
||||
if (std::holds_alternative<NeoChatRoom *>(m_data) && std::holds_alternative<NeoChatRoom *>(other.data())) {
|
||||
return std::get<NeoChatRoom *>(m_data)->id() == std::get<NeoChatRoom *>(m_data)->id();
|
||||
if (std::holds_alternative<RoomWrapper *>(m_data) && std::holds_alternative<RoomWrapper *>(other.data())) {
|
||||
return (*std::get<RoomWrapper *>(m_data)->item)->id() == (*std::get<RoomWrapper *>(other.data())->item)->id();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -84,13 +84,13 @@ RoomTreeItem::TreeData RoomTreeItem::data() const
|
||||
return m_data;
|
||||
}
|
||||
|
||||
std::optional<int> RoomTreeItem::rowForRoom(Quotient::Room *room) const
|
||||
std::optional<int> RoomTreeItem::rowForRoom(rust::Box<sdk::RoomListRoom> room) const
|
||||
{
|
||||
Q_ASSERT_X(std::holds_alternative<NeoChatRoomType::Types>(m_data), __FUNCTION__, "rowForRoom only works items for rooms not categories");
|
||||
Q_ASSERT_X(std::holds_alternative<NeoChatRoomType::Type>(m_data), __FUNCTION__, "rowForRoom only works items for rooms not categories");
|
||||
|
||||
int i = 0;
|
||||
for (const auto &child : m_children) {
|
||||
if (std::get<NeoChatRoom *>(child->data()) == room) {
|
||||
if ((*std::get<RoomWrapper *>(child->data())->item)->id() == room->id()) {
|
||||
return i;
|
||||
}
|
||||
i++;
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
|
||||
// SPDX-FileCopyrightText: 2024 Carl Schwan <carl@carlschwan.eu>
|
||||
// SPDX-FileCopyrightText: 2024 James Graham <james.h.graham@protonmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "enums/neochatroomtype.h"
|
||||
#include "neochatroomtype.h"
|
||||
|
||||
class NeoChatRoom;
|
||||
namespace sdk
|
||||
{
|
||||
struct RoomListRoom;
|
||||
}
|
||||
|
||||
struct RoomWrapper {
|
||||
std::optional<rust::Box<sdk::RoomListRoom>> item;
|
||||
};
|
||||
|
||||
/**
|
||||
* @class RoomTreeItem
|
||||
*
|
||||
* This class defines an item in the space tree hierarchy model.
|
||||
*
|
||||
* @note This is separate from Quotient::Room and NeoChatRoom because we don't have
|
||||
* full room information for any room/space the user hasn't joined and we
|
||||
* don't want to create one for ever possible child in a space as that would
|
||||
* be expensive.
|
||||
*
|
||||
* @sa Quotient::Room, NeoChatRoom
|
||||
* This class defines an item in a room tree.
|
||||
*/
|
||||
class RoomTreeItem
|
||||
{
|
||||
public:
|
||||
using TreeData = std::variant<NeoChatRoom *, NeoChatRoomType::Types>;
|
||||
using TreeData = std::variant<RoomWrapper *, NeoChatRoomType::Type>;
|
||||
|
||||
explicit RoomTreeItem(TreeData data, RoomTreeItem *parent = nullptr);
|
||||
|
||||
@@ -68,7 +69,7 @@ public:
|
||||
*/
|
||||
TreeData data() const;
|
||||
|
||||
std::optional<int> rowForRoom(Quotient::Room *room) const;
|
||||
std::optional<int> rowForRoom(rust::Box<sdk::RoomListRoom> room) const;
|
||||
|
||||
private:
|
||||
std::vector<std::unique_ptr<RoomTreeItem>> m_children;
|
||||
|
||||
@@ -1,23 +1,45 @@
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
#include "roomtreemodel.h"
|
||||
|
||||
#include <Quotient/room.h>
|
||||
|
||||
#include "eventhandler.h"
|
||||
#include "neochatconnection.h"
|
||||
// #include "eventhandler.h"
|
||||
#include "neochatroomtype.h"
|
||||
#include "spacehierarchycache.h"
|
||||
#include "rust/cxx.h"
|
||||
#include <Integral/lib.rs.h>
|
||||
// #include "spacehierarchycache.h"
|
||||
#include <Integral/RoomStream>
|
||||
#include <Integral/Utils>
|
||||
|
||||
using namespace Quotient;
|
||||
using namespace Integral;
|
||||
|
||||
class RoomTreeModel::Private
|
||||
{
|
||||
public:
|
||||
QPointer<Integral::Connection> connection;
|
||||
std::unique_ptr<RoomStream> roomStream = nullptr;
|
||||
std::unique_ptr<RoomTreeItem> rootItem;
|
||||
// Since the rooms are streamed as vector diffs we need to keep track of them
|
||||
// for things like the index value of insert to make sense.
|
||||
QList<QPersistentModelIndex> roomIndexes;
|
||||
|
||||
void roomsUpdate();
|
||||
void resetTree();
|
||||
|
||||
RoomTreeModel *q = nullptr;
|
||||
};
|
||||
|
||||
RoomTreeModel::RoomTreeModel(QObject *parent)
|
||||
: QAbstractItemModel(parent)
|
||||
, m_rootItem(new RoomTreeItem(nullptr))
|
||||
, d(std::make_unique<Private>())
|
||||
{
|
||||
d->q = this;
|
||||
}
|
||||
|
||||
RoomTreeModel::~RoomTreeModel() = default;
|
||||
|
||||
RoomTreeItem *RoomTreeModel::getItem(const QModelIndex &index) const
|
||||
{
|
||||
if (index.isValid()) {
|
||||
@@ -26,179 +48,226 @@ RoomTreeItem *RoomTreeModel::getItem(const QModelIndex &index) const
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return m_rootItem.get();
|
||||
return d->rootItem.get();
|
||||
}
|
||||
|
||||
void RoomTreeModel::resetModel()
|
||||
{
|
||||
if (m_connection == nullptr) {
|
||||
if (d->connection == nullptr) {
|
||||
beginResetModel();
|
||||
m_rootItem.reset();
|
||||
d->rootItem.reset();
|
||||
d->roomStream.reset();
|
||||
endResetModel();
|
||||
return;
|
||||
}
|
||||
|
||||
beginResetModel();
|
||||
m_rootItem.reset(new RoomTreeItem(nullptr));
|
||||
d->resetTree();
|
||||
|
||||
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
|
||||
m_rootItem->insertChild(std::make_unique<RoomTreeItem>(NeoChatRoomType::Types(i), m_rootItem.get()));
|
||||
}
|
||||
d->roomStream = d->connection->roomStream();
|
||||
connect(d->roomStream.get(), &RoomStream::roomsUpdate, this, [this]() {
|
||||
d->roomsUpdate();
|
||||
});
|
||||
|
||||
for (const auto &r : m_connection->allRooms()) {
|
||||
const auto room = dynamic_cast<NeoChatRoom *>(r);
|
||||
const auto type = NeoChatRoomType::typeForRoom(room);
|
||||
const auto categoryItem = m_rootItem->child(type);
|
||||
if (categoryItem->insertChild(std::make_unique<RoomTreeItem>(room, categoryItem))) {
|
||||
connectRoomSignals(room);
|
||||
}
|
||||
}
|
||||
d->roomStream->startStream();
|
||||
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
void RoomTreeModel::setConnection(NeoChatConnection *connection)
|
||||
void RoomTreeModel::Private::resetTree()
|
||||
{
|
||||
if (m_connection == connection) {
|
||||
rootItem.reset(new RoomTreeItem(nullptr));
|
||||
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
|
||||
rootItem->insertChild(std::make_unique<RoomTreeItem>(NeoChatRoomType::Type(i), rootItem.get()));
|
||||
}
|
||||
}
|
||||
|
||||
void RoomTreeModel::setConnection(Connection *connection)
|
||||
{
|
||||
if (d->connection == connection) {
|
||||
return;
|
||||
}
|
||||
if (m_connection) {
|
||||
disconnect(m_connection.get(), nullptr, this, nullptr);
|
||||
if (d->connection) {
|
||||
d->connection->disconnect(this);
|
||||
}
|
||||
m_connection = connection;
|
||||
d->connection = connection;
|
||||
|
||||
resetModel();
|
||||
|
||||
connect(connection, &Connection::newRoom, this, &RoomTreeModel::newRoom);
|
||||
connect(connection, &Connection::leftRoom, this, &RoomTreeModel::leftRoom);
|
||||
connect(connection, &Connection::aboutToDeleteRoom, this, &RoomTreeModel::leftRoom);
|
||||
|
||||
Q_EMIT connectionChanged();
|
||||
}
|
||||
|
||||
void RoomTreeModel::newRoom(Room *r)
|
||||
void RoomTreeModel::Private::roomsUpdate()
|
||||
{
|
||||
const auto room = dynamic_cast<NeoChatRoom *>(r);
|
||||
const auto type = NeoChatRoomType::typeForRoom(room);
|
||||
// Check if the room is already in the model.
|
||||
const auto checkRoomIndex = indexForRoom(room);
|
||||
if (checkRoomIndex.isValid()) {
|
||||
// If the room is in the wrong type category for whatever reason, move it.
|
||||
if (checkRoomIndex.parent().row() != type) {
|
||||
moveRoom(room);
|
||||
const auto diff = roomStream->next();
|
||||
|
||||
switch (diff->op()) {
|
||||
case 0: { // Append
|
||||
for (const auto &it : diff->items_vec()) {
|
||||
const auto type = NeoChatRoomType::typeForRoom(it.box_me());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{it.box_me()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes.append(q->indexForRoom(it.box_me()));
|
||||
}
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
const auto parentItem = m_rootItem->child(type);
|
||||
beginInsertRows(index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
parentItem->insertChild(std::make_unique<RoomTreeItem>(room, parentItem));
|
||||
connectRoomSignals(room);
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
void RoomTreeModel::leftRoom(Room *r)
|
||||
{
|
||||
const auto room = dynamic_cast<NeoChatRoom *>(r);
|
||||
auto index = indexForRoom(room);
|
||||
if (!index.isValid()) {
|
||||
return;
|
||||
case 1: { // Clear
|
||||
q->beginResetModel();
|
||||
resetTree();
|
||||
roomIndexes.clear();
|
||||
q->endResetModel();
|
||||
break;
|
||||
}
|
||||
|
||||
const auto parentItem = getItem(index.parent());
|
||||
Q_ASSERT(parentItem);
|
||||
|
||||
beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
parentItem->removeChild(index.row());
|
||||
room->disconnect(this);
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
void RoomTreeModel::moveRoom(Quotient::Room *room)
|
||||
{
|
||||
// We can't assume the type as it has changed so currently the return of
|
||||
// NeoChatRoomType::typeForRoom doesn't match it's current location. So find the room.
|
||||
NeoChatRoomType::Types oldType;
|
||||
int oldRow = -1;
|
||||
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
|
||||
const auto categoryItem = m_rootItem->child(i);
|
||||
const auto row = categoryItem->rowForRoom(room);
|
||||
if (row) {
|
||||
oldType = static_cast<NeoChatRoomType::Types>(i);
|
||||
oldRow = *row;
|
||||
case 2: { // Push Front
|
||||
const auto type = NeoChatRoomType::typeForRoom(diff->item());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), 0, 0);
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes.prepend(q->indexForRoom(diff->item()));
|
||||
break;
|
||||
}
|
||||
|
||||
if (oldRow == -1) {
|
||||
return;
|
||||
case 3: { // Push Back
|
||||
const auto type = NeoChatRoomType::typeForRoom(diff->item());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes.append(q->indexForRoom(diff->item()));
|
||||
break;
|
||||
}
|
||||
auto neochatRoom = dynamic_cast<NeoChatRoom *>(room);
|
||||
const auto newType = NeoChatRoomType::typeForRoom(neochatRoom);
|
||||
if (newType == oldType) {
|
||||
return;
|
||||
case 4: { // Pop Front
|
||||
const auto index = roomIndexes.front();
|
||||
q->beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
const auto parentItem = q->getItem(index.parent());
|
||||
parentItem->removeChild(index.row());
|
||||
roomIndexes.removeFirst();
|
||||
q->endRemoveRows();
|
||||
break;
|
||||
}
|
||||
case 5: { // Pop Back
|
||||
const auto index = roomIndexes.back();
|
||||
q->beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
const auto parentItem = q->getItem(index.parent());
|
||||
parentItem->removeChild(index.row());
|
||||
roomIndexes.removeLast();
|
||||
q->endRemoveRows();
|
||||
break;
|
||||
}
|
||||
case 6: { // Insert
|
||||
const auto type = NeoChatRoomType::typeForRoom(diff->item());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes.insert(diff->index(), q->indexForRoom(diff->item()));
|
||||
break;
|
||||
}
|
||||
case 7: { // Set
|
||||
const auto index = roomIndexes.at(diff->index());
|
||||
q->beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
q->getItem(index.parent())->removeChild(index.row());
|
||||
q->endRemoveRows();
|
||||
|
||||
const auto oldParent = index(oldType, 0, {});
|
||||
auto oldParentItem = getItem(oldParent);
|
||||
Q_ASSERT(oldParentItem);
|
||||
const auto type = NeoChatRoomType::typeForRoom(diff->item());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{diff->item()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes[diff->index()] = q->indexForRoom(diff->item());
|
||||
break;
|
||||
}
|
||||
case 8: { // Remove
|
||||
const auto index = roomIndexes.at(diff->index());
|
||||
q->beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
q->getItem(index.parent())->removeChild(index.row());
|
||||
q->endRemoveRows();
|
||||
roomIndexes.removeAt(diff->index());
|
||||
break;
|
||||
}
|
||||
case 9: { // Truncate
|
||||
for (int i = q->rowCount({}) - 1; i >= int(diff->index()); i--) {
|
||||
const auto index = roomIndexes.at(i);
|
||||
q->beginRemoveRows(index.parent(), index.row(), index.row());
|
||||
q->getItem(index.parent())->removeChild(index.row());
|
||||
q->endRemoveRows();
|
||||
roomIndexes.removeAt(i);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 10: { // Reset
|
||||
q->beginResetModel();
|
||||
resetTree();
|
||||
roomIndexes.clear();
|
||||
q->endResetModel();
|
||||
|
||||
const auto newParent = index(newType, 0, {});
|
||||
auto newParentItem = getItem(newParent);
|
||||
Q_ASSERT(newParentItem);
|
||||
|
||||
// HACK: We're doing this as a remove then insert because moving doesn't work
|
||||
// properly with DelegateChooser for whatever reason.
|
||||
Q_ASSERT(checkIndex(index(oldRow, 0, oldParent), QAbstractItemModel::CheckIndexOption::IndexIsValid));
|
||||
beginRemoveRows(oldParent, oldRow, oldRow);
|
||||
const bool success = oldParentItem->removeChild(oldRow);
|
||||
Q_ASSERT(success);
|
||||
endRemoveRows();
|
||||
beginInsertRows(newParent, newParentItem->childCount(), newParentItem->childCount());
|
||||
newParentItem->insertChild(std::make_unique<RoomTreeItem>(neochatRoom, newParentItem));
|
||||
endInsertRows();
|
||||
for (const auto &it : diff->items_vec()) {
|
||||
const auto type = NeoChatRoomType::typeForRoom(it.box_me());
|
||||
const auto parentItem = rootItem->child(type);
|
||||
q->beginInsertRows(q->index(parentItem->row(), 0), parentItem->childCount(), parentItem->childCount());
|
||||
if (parentItem->insertChild(std::make_unique<RoomTreeItem>(new RoomWrapper{it.box_me()}, parentItem))) {
|
||||
// connectRoomSignals(room);
|
||||
}
|
||||
q->endInsertRows();
|
||||
roomIndexes.append(q->indexForRoom(it.box_me()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RoomTreeModel::connectRoomSignals(NeoChatRoom *room)
|
||||
{
|
||||
connect(room, &Room::displaynameChanged, this, [this, room] {
|
||||
refreshRoomRoles(room, {DisplayNameRole});
|
||||
});
|
||||
connect(room, &Room::unreadStatsChanged, this, [this, room] {
|
||||
refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
|
||||
});
|
||||
connect(room, &Room::avatarChanged, this, [this, room] {
|
||||
refreshRoomRoles(room, {AvatarRole});
|
||||
});
|
||||
connect(room, &Room::tagsChanged, this, [this, room] {
|
||||
moveRoom(room);
|
||||
});
|
||||
connect(room, &Room::joinStateChanged, this, [this, room] {
|
||||
refreshRoomRoles(room);
|
||||
});
|
||||
connect(room, &Room::addedMessages, this, [this, room] {
|
||||
refreshRoomRoles(room, {SubtitleTextRole});
|
||||
});
|
||||
connect(room, &Room::pendingEventMerged, this, [this, room] {
|
||||
refreshRoomRoles(room, {SubtitleTextRole});
|
||||
});
|
||||
connect(room, &NeoChatRoom::pushNotificationStateChanged, this, [this, room] {
|
||||
refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
|
||||
});
|
||||
}
|
||||
// void RoomTreeModel::connectRoomSignals(NeoChatRoom *room)
|
||||
// {
|
||||
// connect(room, &Room::displaynameChanged, this, [this, room] {
|
||||
// refreshRoomRoles(room, {DisplayNameRole});
|
||||
// });
|
||||
// connect(room, &Room::unreadStatsChanged, this, [this, room] {
|
||||
// refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
|
||||
// });
|
||||
// connect(room, &Room::avatarChanged, this, [this, room] {
|
||||
// refreshRoomRoles(room, {AvatarRole});
|
||||
// });
|
||||
// connect(room, &Room::tagsChanged, this, [this, room] {
|
||||
// moveRoom(room);
|
||||
// });
|
||||
// connect(room, &Room::joinStateChanged, this, [this, room] {
|
||||
// refreshRoomRoles(room);
|
||||
// });
|
||||
// connect(room, &Room::addedMessages, this, [this, room] {
|
||||
// refreshRoomRoles(room, {SubtitleTextRole});
|
||||
// });
|
||||
// connect(room, &Room::pendingEventMerged, this, [this, room] {
|
||||
// refreshRoomRoles(room, {SubtitleTextRole});
|
||||
// });
|
||||
// connect(room, &NeoChatRoom::pushNotificationStateChanged, this, [this, room] {
|
||||
// refreshRoomRoles(room, {ContextNotificationCountRole, HasHighlightNotificationsRole});
|
||||
// });
|
||||
// }
|
||||
|
||||
void RoomTreeModel::refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles)
|
||||
{
|
||||
const auto index = indexForRoom(room);
|
||||
if (!index.isValid()) {
|
||||
qCritical() << "Room" << room->id() << "not found in the room list";
|
||||
return;
|
||||
}
|
||||
Q_EMIT dataChanged(index, index, roles);
|
||||
}
|
||||
// void RoomTreeModel::refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles)
|
||||
// {
|
||||
// const auto index = indexForRoom(room);
|
||||
// if (!index.isValid()) {
|
||||
// qCritical() << "Room" << room->id() << "not found in the room list";
|
||||
// return;
|
||||
// }
|
||||
// Q_EMIT dataChanged(index, index, roles);
|
||||
// }
|
||||
|
||||
NeoChatConnection *RoomTreeModel::connection() const
|
||||
Connection *RoomTreeModel::connection() const
|
||||
{
|
||||
return m_connection;
|
||||
return d->connection;
|
||||
}
|
||||
|
||||
int RoomTreeModel::columnCount(const QModelIndex &parent) const
|
||||
@@ -215,7 +284,7 @@ int RoomTreeModel::rowCount(const QModelIndex &parent) const
|
||||
}
|
||||
|
||||
if (!parent.isValid()) {
|
||||
parentItem = m_rootItem.get();
|
||||
parentItem = d->rootItem.get();
|
||||
} else {
|
||||
parentItem = static_cast<RoomTreeItem *>(parent.internalPointer());
|
||||
}
|
||||
@@ -239,7 +308,7 @@ QModelIndex RoomTreeModel::parent(const QModelIndex &index) const
|
||||
}
|
||||
RoomTreeItem *parentItem = childItem->parentItem();
|
||||
|
||||
if (parentItem == m_rootItem.get()) {
|
||||
if (parentItem == d->rootItem.get()) {
|
||||
return QModelIndex();
|
||||
}
|
||||
|
||||
@@ -295,7 +364,7 @@ QVariant RoomTreeModel::data(const QModelIndex &index, int role) const
|
||||
}
|
||||
|
||||
RoomTreeItem *child = getItem(index);
|
||||
if (std::holds_alternative<NeoChatRoomType::Types>(child->data())) {
|
||||
if (std::holds_alternative<NeoChatRoomType::Type>(child->data())) {
|
||||
if (role == DisplayNameRole) {
|
||||
return NeoChatRoomType::typeName(index.row());
|
||||
}
|
||||
@@ -314,98 +383,91 @@ QVariant RoomTreeModel::data(const QModelIndex &index, int role) const
|
||||
return {};
|
||||
}
|
||||
|
||||
const auto room = std::get<NeoChatRoom *>(child->data());
|
||||
const auto room = std::get<RoomWrapper *>(child->data());
|
||||
Q_ASSERT(room);
|
||||
|
||||
if (role == DisplayNameRole) {
|
||||
return room->displayName();
|
||||
return stringFromRust((*room->item)->display_name()).toHtmlEscaped();
|
||||
}
|
||||
if (role == AvatarRole) {
|
||||
return room->avatarMediaUrl();
|
||||
return u"%1?user_id=%2"_s.arg(stringFromRust((*room->item)->avatar_url()), d->connection->matrixId());
|
||||
}
|
||||
if (role == CanonicalAliasRole) {
|
||||
return room->canonicalAlias();
|
||||
return stringFromRust((*room->item)->canonical_alias()).toHtmlEscaped();
|
||||
}
|
||||
if (role == TopicRole) {
|
||||
return room->topic();
|
||||
return stringFromRust((*room->item)->topic()).toHtmlEscaped();
|
||||
}
|
||||
if (role == CategoryRole) {
|
||||
return NeoChatRoomType::typeForRoom(room);
|
||||
return NeoChatRoomType::typeForRoom((*room->item)->box_me());
|
||||
}
|
||||
if (role == ContextNotificationCountRole) {
|
||||
return int(room->contextAwareNotificationCount());
|
||||
return int((*room->item)->num_unread_messages());
|
||||
}
|
||||
if (role == HasHighlightNotificationsRole) {
|
||||
return room->highlightCount() > 0 && room->contextAwareNotificationCount() > 0;
|
||||
return (*room->item)->num_unread_mentions() > 0 && (*room->item)->num_unread_messages() > 0;
|
||||
}
|
||||
if (role == JoinStateRole) {
|
||||
if (!room->successorId().isEmpty()) {
|
||||
if (!(*room->item)->tombstone()->replacement_room().empty()) {
|
||||
return u"upgraded"_s;
|
||||
}
|
||||
return QVariant::fromValue(room->joinState());
|
||||
return QVariant::fromValue((*room->item)->state());
|
||||
}
|
||||
if (role == CurrentRoomRole) {
|
||||
return QVariant::fromValue(room);
|
||||
return {};
|
||||
// return QVariant::fromValue(room);
|
||||
}
|
||||
if (role == SubtitleTextRole) {
|
||||
if (room->isInvite()) {
|
||||
if (room->isDirectChat()) {
|
||||
return i18nc("@info:label", "Invited you to chat");
|
||||
}
|
||||
return i18nc("@info:label", "%1 invited you", room->member(room->invitingUserId()).displayName());
|
||||
}
|
||||
if (room->lastEvent() == nullptr || room->lastEventIsSpoiler()) {
|
||||
return QString();
|
||||
}
|
||||
return EventHandler::subtitleText(room, room->lastEvent());
|
||||
return {};
|
||||
// if (room->lastEvent() == nullptr || room->lastEventIsSpoiler()) {
|
||||
// return QString();
|
||||
// }
|
||||
// return EventHandler::subtitleText(room, room->lastEvent());
|
||||
}
|
||||
if (role == AvatarImageRole) {
|
||||
return room->avatar(128);
|
||||
return {};
|
||||
// return room->avatar(128);
|
||||
}
|
||||
if (role == RoomIdRole) {
|
||||
return room->id();
|
||||
return stringFromRust((*room->item)->id()).toHtmlEscaped();
|
||||
}
|
||||
if (role == IsSpaceRole) {
|
||||
return room->isSpace();
|
||||
return (*room->item)->is_space();
|
||||
}
|
||||
if (role == IsChildSpaceRole) {
|
||||
return SpaceHierarchyCache::instance().isChild(room->id());
|
||||
return false;
|
||||
// return SpaceHierarchyCache::instance().isChild(room->id());
|
||||
}
|
||||
if (role == ReplacementIdRole) {
|
||||
return room->successorId();
|
||||
return stringFromRust((*room->item)->tombstone()->replacement_room()).toHtmlEscaped();
|
||||
}
|
||||
if (role == IsDirectChat) {
|
||||
return room->isDirectChat();
|
||||
return false;
|
||||
// return room->isDirectChat();
|
||||
}
|
||||
if (role == DelegateTypeRole) {
|
||||
return u"normal"_s;
|
||||
}
|
||||
if (role == RoomTypeRole) {
|
||||
if (room->creation()) {
|
||||
return room->creation()->contentPart<QString>("type"_L1);
|
||||
}
|
||||
return stringFromRust((*room->item)->room_type()).toHtmlEscaped();
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QModelIndex RoomTreeModel::indexForRoom(NeoChatRoom *room) const
|
||||
QModelIndex RoomTreeModel::indexForRoom(rust::Box<sdk::RoomListRoom> room) const
|
||||
{
|
||||
if (room == nullptr) {
|
||||
return {};
|
||||
}
|
||||
|
||||
// Try and find by checking type.
|
||||
const auto type = NeoChatRoomType::typeForRoom(room);
|
||||
const auto parentItem = m_rootItem->child(type);
|
||||
const auto row = parentItem->rowForRoom(room);
|
||||
const auto type = NeoChatRoomType::typeForRoom(room->box_me());
|
||||
const auto parentItem = d->rootItem->child(type);
|
||||
const auto row = parentItem->rowForRoom(room->box_me());
|
||||
if (row) {
|
||||
return index(*row, 0, index(type, 0));
|
||||
}
|
||||
// Double check that the room isn't in the wrong category.
|
||||
for (int i = 0; i < NeoChatRoomType::TypesCount; i++) {
|
||||
const auto parentItem = m_rootItem->child(i);
|
||||
const auto row = parentItem->rowForRoom(room);
|
||||
const auto parentItem = d->rootItem->child(i);
|
||||
const auto row = parentItem->rowForRoom(room->box_me());
|
||||
if (row) {
|
||||
return index(*row, 0, index(i, 0));
|
||||
}
|
||||
@@ -414,4 +476,13 @@ QModelIndex RoomTreeModel::indexForRoom(NeoChatRoom *room) const
|
||||
return {};
|
||||
}
|
||||
|
||||
std::optional<rust::Box<sdk::RoomListRoom>> RoomTreeModel::roomForIndex(QModelIndex index) const
|
||||
{
|
||||
RoomTreeItem *child = getItem(index);
|
||||
if (std::holds_alternative<NeoChatRoomType::Type>(child->data())) {
|
||||
return std::nullopt;
|
||||
}
|
||||
return (*std::get<RoomWrapper *>(child->data())->item)->box_me();
|
||||
}
|
||||
|
||||
#include "moc_roomtreemodel.cpp"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
@@ -6,23 +7,20 @@
|
||||
#include <QAbstractItemModel>
|
||||
#include <QPointer>
|
||||
|
||||
#include "enums/neochatroomtype.h"
|
||||
#include "roomtreeitem.h"
|
||||
|
||||
namespace Quotient
|
||||
namespace Integral
|
||||
{
|
||||
class Connection;
|
||||
class Room;
|
||||
}
|
||||
|
||||
class NeoChatConnection;
|
||||
class NeoChatRoom;
|
||||
|
||||
class RoomTreeModel : public QAbstractItemModel
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
|
||||
Q_PROPERTY(NeoChatConnection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
|
||||
Q_PROPERTY(Integral::Connection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
|
||||
|
||||
public:
|
||||
/**
|
||||
@@ -51,9 +49,10 @@ public:
|
||||
};
|
||||
Q_ENUM(EventRoles)
|
||||
explicit RoomTreeModel(QObject *parent = nullptr);
|
||||
~RoomTreeModel();
|
||||
|
||||
void setConnection(NeoChatConnection *connection);
|
||||
NeoChatConnection *connection() const;
|
||||
void setConnection(Integral::Connection *connection);
|
||||
Integral::Connection *connection() const;
|
||||
|
||||
/**
|
||||
* @brief Get the given role value at the given index.
|
||||
@@ -75,23 +74,21 @@ public:
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
|
||||
Q_INVOKABLE QModelIndex indexForRoom(NeoChatRoom *room) const;
|
||||
QModelIndex indexForRoom(rust::Box<sdk::RoomListRoom> room) const;
|
||||
std::optional<rust::Box<sdk::RoomListRoom>> roomForIndex(QModelIndex index) const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void connectionChanged();
|
||||
|
||||
private:
|
||||
QPointer<NeoChatConnection> m_connection;
|
||||
std::unique_ptr<RoomTreeItem> m_rootItem;
|
||||
class Private;
|
||||
std::unique_ptr<Private> d;
|
||||
|
||||
RoomTreeItem *getItem(const QModelIndex &index) const;
|
||||
|
||||
void resetModel();
|
||||
void connectRoomSignals(NeoChatRoom *room);
|
||||
|
||||
void newRoom(Quotient::Room *room);
|
||||
void leftRoom(Quotient::Room *room);
|
||||
void moveRoom(Quotient::Room *room);
|
||||
// void connectRoomSignals(NeoChatRoom *room);
|
||||
|
||||
void refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles = {});
|
||||
// void refreshRoomRoles(NeoChatRoom *room, const QList<int> &roles = {});
|
||||
};
|
||||
|
||||
@@ -4,26 +4,26 @@
|
||||
|
||||
#include "sortfilterroomtreemodel.h"
|
||||
|
||||
#include "enums/roomsortparameter.h"
|
||||
#include "neochatconfig.h"
|
||||
#include "roomsortparameter.h"
|
||||
// #include "neochatconfig.h"
|
||||
#include "neochatconnection.h"
|
||||
#include "neochatroom.h"
|
||||
#include "neochatroomtype.h"
|
||||
#include "roommanager.h"
|
||||
#include <Integral/Room>
|
||||
// #include "roommanager.h"
|
||||
#include "roomtreemodel.h"
|
||||
#include "spacehierarchycache.h"
|
||||
// #include "spacehierarchycache.h"
|
||||
|
||||
SortFilterRoomTreeModel::SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QObject *parent)
|
||||
SortFilterRoomTreeModel::SortFilterRoomTreeModel(QObject *parent)
|
||||
: QSortFilterProxyModel(parent)
|
||||
{
|
||||
Q_ASSERT(sourceModel);
|
||||
setSourceModel(sourceModel);
|
||||
// Q_ASSERT(sourceModel);
|
||||
// setSourceModel(sourceModel);
|
||||
|
||||
setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::SortOrderChanged, this, [this]() {
|
||||
setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
|
||||
invalidateFilter();
|
||||
});
|
||||
// setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
|
||||
// connect(NeoChatConfig::self(), &NeoChatConfig::SortOrderChanged, this, [this]() {
|
||||
// setRoomSortOrder(static_cast<RoomSortOrder>(NeoChatConfig::sortOrder()));
|
||||
// invalidateFilter();
|
||||
// });
|
||||
|
||||
setRecursiveFilteringEnabled(true);
|
||||
sort(0);
|
||||
@@ -34,13 +34,13 @@ SortFilterRoomTreeModel::SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QOb
|
||||
connect(this->sourceModel(), &QAbstractItemModel::rowsRemoved, this, &SortFilterRoomTreeModel::invalidateFilter);
|
||||
});
|
||||
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::CollapsedChanged, this, &SortFilterRoomTreeModel::invalidateFilter);
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::AllRoomsInHomeChanged, this, [this]() {
|
||||
invalidateFilter();
|
||||
if (NeoChatConfig::self()->allRoomsInHome()) {
|
||||
RoomManager::instance().resetState();
|
||||
}
|
||||
});
|
||||
// connect(NeoChatConfig::self(), &NeoChatConfig::CollapsedChanged, this, &SortFilterRoomTreeModel::invalidateFilter);
|
||||
// connect(NeoChatConfig::self(), &NeoChatConfig::AllRoomsInHomeChanged, this, [this]() {
|
||||
// invalidateFilter();
|
||||
// if (NeoChatConfig::self()->allRoomsInHome()) {
|
||||
// RoomManager::instance().resetState();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
void SortFilterRoomTreeModel::setRoomSortOrder(SortFilterRoomTreeModel::RoomSortOrder sortOrder)
|
||||
@@ -78,14 +78,14 @@ bool SortFilterRoomTreeModel::lessThan(const QModelIndex &source_left, const QMo
|
||||
return false;
|
||||
}
|
||||
|
||||
const auto leftRoom = dynamic_cast<NeoChatRoom *>(treeModel->connection()->room(source_left.data(RoomTreeModel::RoomIdRole).toString()));
|
||||
const auto rightRoom = dynamic_cast<NeoChatRoom *>(treeModel->connection()->room(source_right.data(RoomTreeModel::RoomIdRole).toString()));
|
||||
if (leftRoom == nullptr || rightRoom == nullptr) {
|
||||
const auto leftRoom = treeModel->roomForIndex(source_left);
|
||||
const auto rightRoom = treeModel->roomForIndex(source_right);
|
||||
if (!leftRoom.has_value() || !rightRoom.has_value()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (auto sortRole : RoomSortParameter::currentParameterList()) {
|
||||
auto result = RoomSortParameter::compareParameter(sortRole, leftRoom, rightRoom);
|
||||
auto result = RoomSortParameter::compareParameter(sortRole, leftRoom.value()->box_me(), rightRoom.value()->box_me());
|
||||
|
||||
if (result != 0) {
|
||||
return result > 0;
|
||||
@@ -141,20 +141,22 @@ bool SortFilterRoomTreeModel::filterAcceptsRow(int source_row, const QModelIndex
|
||||
return false;
|
||||
}
|
||||
|
||||
static auto config = NeoChatConfig::self();
|
||||
if (config->allRoomsInHome() && RoomManager::instance().currentSpace().isEmpty()) {
|
||||
return acceptRoom;
|
||||
}
|
||||
return acceptRoom;
|
||||
|
||||
if (m_activeSpaceId.isEmpty()) {
|
||||
if (!SpaceHierarchyCache::instance().isChild(sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString())) {
|
||||
return acceptRoom;
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
const auto &rooms = SpaceHierarchyCache::instance().getRoomListForSpace(m_activeSpaceId, false);
|
||||
return std::find(rooms.begin(), rooms.end(), sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString()) != rooms.end() && acceptRoom;
|
||||
}
|
||||
// static auto config = NeoChatConfig::self();
|
||||
// if (config->allRoomsInHome() && RoomManager::instance().currentSpace().isEmpty()) {
|
||||
// return acceptRoom;
|
||||
// }
|
||||
//
|
||||
// if (m_activeSpaceId.isEmpty()) {
|
||||
// if (!SpaceHierarchyCache::instance().isChild(sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString())) {
|
||||
// return acceptRoom;
|
||||
// }
|
||||
// return false;
|
||||
// } else {
|
||||
// const auto &rooms = SpaceHierarchyCache::instance().getRoomListForSpace(m_activeSpaceId, false);
|
||||
// return std::find(rooms.begin(), rooms.end(), sourceModel()->data(index, RoomTreeModel::RoomIdRole).toString()) != rooms.end() && acceptRoom;
|
||||
// }
|
||||
}
|
||||
|
||||
QString SortFilterRoomTreeModel::activeSpaceId() const
|
||||
@@ -192,7 +194,7 @@ QModelIndex SortFilterRoomTreeModel::currentRoomIndex() const
|
||||
return {};
|
||||
}
|
||||
|
||||
return mapFromSource(roomModel->indexForRoom(RoomManager::instance().currentRoom()));
|
||||
return {}; // mapFromSource(roomModel->indexForRoom(RoomManager::instance().currentRoom()));
|
||||
}
|
||||
|
||||
#include "moc_sortfilterroomtreemodel.cpp"
|
||||
|
||||
@@ -32,7 +32,7 @@ class SortFilterRoomTreeModel : public QSortFilterProxyModel
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
QML_UNCREATABLE("")
|
||||
// QML_UNCREATABLE("")
|
||||
|
||||
/**
|
||||
* @brief The text to use to filter room names.
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
};
|
||||
Q_ENUM(Mode)
|
||||
|
||||
explicit SortFilterRoomTreeModel(RoomTreeModel *sourceModel, QObject *parent = nullptr);
|
||||
explicit SortFilterRoomTreeModel(QObject *parent = nullptr);
|
||||
|
||||
void setRoomSortOrder(RoomSortOrder sortOrder);
|
||||
|
||||
|
||||
@@ -13,13 +13,35 @@
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
ThreePIdModel::ThreePIdModel(NeoChatConnection *connection)
|
||||
: QAbstractListModel(connection)
|
||||
ThreePIdModel::ThreePIdModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
Q_ASSERT(connection);
|
||||
connect(connection, &NeoChatConnection::stateChanged, this, [this]() {
|
||||
}
|
||||
|
||||
NeoChatConnection *ThreePIdModel::connection() const
|
||||
{
|
||||
return m_connection;
|
||||
}
|
||||
|
||||
void ThreePIdModel::setConnection(NeoChatConnection *connection)
|
||||
{
|
||||
if (m_connection == connection) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_connection != nullptr) {
|
||||
m_connection->disconnect(this);
|
||||
}
|
||||
|
||||
m_connection = connection;
|
||||
if (m_connection) {
|
||||
connect(m_connection, &NeoChatConnection::stateChanged, this, [this]() {
|
||||
refreshModel();
|
||||
});
|
||||
refreshModel();
|
||||
});
|
||||
}
|
||||
|
||||
Q_EMIT connectionChanged();
|
||||
}
|
||||
|
||||
QVariant ThreePIdModel::data(const QModelIndex &index, int role) const
|
||||
@@ -62,12 +84,14 @@ QHash<int, QByteArray> ThreePIdModel::roleNames() const
|
||||
|
||||
void ThreePIdModel::refreshModel()
|
||||
{
|
||||
const auto connection = dynamic_cast<NeoChatConnection *>(this->parent());
|
||||
if (connection != nullptr && connection->isLoggedIn()) {
|
||||
const auto threePIdJob = connection->callApi<Quotient::GetAccount3PIDsJob>();
|
||||
connect(threePIdJob, &Quotient::BaseJob::success, this, [this, threePIdJob]() {
|
||||
if (m_connection != nullptr && m_connection->isLoggedIn()) {
|
||||
if (m_job.isRunning()) {
|
||||
m_job.cancel();
|
||||
}
|
||||
m_job = m_connection->callApi<Quotient::GetAccount3PIDsJob>();
|
||||
connect(m_job, &Quotient::BaseJob::success, this, [this]() {
|
||||
beginResetModel();
|
||||
m_threePIds = threePIdJob->threepids();
|
||||
m_threePIds = m_job->threepids();
|
||||
endResetModel();
|
||||
|
||||
refreshBindStatus();
|
||||
@@ -77,25 +101,24 @@ void ThreePIdModel::refreshModel()
|
||||
|
||||
void ThreePIdModel::refreshBindStatus()
|
||||
{
|
||||
const auto connection = dynamic_cast<NeoChatConnection *>(this->parent());
|
||||
if (connection == nullptr || !connection->hasIdentityServer()) {
|
||||
if (m_connection == nullptr || !m_connection->hasIdentityServer()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto openIdJob = connection->callApi<Quotient::RequestOpenIdTokenJob>(connection->userId());
|
||||
connect(openIdJob, &Quotient::BaseJob::success, this, [this, connection, openIdJob]() {
|
||||
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/account/register"_s);
|
||||
const auto openIdJob = m_connection->callApi<Quotient::RequestOpenIdTokenJob>(m_connection->userId());
|
||||
connect(openIdJob, &Quotient::BaseJob::success, this, [this, openIdJob]() {
|
||||
const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/account/register"_s);
|
||||
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
|
||||
return;
|
||||
}
|
||||
|
||||
QNetworkRequest request(requestUrl);
|
||||
auto newRequest = Quotient::NetworkAccessManager::instance()->post(request, QJsonDocument(openIdJob->jsonData()).toJson());
|
||||
connect(newRequest, &QNetworkReply::finished, this, [this, connection, newRequest]() {
|
||||
connect(newRequest, &QNetworkReply::finished, this, [this, newRequest]() {
|
||||
QJsonObject replyJson = QJsonDocument::fromJson(newRequest->readAll()).object();
|
||||
const auto identityServerToken = replyJson["token"_L1].toString();
|
||||
|
||||
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/hash_details"_s);
|
||||
const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/hash_details"_s);
|
||||
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
|
||||
return;
|
||||
}
|
||||
@@ -104,11 +127,11 @@ void ThreePIdModel::refreshBindStatus()
|
||||
hashRequest.setRawHeader("Authorization", "Bearer " + identityServerToken.toLatin1());
|
||||
|
||||
auto hashReply = Quotient::NetworkAccessManager::instance()->get(hashRequest);
|
||||
connect(hashReply, &QNetworkReply::finished, this, [this, connection, identityServerToken, hashReply]() {
|
||||
connect(hashReply, &QNetworkReply::finished, this, [this, identityServerToken, hashReply]() {
|
||||
QJsonObject replyJson = QJsonDocument::fromJson(hashReply->readAll()).object();
|
||||
const auto lookupPepper = replyJson["lookup_pepper"_L1].toString();
|
||||
|
||||
const auto requestUrl = QUrl(connection->identityServer().toString() + u"/_matrix/identity/v2/lookup"_s);
|
||||
const auto requestUrl = QUrl(m_connection->identityServer().toString() + u"/_matrix/identity/v2/lookup"_s);
|
||||
if (!(requestUrl.scheme() == u"https"_s || requestUrl.scheme() == u"http"_s)) {
|
||||
return;
|
||||
}
|
||||
@@ -127,13 +150,13 @@ void ThreePIdModel::refreshBindStatus()
|
||||
requestData["addresses"_L1] = idLookups;
|
||||
|
||||
auto lookupReply = Quotient::NetworkAccessManager::instance()->post(lookupRequest, QJsonDocument(requestData).toJson(QJsonDocument::Compact));
|
||||
connect(lookupReply, &QNetworkReply::finished, this, [this, connection, lookupReply]() {
|
||||
connect(lookupReply, &QNetworkReply::finished, this, [this, lookupReply]() {
|
||||
beginResetModel();
|
||||
m_bindings.clear();
|
||||
|
||||
QJsonObject mappings = QJsonDocument::fromJson(lookupReply->readAll()).object()["mappings"_L1].toObject();
|
||||
for (const auto &id : mappings.keys()) {
|
||||
if (mappings[id] == connection->userId()) {
|
||||
if (mappings[id] == m_connection->userId()) {
|
||||
m_bindings += id.section(u' ', 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include <Quotient/csapi/administrative_contact.h>
|
||||
#include <Quotient/jobs/jobhandle.h>
|
||||
|
||||
class NeoChatConnection;
|
||||
|
||||
@@ -19,19 +20,27 @@ class ThreePIdModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
QML_UNCREATABLE("")
|
||||
|
||||
/**
|
||||
* @brief The current connection for the model to use.
|
||||
*/
|
||||
Q_PROPERTY(NeoChatConnection *connection READ connection WRITE setConnection NOTIFY connectionChanged)
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Defines the model roles.
|
||||
*/
|
||||
enum EventRoles {
|
||||
enum Roles {
|
||||
AddressRole = Qt::DisplayRole, /**< The third-party identifier address. */
|
||||
MediumRole, /**< The medium of the third-party identifier. One of: [email, msisdn]. */
|
||||
IsBoundRole, /**< Whether the 3PID is bound to the current identity server. */
|
||||
};
|
||||
Q_ENUM(Roles)
|
||||
|
||||
explicit ThreePIdModel(NeoChatConnection *parent);
|
||||
explicit ThreePIdModel(QObject *parent = nullptr);
|
||||
|
||||
[[nodiscard]] NeoChatConnection *connection() const;
|
||||
void setConnection(NeoChatConnection *connection);
|
||||
|
||||
/**
|
||||
* @brief Get the given role value at the given index.
|
||||
@@ -56,9 +65,15 @@ public:
|
||||
|
||||
Q_INVOKABLE void refreshModel();
|
||||
|
||||
Q_SIGNALS:
|
||||
void connectionChanged();
|
||||
|
||||
private:
|
||||
QPointer<NeoChatConnection> m_connection;
|
||||
QVector<Quotient::GetAccount3PIDsJob::ThirdPartyIdentifier> m_threePIds;
|
||||
|
||||
Quotient::JobHandle<Quotient::GetAccount3PIDsJob> m_job;
|
||||
|
||||
QList<QString> m_bindings;
|
||||
|
||||
void refreshBindStatus();
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
#include <QGuiApplication>
|
||||
|
||||
#include <Quotient/avatar.h>
|
||||
#include <Quotient/events/roompowerlevelsevent.h>
|
||||
// #include <Quotient/avatar.h>
|
||||
// #include <Quotient/events/roompowerlevelsevent.h>
|
||||
|
||||
#include "enums/powerlevel.h"
|
||||
#include "neochatroom.h"
|
||||
@@ -30,7 +30,7 @@ void UserListModel::setRoom(NeoChatRoom *room)
|
||||
// last room's objects before the room is actually changed
|
||||
beginResetModel();
|
||||
m_currentRoom->disconnect(this);
|
||||
m_currentRoom->connection()->disconnect(this);
|
||||
// m_currentRoom->connection()->disconnect(this);
|
||||
m_currentRoom = nullptr;
|
||||
m_members.clear();
|
||||
endResetModel();
|
||||
@@ -39,21 +39,21 @@ void UserListModel::setRoom(NeoChatRoom *room)
|
||||
m_currentRoom = room;
|
||||
|
||||
if (m_currentRoom) {
|
||||
connect(m_currentRoom, &Room::memberJoined, this, &UserListModel::memberJoined);
|
||||
connect(m_currentRoom, &Room::memberLeft, this, &UserListModel::memberLeft);
|
||||
connect(m_currentRoom, &Room::memberNameUpdated, this, [this](RoomMember member) {
|
||||
refreshMember(member, {DisplayNameRole});
|
||||
});
|
||||
connect(m_currentRoom, &Room::memberAvatarUpdated, this, [this](RoomMember member) {
|
||||
refreshMember(member, {AvatarRole});
|
||||
});
|
||||
connect(m_currentRoom, &Room::memberListChanged, this, [this]() {
|
||||
// this is slow
|
||||
UserListModel::refreshAllMembers();
|
||||
});
|
||||
connect(m_currentRoom->connection(), &Connection::loggedOut, this, [this]() {
|
||||
setRoom(nullptr);
|
||||
});
|
||||
// connect(m_currentRoom, &Room::memberJoined, this, &UserListModel::memberJoined);
|
||||
// connect(m_currentRoom, &Room::memberLeft, this, &UserListModel::memberLeft);
|
||||
// connect(m_currentRoom, &Room::memberNameUpdated, this, [this](RoomMember member) {
|
||||
// refreshMember(member, {DisplayNameRole});
|
||||
// });
|
||||
// connect(m_currentRoom, &Room::memberAvatarUpdated, this, [this](RoomMember member) {
|
||||
// refreshMember(member, {AvatarRole});
|
||||
// });
|
||||
// connect(m_currentRoom, &Room::memberListChanged, this, [this]() {
|
||||
// // this is slow
|
||||
// UserListModel::refreshAllMembers();
|
||||
// });
|
||||
// connect(m_currentRoom->connection(), &Connection::loggedOut, this, [this]() {
|
||||
// setRoom(nullptr);
|
||||
// });
|
||||
}
|
||||
|
||||
m_active = false;
|
||||
@@ -80,40 +80,40 @@ QVariant UserListModel::data(const QModelIndex &index, int role) const
|
||||
return {};
|
||||
}
|
||||
auto memberId = m_members.at(index.row());
|
||||
if (role == DisplayNameRole) {
|
||||
return m_currentRoom->member(memberId).disambiguatedName();
|
||||
}
|
||||
if (role == UserIdRole) {
|
||||
return memberId;
|
||||
}
|
||||
if (role == AvatarRole) {
|
||||
return m_currentRoom->member(memberId).avatarUrl();
|
||||
}
|
||||
if (role == ObjectRole) {
|
||||
return QVariant::fromValue(memberId);
|
||||
}
|
||||
if (role == PowerLevelRole) {
|
||||
auto plEvent = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
|
||||
if (!plEvent) {
|
||||
return 0;
|
||||
}
|
||||
return plEvent->powerLevelForUser(memberId);
|
||||
}
|
||||
if (role == PowerLevelStringRole) {
|
||||
auto pl = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
|
||||
// User might not in the room yet, in this case pl can be nullptr.
|
||||
// e.g. When invited but user not accepted or denied the invitation.
|
||||
if (!pl) {
|
||||
return u"Not Available"_s;
|
||||
}
|
||||
|
||||
auto userPl = pl->powerLevelForUser(memberId);
|
||||
|
||||
return i18nc("%1 is the name of the power level, e.g. admin and %2 is the value that represents.",
|
||||
"%1 (%2)",
|
||||
PowerLevel::nameForLevel(PowerLevel::levelForValue(userPl)),
|
||||
userPl);
|
||||
}
|
||||
// if (role == DisplayNameRole) {
|
||||
// return m_currentRoom->member(memberId).disambiguatedName();
|
||||
// }
|
||||
// if (role == UserIdRole) {
|
||||
// return memberId;
|
||||
// }
|
||||
// if (role == AvatarRole) {
|
||||
// return m_currentRoom->member(memberId).avatarUrl();
|
||||
// }
|
||||
// if (role == ObjectRole) {
|
||||
// return QVariant::fromValue(memberId);
|
||||
// }
|
||||
// if (role == PowerLevelRole) {
|
||||
// auto plEvent = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
|
||||
// if (!plEvent) {
|
||||
// return 0;
|
||||
// }
|
||||
// return plEvent->powerLevelForUser(memberId);
|
||||
// }
|
||||
// if (role == PowerLevelStringRole) {
|
||||
// auto pl = m_currentRoom->currentState().get<RoomPowerLevelsEvent>();
|
||||
// // User might not in the room yet, in this case pl can be nullptr.
|
||||
// // e.g. When invited but user not accepted or denied the invitation.
|
||||
// if (!pl) {
|
||||
// return u"Not Available"_s;
|
||||
// }
|
||||
//
|
||||
// auto userPl = pl->powerLevelForUser(memberId);
|
||||
//
|
||||
// return i18nc("%1 is the name of the power level, e.g. admin and %2 is the value that represents.",
|
||||
// "%1 (%2)",
|
||||
// PowerLevel::nameForLevel(PowerLevel::levelForValue(userPl)),
|
||||
// userPl);
|
||||
// }
|
||||
|
||||
return {};
|
||||
}
|
||||
@@ -134,65 +134,65 @@ bool UserListModel::event(QEvent *event)
|
||||
return QObject::event(event);
|
||||
}
|
||||
|
||||
void UserListModel::memberJoined(const Quotient::RoomMember &member)
|
||||
{
|
||||
auto pos = findUserPos(member);
|
||||
beginInsertRows(QModelIndex(), pos, pos);
|
||||
m_members.insert(pos, member.id());
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
void UserListModel::memberLeft(const Quotient::RoomMember &member)
|
||||
{
|
||||
auto pos = findUserPos(member);
|
||||
if (pos != m_members.size()) {
|
||||
beginRemoveRows(QModelIndex(), pos, pos);
|
||||
m_members.removeAt(pos);
|
||||
endRemoveRows();
|
||||
} else {
|
||||
qWarning() << "Trying to remove a room member not in the user list";
|
||||
}
|
||||
}
|
||||
|
||||
void UserListModel::refreshMember(const Quotient::RoomMember &member, const QList<int> &roles)
|
||||
{
|
||||
auto pos = findUserPos(member);
|
||||
if (pos != m_members.size()) {
|
||||
// The update will have changed the state event so we need to insert the updated member object.
|
||||
m_members.insert(pos, member.id());
|
||||
Q_EMIT dataChanged(index(pos), index(pos), roles);
|
||||
} else {
|
||||
qWarning() << "Trying to access a room member not in the user list";
|
||||
}
|
||||
}
|
||||
// void UserListModel::memberJoined(const Quotient::RoomMember &member)
|
||||
// {
|
||||
// auto pos = findUserPos(member);
|
||||
// beginInsertRows(QModelIndex(), pos, pos);
|
||||
// m_members.insert(pos, member.id());
|
||||
// endInsertRows();
|
||||
// }
|
||||
//
|
||||
// void UserListModel::memberLeft(const Quotient::RoomMember &member)
|
||||
// {
|
||||
// auto pos = findUserPos(member);
|
||||
// if (pos != m_members.size()) {
|
||||
// beginRemoveRows(QModelIndex(), pos, pos);
|
||||
// m_members.removeAt(pos);
|
||||
// endRemoveRows();
|
||||
// } else {
|
||||
// qWarning() << "Trying to remove a room member not in the user list";
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// void UserListModel::refreshMember(const Quotient::RoomMember &member, const QList<int> &roles)
|
||||
// {
|
||||
// auto pos = findUserPos(member);
|
||||
// if (pos != m_members.size()) {
|
||||
// // The update will have changed the state event so we need to insert the updated member object.
|
||||
// m_members.insert(pos, member.id());
|
||||
// Q_EMIT dataChanged(index(pos), index(pos), roles);
|
||||
// } else {
|
||||
// qWarning() << "Trying to access a room member not in the user list";
|
||||
// }
|
||||
// }
|
||||
|
||||
void UserListModel::refreshAllMembers()
|
||||
{
|
||||
beginResetModel();
|
||||
|
||||
if (m_currentRoom != nullptr) {
|
||||
m_members = m_currentRoom->joinedMemberIds();
|
||||
MemberSorter sorter;
|
||||
std::sort(m_members.begin(), m_members.end(), [&sorter, this](const auto &left, const auto &right) {
|
||||
const auto leftPl = m_currentRoom->memberEffectivePowerLevel(left);
|
||||
const auto rightPl = m_currentRoom->memberEffectivePowerLevel(right);
|
||||
if (leftPl > rightPl) {
|
||||
return true;
|
||||
} else if (rightPl > leftPl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return sorter(m_currentRoom->member(left), m_currentRoom->member(right));
|
||||
});
|
||||
// m_members = m_currentRoom->joinedMemberIds();
|
||||
// MemberSorter sorter;
|
||||
// std::sort(m_members.begin(), m_members.end(), [&sorter, this](const auto &left, const auto &right) {
|
||||
// const auto leftPl = m_currentRoom->memberEffectivePowerLevel(left);
|
||||
// const auto rightPl = m_currentRoom->memberEffectivePowerLevel(right);
|
||||
// if (leftPl > rightPl) {
|
||||
// return true;
|
||||
// } else if (rightPl > leftPl) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// return sorter(m_currentRoom->member(left), m_currentRoom->member(right));
|
||||
// });
|
||||
}
|
||||
endResetModel();
|
||||
Q_EMIT usersRefreshed();
|
||||
}
|
||||
|
||||
int UserListModel::findUserPos(const RoomMember &member) const
|
||||
{
|
||||
return findUserPos(member.id());
|
||||
}
|
||||
// int UserListModel::findUserPos(const RoomMember &member) const
|
||||
// {
|
||||
// return findUserPos(member.id());
|
||||
// }
|
||||
|
||||
int UserListModel::findUserPos(const QString &userId) const
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Quotient/room.h>
|
||||
#include <Integral/Room>
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QObject>
|
||||
@@ -87,9 +87,9 @@ protected:
|
||||
bool event(QEvent *event) override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void memberJoined(const Quotient::RoomMember &member);
|
||||
void memberLeft(const Quotient::RoomMember &member);
|
||||
void refreshMember(const Quotient::RoomMember &member, const QList<int> &roles = {});
|
||||
// void memberJoined(const Quotient::RoomMember &member);
|
||||
// void memberLeft(const Quotient::RoomMember &member);
|
||||
// void refreshMember(const Quotient::RoomMember &member, const QList<int> &roles = {});
|
||||
void refreshAllMembers();
|
||||
|
||||
private:
|
||||
@@ -98,6 +98,6 @@ private:
|
||||
|
||||
bool m_active = false;
|
||||
|
||||
int findUserPos(const Quotient::RoomMember &member) const;
|
||||
// int findUserPos(const Quotient::RoomMember &member) const;
|
||||
[[nodiscard]] int findUserPos(const QString &username) const;
|
||||
};
|
||||
|
||||
@@ -6,149 +6,142 @@
|
||||
#include <QImageReader>
|
||||
#include <QJsonDocument>
|
||||
|
||||
#include "neochatconfig.h"
|
||||
#include "neochatroom.h"
|
||||
#include "spacehierarchycache.h"
|
||||
// #include "neochatconfig.h"
|
||||
// #include "neochatroom.h"
|
||||
// #include "spacehierarchycache.h"
|
||||
|
||||
#include <Quotient/jobs/basejob.h>
|
||||
#include <Quotient/quotient_common.h>
|
||||
// #include <Quotient/jobs/basejob.h>
|
||||
// #include <Quotient/quotient_common.h>
|
||||
#include <qt6keychain/keychain.h>
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <Quotient/csapi/content-repo.h>
|
||||
#include <Quotient/csapi/profile.h>
|
||||
#include <Quotient/csapi/registration.h>
|
||||
#include <Quotient/csapi/versions.h>
|
||||
#include <Quotient/jobs/downloadfilejob.h>
|
||||
#include <Quotient/qt_connection_util.h>
|
||||
#include <Quotient/room.h>
|
||||
#include <Quotient/settings.h>
|
||||
#include <Quotient/user.h>
|
||||
// #include <Quotient/csapi/content-repo.h>
|
||||
// #include <Quotient/csapi/profile.h>
|
||||
// #include <Quotient/csapi/registration.h>
|
||||
// #include <Quotient/csapi/versions.h>
|
||||
// #include <Quotient/jobs/downloadfilejob.h>
|
||||
// #include <Quotient/qt_connection_util.h>
|
||||
// #include <Quotient/room.h>
|
||||
// #include <Quotient/settings.h>
|
||||
// #include <Quotient/user.h>
|
||||
|
||||
#ifdef HAVE_KUNIFIEDPUSH
|
||||
#include <QCoroNetwork>
|
||||
#include <Quotient/csapi/pusher.h>
|
||||
#include <Quotient/networkaccessmanager.h>
|
||||
#endif
|
||||
// #ifdef HAVE_KUNIFIEDPUSH
|
||||
// #include <QCoroNetwork>
|
||||
// #include <Quotient/csapi/pusher.h>
|
||||
// #include <Quotient/networkaccessmanager.h>
|
||||
// #endif
|
||||
|
||||
using namespace Quotient;
|
||||
#include <Integral/Connection_p>
|
||||
|
||||
using namespace Integral;
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
NeoChatConnection::NeoChatConnection(QObject *parent)
|
||||
: Connection(parent)
|
||||
, m_threePIdModel(new ThreePIdModel(this))
|
||||
NeoChatConnection::NeoChatConnection(std::unique_ptr<Connection::Private> d)
|
||||
: Connection(std::move(d))
|
||||
{
|
||||
m_linkPreviewers.setMaxCost(20);
|
||||
connectSignals();
|
||||
}
|
||||
|
||||
NeoChatConnection::NeoChatConnection(const QUrl &server, QObject *parent)
|
||||
: Connection(server, parent)
|
||||
, m_threePIdModel(new ThreePIdModel(this))
|
||||
{
|
||||
m_linkPreviewers.setMaxCost(20);
|
||||
// m_linkPreviewers.setMaxCost(20);
|
||||
connectSignals();
|
||||
}
|
||||
|
||||
void NeoChatConnection::connectSignals()
|
||||
{
|
||||
connect(this, &NeoChatConnection::accountDataChanged, this, [this](const QString &type) {
|
||||
if (type == u"org.kde.neochat.account_label"_s) {
|
||||
Q_EMIT labelChanged();
|
||||
}
|
||||
if (type == u"m.identity_server"_s) {
|
||||
Q_EMIT identityServerChanged();
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::syncDone, this, [this] {
|
||||
setIsOnline(true);
|
||||
});
|
||||
connect(this, &NeoChatConnection::networkError, this, [this]() {
|
||||
setIsOnline(false);
|
||||
});
|
||||
connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
|
||||
if (job->error() == BaseJob::UserConsentRequired) {
|
||||
Q_EMIT userConsentRequired(job->errorUrl());
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
|
||||
if (dynamic_cast<DownloadFileJob *>(job) && job->jsonData()["errcode"_L1].toString() == "M_TOO_LARGE"_L1) {
|
||||
Q_EMIT showMessage(MessageType::Warning, i18n("File too large to download.<br />Contact your matrix server administrator for support."));
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::directChatsListChanged, this, [this](DirectChatsMap additions, DirectChatsMap removals) {
|
||||
Q_EMIT directChatInvitesChanged();
|
||||
for (const auto &chatId : additions) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
connect(chat, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
});
|
||||
}
|
||||
}
|
||||
for (const auto &chatId : removals) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
|
||||
}
|
||||
}
|
||||
});
|
||||
connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
||||
if (room->isDirectChat()) {
|
||||
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
});
|
||||
}
|
||||
connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
});
|
||||
});
|
||||
connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
||||
Q_UNUSED(room)
|
||||
if (prev && prev->isDirectChat()) {
|
||||
Q_EMIT directChatInvitesChanged();
|
||||
Q_EMIT directChatNotificationsChanged();
|
||||
Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
}
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
});
|
||||
|
||||
connect(&SpaceHierarchyCache::instance(), &SpaceHierarchyCache::spaceHierarchyChanged, this, [this]() {
|
||||
refreshBadgeNotificationCount();
|
||||
Q_EMIT homeNotificationsChanged();
|
||||
Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
});
|
||||
|
||||
// Fetch unstable features
|
||||
// TODO: Expose unstableFeatures() in libQuotient
|
||||
connect(
|
||||
this,
|
||||
&Connection::connected,
|
||||
this,
|
||||
[this] {
|
||||
auto job = callApi<GetVersionsJob>(BackgroundRequest);
|
||||
connect(job, &GetVersionsJob::success, this, [this, job] {
|
||||
m_canCheckMutualRooms = job->unstableFeatures().contains("uk.half-shot.msc2666.query_mutual_rooms"_L1);
|
||||
Q_EMIT canCheckMutualRoomsChanged();
|
||||
m_canEraseData = job->unstableFeatures().contains("org.matrix.msc4025"_L1) || job->versions().count("v1.10"_L1);
|
||||
Q_EMIT canEraseDataChanged();
|
||||
});
|
||||
},
|
||||
Qt::SingleShotConnection);
|
||||
setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::PreferUsingEncryptionChanged, this, [] {
|
||||
setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
|
||||
});
|
||||
setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
|
||||
connect(NeoChatConfig::self(), &NeoChatConfig::ShowLinkPreviewChanged, this, [this]() {
|
||||
setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
|
||||
});
|
||||
// connect(this, &NeoChatConnection::accountDataChanged, this, [this](const QString &type) {
|
||||
// if (type == u"org.kde.neochat.account_label"_s) {
|
||||
// Q_EMIT labelChanged();
|
||||
// }
|
||||
// if (type == u"m.identity_server"_s) {
|
||||
// Q_EMIT identityServerChanged();
|
||||
// }
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::syncDone, this, [this] {
|
||||
// setIsOnline(true);
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::networkError, this, [this]() {
|
||||
// setIsOnline(false);
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
|
||||
// if (job->error() == BaseJob::UserConsentRequired) {
|
||||
// Q_EMIT userConsentRequired(job->errorUrl());
|
||||
// }
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::requestFailed, this, [this](BaseJob *job) {
|
||||
// if (dynamic_cast<DownloadFileJob *>(job) && job->jsonData()["errcode"_L1].toString() == "M_TOO_LARGE"_L1) {
|
||||
// Q_EMIT showMessage(MessageType::Warning, i18n("File too large to download.<br />Contact your matrix server administrator for support."));
|
||||
// }
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::directChatsListChanged, this, [this](DirectChatsMap additions, DirectChatsMap removals) {
|
||||
// Q_EMIT directChatInvitesChanged();
|
||||
// for (const auto &chatId : additions) {
|
||||
// if (const auto chat = room(chatId)) {
|
||||
// connect(chat, &Room::unreadStatsChanged, this, [this]() {
|
||||
// refreshBadgeNotificationCount();
|
||||
// Q_EMIT directChatNotificationsChanged();
|
||||
// Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// for (const auto &chatId : removals) {
|
||||
// if (const auto chat = room(chatId)) {
|
||||
// disconnect(chat, &Room::unreadStatsChanged, this, nullptr);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::joinedRoom, this, [this](Room *room) {
|
||||
// if (room->isDirectChat()) {
|
||||
// connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
// Q_EMIT directChatNotificationsChanged();
|
||||
// Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
// });
|
||||
// }
|
||||
// connect(room, &Room::unreadStatsChanged, this, [this]() {
|
||||
// refreshBadgeNotificationCount();
|
||||
// Q_EMIT homeNotificationsChanged();
|
||||
// Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
// });
|
||||
// });
|
||||
// connect(this, &NeoChatConnection::leftRoom, this, [this](Room *room, Room *prev) {
|
||||
// Q_UNUSED(room)
|
||||
// if (prev && prev->isDirectChat()) {
|
||||
// Q_EMIT directChatInvitesChanged();
|
||||
// Q_EMIT directChatNotificationsChanged();
|
||||
// Q_EMIT directChatsHaveHighlightNotificationsChanged();
|
||||
// }
|
||||
// refreshBadgeNotificationCount();
|
||||
// Q_EMIT homeNotificationsChanged();
|
||||
// Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
// });
|
||||
//
|
||||
// connect(&SpaceHierarchyCache::instance(), &SpaceHierarchyCache::spaceHierarchyChanged, this, [this]() {
|
||||
// refreshBadgeNotificationCount();
|
||||
// Q_EMIT homeNotificationsChanged();
|
||||
// Q_EMIT homeHaveHighlightNotificationsChanged();
|
||||
// });
|
||||
//
|
||||
// // Fetch unstable features
|
||||
// // TODO: Expose unstableFeatures() in libQuotient
|
||||
// connect(
|
||||
// this,
|
||||
// &Connection::connected,
|
||||
// this,
|
||||
// [this] {
|
||||
// auto job = callApi<GetVersionsJob>(BackgroundRequest);
|
||||
// connect(job, &GetVersionsJob::success, this, [this, job] {
|
||||
// m_canCheckMutualRooms = job->unstableFeatures().contains("uk.half-shot.msc2666.query_mutual_rooms"_L1);
|
||||
// Q_EMIT canCheckMutualRoomsChanged();
|
||||
// m_canEraseData = job->unstableFeatures().contains("org.matrix.msc4025"_L1) || job->versions().count("v1.10"_L1);
|
||||
// Q_EMIT canEraseDataChanged();
|
||||
// });
|
||||
// },
|
||||
// Qt::SingleShotConnection);
|
||||
// setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
|
||||
// connect(NeoChatConfig::self(), &NeoChatConfig::PreferUsingEncryptionChanged, this, [] {
|
||||
// setDirectChatEncryptionDefault(NeoChatConfig::preferUsingEncryption());
|
||||
// });
|
||||
// setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
|
||||
// connect(NeoChatConfig::self(), &NeoChatConfig::ShowLinkPreviewChanged, this, [this]() {
|
||||
// setGlobalUrlPreviewEnabled(NeoChatConfig::showLinkPreview());
|
||||
// });
|
||||
}
|
||||
|
||||
int NeoChatConnection::badgeNotificationCount() const
|
||||
@@ -159,11 +152,11 @@ int NeoChatConnection::badgeNotificationCount() const
|
||||
void NeoChatConnection::refreshBadgeNotificationCount()
|
||||
{
|
||||
int count = 0;
|
||||
for (const auto &r : allRooms()) {
|
||||
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
count += room->contextAwareNotificationCount();
|
||||
}
|
||||
}
|
||||
// for (const auto &r : allRooms()) {
|
||||
// if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
// count += room->contextAwareNotificationCount();
|
||||
// }
|
||||
// }
|
||||
|
||||
if (count != m_badgeNotificationCount) {
|
||||
m_badgeNotificationCount = count;
|
||||
@@ -184,56 +177,58 @@ void NeoChatConnection::setGlobalUrlPreviewEnabled(bool newState)
|
||||
|
||||
m_globalUrlPreviewEnabled = newState;
|
||||
if (!m_globalUrlPreviewEnabled) {
|
||||
m_linkPreviewers.clear();
|
||||
// m_linkPreviewers.clear();
|
||||
}
|
||||
NeoChatConfig::setShowLinkPreview(m_globalUrlPreviewEnabled);
|
||||
// NeoChatConfig::setShowLinkPreview(m_globalUrlPreviewEnabled);
|
||||
Q_EMIT globalUrlPreviewEnabledChanged();
|
||||
}
|
||||
|
||||
void NeoChatConnection::logout(bool serverSideLogout)
|
||||
{
|
||||
SettingsGroup(u"Accounts"_s).remove(userId());
|
||||
|
||||
QKeychain::DeletePasswordJob job(qAppName());
|
||||
job.setAutoDelete(true);
|
||||
job.setKey(userId());
|
||||
QEventLoop loop;
|
||||
QKeychain::DeletePasswordJob::connect(&job, &QKeychain::Job::finished, &loop, &QEventLoop::quit);
|
||||
job.start();
|
||||
loop.exec();
|
||||
|
||||
if (!serverSideLogout) {
|
||||
return;
|
||||
}
|
||||
Connection::logout();
|
||||
// SettingsGroup(u"Accounts"_s).remove(userId());
|
||||
//
|
||||
// QKeychain::DeletePasswordJob job(qAppName());
|
||||
// job.setAutoDelete(true);
|
||||
// job.setKey(userId());
|
||||
// QEventLoop loop;
|
||||
// QKeychain::DeletePasswordJob::connect(&job, &QKeychain::Job::finished, &loop, &QEventLoop::quit);
|
||||
// job.start();
|
||||
// loop.exec();
|
||||
//
|
||||
// if (!serverSideLogout) {
|
||||
// return;
|
||||
// }
|
||||
// Connection::logout();
|
||||
}
|
||||
|
||||
bool NeoChatConnection::setAvatar(const QUrl &avatarSource)
|
||||
{
|
||||
QString decoded = avatarSource.path();
|
||||
if (decoded.isEmpty()) {
|
||||
callApi<SetAvatarUrlJob>(user()->id(), avatarSource);
|
||||
return true;
|
||||
}
|
||||
if (QImageReader(decoded).read().isNull()) {
|
||||
return false;
|
||||
} else {
|
||||
return user()->setAvatar(decoded);
|
||||
}
|
||||
// QString decoded = avatarSource.path();
|
||||
// if (decoded.isEmpty()) {
|
||||
// callApi<SetAvatarUrlJob>(user()->id(), avatarSource);
|
||||
// return true;
|
||||
// }
|
||||
// if (QImageReader(decoded).read().isNull()) {
|
||||
// return false;
|
||||
// } else {
|
||||
// return user()->setAvatar(decoded);
|
||||
// }
|
||||
return {};
|
||||
}
|
||||
|
||||
QVariantList NeoChatConnection::getSupportedRoomVersions() const
|
||||
{
|
||||
const auto &roomVersions = availableRoomVersions();
|
||||
QVariantList supportedRoomVersions;
|
||||
for (const auto &v : roomVersions) {
|
||||
QVariantMap roomVersionMap;
|
||||
roomVersionMap.insert("id"_L1, v.id);
|
||||
roomVersionMap.insert("status"_L1, v.status);
|
||||
roomVersionMap.insert("isStable"_L1, v.isStable());
|
||||
supportedRoomVersions.append(roomVersionMap);
|
||||
}
|
||||
return supportedRoomVersions;
|
||||
// const auto &roomVersions = availableRoomVersions();
|
||||
// QVariantList supportedRoomVersions;
|
||||
// for (const auto &v : roomVersions) {
|
||||
// QVariantMap roomVersionMap;
|
||||
// roomVersionMap.insert("id"_L1, v.id);
|
||||
// roomVersionMap.insert("status"_L1, v.status);
|
||||
// roomVersionMap.insert("isStable"_L1, v.isStable());
|
||||
// supportedRoomVersions.append(roomVersionMap);
|
||||
// }
|
||||
// return supportedRoomVersions;
|
||||
return {};
|
||||
}
|
||||
|
||||
bool NeoChatConnection::canCheckMutualRooms() const
|
||||
@@ -243,90 +238,86 @@ bool NeoChatConnection::canCheckMutualRooms() const
|
||||
|
||||
void NeoChatConnection::changePassword(const QString ¤tPassword, const QString &newPassword)
|
||||
{
|
||||
auto job = callApi<ChangePasswordJob>(newPassword, false);
|
||||
connect(job, &BaseJob::result, this, [this, job, currentPassword, newPassword] {
|
||||
if (job->error() == 103) {
|
||||
QJsonObject replyData = job->jsonData();
|
||||
AuthenticationData authData;
|
||||
authData.session = replyData["session"_L1].toString();
|
||||
authData.type = "m.login.password"_L1;
|
||||
authData.authInfo["password"_L1] = currentPassword;
|
||||
authData.authInfo["user"_L1] = user()->id();
|
||||
authData.authInfo["identifier"_L1] = QJsonObject{{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
|
||||
auto innerJob = callApi<ChangePasswordJob>(newPassword, false, authData);
|
||||
connect(innerJob, &BaseJob::success, this, [this]() {
|
||||
Q_EMIT passwordStatus(PasswordStatus::Success);
|
||||
});
|
||||
connect(innerJob, &BaseJob::failure, this, [innerJob, this]() {
|
||||
Q_EMIT passwordStatus(innerJob->jsonData()["errcode"_L1] == "M_FORBIDDEN"_L1 ? PasswordStatus::Wrong : PasswordStatus::Other);
|
||||
});
|
||||
}
|
||||
});
|
||||
// auto job = callApi<ChangePasswordJob>(newPassword, false);
|
||||
// connect(job, &BaseJob::result, this, [this, job, currentPassword, newPassword] {
|
||||
// if (job->error() == 103) {
|
||||
// QJsonObject replyData = job->jsonData();
|
||||
// AuthenticationData authData;
|
||||
// authData.session = replyData["session"_L1].toString();
|
||||
// authData.type = "m.login.password"_L1;
|
||||
// authData.authInfo["password"_L1] = currentPassword;
|
||||
// authData.authInfo["user"_L1] = user()->id();
|
||||
// authData.authInfo["identifier"_L1] = QJsonObject{{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
|
||||
// auto innerJob = callApi<ChangePasswordJob>(newPassword, false, authData);
|
||||
// connect(innerJob, &BaseJob::success, this, [this]() {
|
||||
// Q_EMIT passwordStatus(PasswordStatus::Success);
|
||||
// });
|
||||
// connect(innerJob, &BaseJob::failure, this, [innerJob, this]() {
|
||||
// Q_EMIT passwordStatus(innerJob->jsonData()["errcode"_L1] == "M_FORBIDDEN"_L1 ? PasswordStatus::Wrong : PasswordStatus::Other);
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
void NeoChatConnection::setLabel(const QString &label)
|
||||
{
|
||||
QJsonObject json{
|
||||
{"account_label"_L1, label},
|
||||
};
|
||||
setAccountData("org.kde.neochat.account_label"_L1, json);
|
||||
Q_EMIT labelChanged();
|
||||
// QJsonObject json{
|
||||
// {"account_label"_L1, label},
|
||||
// };
|
||||
// setAccountData("org.kde.neochat.account_label"_L1, json);
|
||||
// Q_EMIT labelChanged();
|
||||
}
|
||||
|
||||
QString NeoChatConnection::label() const
|
||||
{
|
||||
return accountDataJson("org.kde.neochat.account_label"_L1)["account_label"_L1].toString();
|
||||
// return accountDataJson("org.kde.neochat.account_label"_L1)["account_label"_L1].toString();
|
||||
return {};
|
||||
}
|
||||
|
||||
void NeoChatConnection::deactivateAccount(const QString &password, const bool erase)
|
||||
{
|
||||
auto job = callApi<DeactivateAccountJob>();
|
||||
connect(job, &BaseJob::result, this, [this, job, password, erase] {
|
||||
if (job->error() == 103) {
|
||||
QJsonObject replyData = job->jsonData();
|
||||
AuthenticationData authData;
|
||||
authData.session = replyData["session"_L1].toString();
|
||||
authData.authInfo["password"_L1] = password;
|
||||
authData.type = "m.login.password"_L1;
|
||||
authData.authInfo["user"_L1] = user()->id();
|
||||
QJsonObject identifier = {{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
|
||||
authData.authInfo["identifier"_L1] = identifier;
|
||||
auto innerJob = callApi<DeactivateAccountJob>(authData, QString{}, erase);
|
||||
connect(innerJob, &BaseJob::success, this, [this]() {
|
||||
logout(false);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ThreePIdModel *NeoChatConnection::threePIdModel() const
|
||||
{
|
||||
return m_threePIdModel;
|
||||
// auto job = callApi<DeactivateAccountJob>();
|
||||
// connect(job, &BaseJob::result, this, [this, job, password, erase] {
|
||||
// if (job->error() == 103) {
|
||||
// QJsonObject replyData = job->jsonData();
|
||||
// AuthenticationData authData;
|
||||
// authData.session = replyData["session"_L1].toString();
|
||||
// authData.authInfo["password"_L1] = password;
|
||||
// authData.type = "m.login.password"_L1;
|
||||
// authData.authInfo["user"_L1] = user()->id();
|
||||
// QJsonObject identifier = {{"type"_L1, "m.id.user"_L1}, {"user"_L1, user()->id()}};
|
||||
// authData.authInfo["identifier"_L1] = identifier;
|
||||
// auto innerJob = callApi<DeactivateAccountJob>(authData, QString{}, erase);
|
||||
// connect(innerJob, &BaseJob::success, this, [this]() {
|
||||
// logout(false);
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
bool NeoChatConnection::hasIdentityServer() const
|
||||
{
|
||||
if (!hasAccountData(u"m.identity_server"_s)) {
|
||||
return false;
|
||||
}
|
||||
// if (!hasAccountData(u"m.identity_server"_s)) {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
|
||||
if (!url.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
// const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
|
||||
// if (!url.isEmpty()) {
|
||||
// return true;
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
|
||||
QUrl NeoChatConnection::identityServer() const
|
||||
{
|
||||
if (!hasAccountData(u"m.identity_server"_s)) {
|
||||
return {};
|
||||
}
|
||||
// if (!hasAccountData(u"m.identity_server"_s)) {
|
||||
// return {};
|
||||
// }
|
||||
|
||||
const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
|
||||
if (!url.isEmpty()) {
|
||||
return url;
|
||||
}
|
||||
// const auto url = accountData(u"m.identity_server"_s)->contentPart<QUrl>("base_url"_L1);
|
||||
// if (!url.isEmpty()) {
|
||||
// return url;
|
||||
// }
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -341,92 +332,93 @@ QString NeoChatConnection::identityServerUIString() const
|
||||
|
||||
void NeoChatConnection::createRoom(const QString &name, const QString &topic, const QString &parent, bool setChildParent)
|
||||
{
|
||||
QList<CreateRoomJob::StateEvent> initialStateEvents;
|
||||
if (!parent.isEmpty()) {
|
||||
initialStateEvents.append(CreateRoomJob::StateEvent{
|
||||
"m.space.parent"_L1,
|
||||
QJsonObject{
|
||||
{"canonical"_L1, true},
|
||||
{"via"_L1, QJsonArray{domain()}},
|
||||
},
|
||||
parent,
|
||||
});
|
||||
}
|
||||
|
||||
const auto job = Connection::createRoom(Connection::PublishRoom, QString(), name, topic, QStringList(), {}, {}, {}, initialStateEvents);
|
||||
if (!parent.isEmpty()) {
|
||||
connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
|
||||
if (setChildParent) {
|
||||
if (auto parentRoom = room(parent)) {
|
||||
parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
connect(job, &CreateRoomJob::failure, this, [this, job] {
|
||||
Q_EMIT errorOccured(i18n("Room creation failed: %1", job->errorString()));
|
||||
});
|
||||
// QList<CreateRoomJob::StateEvent> initialStateEvents;
|
||||
// if (!parent.isEmpty()) {
|
||||
// initialStateEvents.append(CreateRoomJob::StateEvent{
|
||||
// "m.space.parent"_L1,
|
||||
// QJsonObject{
|
||||
// {"canonical"_L1, true},
|
||||
// {"via"_L1, QJsonArray{domain()}},
|
||||
// },
|
||||
// parent,
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// const auto job = Connection::createRoom(Connection::PublishRoom, QString(), name, topic, QStringList(), {}, {}, {}, initialStateEvents);
|
||||
// if (!parent.isEmpty()) {
|
||||
// connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
|
||||
// if (setChildParent) {
|
||||
// if (auto parentRoom = room(parent)) {
|
||||
// parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// connect(job, &CreateRoomJob::failure, this, [this, job] {
|
||||
// Q_EMIT errorOccured(i18n("Room creation failed: %1", job->errorString()));
|
||||
// });
|
||||
}
|
||||
|
||||
void NeoChatConnection::createSpace(const QString &name, const QString &topic, const QString &parent, bool setChildParent)
|
||||
{
|
||||
QList<CreateRoomJob::StateEvent> initialStateEvents;
|
||||
if (!parent.isEmpty()) {
|
||||
initialStateEvents.append(CreateRoomJob::StateEvent{
|
||||
"m.space.parent"_L1,
|
||||
QJsonObject{
|
||||
{"canonical"_L1, true},
|
||||
{"via"_L1, QJsonArray{domain()}},
|
||||
},
|
||||
parent,
|
||||
});
|
||||
}
|
||||
|
||||
const auto job =
|
||||
Connection::createRoom(Connection::UnpublishRoom, {}, name, topic, {}, {}, {}, false, initialStateEvents, {}, QJsonObject{{"type"_L1, "m.space"_L1}});
|
||||
if (!parent.isEmpty()) {
|
||||
connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
|
||||
if (setChildParent) {
|
||||
if (auto parentRoom = room(parent)) {
|
||||
parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
connect(job, &CreateRoomJob::failure, this, [this, job] {
|
||||
Q_EMIT errorOccured(i18n("Space creation failed: %1", job->errorString()));
|
||||
});
|
||||
// QList<CreateRoomJob::StateEvent> initialStateEvents;
|
||||
// if (!parent.isEmpty()) {
|
||||
// initialStateEvents.append(CreateRoomJob::StateEvent{
|
||||
// "m.space.parent"_L1,
|
||||
// QJsonObject{
|
||||
// {"canonical"_L1, true},
|
||||
// {"via"_L1, QJsonArray{domain()}},
|
||||
// },
|
||||
// parent,
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// const auto job =
|
||||
// Connection::createRoom(Connection::UnpublishRoom, {}, name, topic, {}, {}, {}, false, initialStateEvents, {}, QJsonObject{{"type"_L1,
|
||||
// "m.space"_L1}});
|
||||
// if (!parent.isEmpty()) {
|
||||
// connect(job, &Quotient::CreateRoomJob::success, this, [this, parent, setChildParent, job]() {
|
||||
// if (setChildParent) {
|
||||
// if (auto parentRoom = room(parent)) {
|
||||
// parentRoom->setState(u"m.space.child"_s, job->roomId(), QJsonObject{{"via"_L1, QJsonArray{domain()}}});
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// connect(job, &CreateRoomJob::failure, this, [this, job] {
|
||||
// Q_EMIT errorOccured(i18n("Space creation failed: %1", job->errorString()));
|
||||
// });
|
||||
}
|
||||
|
||||
bool NeoChatConnection::directChatExists(Quotient::User *user)
|
||||
{
|
||||
return directChats().contains(user);
|
||||
}
|
||||
// bool NeoChatConnection::directChatExists(Quotient::User *user)
|
||||
// {
|
||||
// return directChats().contains(user);
|
||||
// }
|
||||
|
||||
qsizetype NeoChatConnection::directChatNotifications() const
|
||||
{
|
||||
qsizetype notifications = 0;
|
||||
QStringList added; // The same ID can be in the list multiple times.
|
||||
for (const auto &chatId : directChats()) {
|
||||
if (!added.contains(chatId)) {
|
||||
if (const auto chat = room(chatId)) {
|
||||
notifications += dynamic_cast<NeoChatRoom *>(chat)->contextAwareNotificationCount();
|
||||
added += chatId;
|
||||
}
|
||||
}
|
||||
}
|
||||
// for (const auto &chatId : directChats()) {
|
||||
// if (!added.contains(chatId)) {
|
||||
// if (const auto chat = room(chatId)) {
|
||||
// notifications += dynamic_cast<NeoChatRoom *>(chat)->contextAwareNotificationCount();
|
||||
// added += chatId;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return notifications;
|
||||
}
|
||||
|
||||
bool NeoChatConnection::directChatsHaveHighlightNotifications() const
|
||||
{
|
||||
for (const auto &childId : directChats()) {
|
||||
if (const auto child = static_cast<NeoChatRoom *>(room(childId))) {
|
||||
if (child->highlightCount() > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// for (const auto &childId : directChats()) {
|
||||
// if (const auto child = static_cast<NeoChatRoom *>(room(childId))) {
|
||||
// if (child->highlightCount() > 0) {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -434,78 +426,78 @@ qsizetype NeoChatConnection::homeNotifications() const
|
||||
{
|
||||
qsizetype notifications = 0;
|
||||
QStringList added;
|
||||
const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
|
||||
for (const auto &r : allRooms()) {
|
||||
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
if (!added.contains(room->id()) && !room->isDirectChat() && !spaceHierarchyCache.isChild(room->id())) {
|
||||
notifications += dynamic_cast<NeoChatRoom *>(room)->contextAwareNotificationCount();
|
||||
added += room->id();
|
||||
}
|
||||
}
|
||||
}
|
||||
// const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
|
||||
// for (const auto &r : allRooms()) {
|
||||
// if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
// if (!added.contains(room->id()) && !room->isDirectChat() && !spaceHierarchyCache.isChild(room->id())) {
|
||||
// notifications += dynamic_cast<NeoChatRoom *>(room)->contextAwareNotificationCount();
|
||||
// added += room->id();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return notifications;
|
||||
}
|
||||
|
||||
bool NeoChatConnection::homeHaveHighlightNotifications() const
|
||||
{
|
||||
const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
|
||||
for (const auto &r : allRooms()) {
|
||||
if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
if (!room->isDirectChat() && !spaceHierarchyCache.isChild(room->id()) && room->highlightCount() > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// const auto &spaceHierarchyCache = SpaceHierarchyCache::instance();
|
||||
// for (const auto &r : allRooms()) {
|
||||
// if (const auto room = static_cast<NeoChatRoom *>(r)) {
|
||||
// if (!room->isDirectChat() && !spaceHierarchyCache.isChild(room->id()) && room->highlightCount() > 0) {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NeoChatConnection::directChatInvites() const
|
||||
{
|
||||
auto inviteRooms = rooms(JoinState::Invite);
|
||||
for (const auto inviteRoom : inviteRooms) {
|
||||
if (inviteRoom->isDirectChat()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// auto inviteRooms = rooms(JoinState::Invite);
|
||||
// for (const auto inviteRoom : inviteRooms) {
|
||||
// if (inviteRoom->isDirectChat()) {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
|
||||
QCoro::Task<void> NeoChatConnection::setupPushNotifications(QString endpoint)
|
||||
{
|
||||
#ifdef HAVE_KUNIFIEDPUSH
|
||||
QUrl gatewayEndpoint(endpoint);
|
||||
gatewayEndpoint.setPath(u"/_matrix/push/v1/notify"_s);
|
||||
|
||||
QNetworkRequest checkGateway(gatewayEndpoint);
|
||||
auto reply = co_await NetworkAccessManager::instance()->get(checkGateway);
|
||||
|
||||
// We want to check if this UnifiedPush server has a Matrix gateway
|
||||
// This is because Matrix does not natively support UnifiedPush
|
||||
const auto &replyJson = QJsonDocument::fromJson(reply->readAll()).object();
|
||||
|
||||
if (replyJson["unifiedpush"_L1]["gateway"_L1].toString() == u"matrix"_s) {
|
||||
callApi<PostPusherJob>(endpoint,
|
||||
u"http"_s,
|
||||
u"org.kde.neochat"_s,
|
||||
u"NeoChat"_s,
|
||||
deviceId(),
|
||||
QString(), // profileTag is intentionally left empty for now, it's optional
|
||||
u"en-US"_s,
|
||||
PostPusherJob::PusherData{QUrl::fromUserInput(gatewayEndpoint.toString()), u" "_s},
|
||||
false);
|
||||
|
||||
qInfo() << "Registered for push notifications";
|
||||
m_pushNotificationsEnabled = true;
|
||||
} else {
|
||||
qWarning() << "There's no gateway, not setting up push notifications.";
|
||||
m_pushNotificationsEnabled = false;
|
||||
}
|
||||
Q_EMIT enablePushNotificationsChanged();
|
||||
#else
|
||||
Q_UNUSED(endpoint)
|
||||
co_return;
|
||||
#endif
|
||||
}
|
||||
// QCoro::Task<void> NeoChatConnection::setupPushNotifications(QString endpoint)
|
||||
// {
|
||||
// #ifdef HAVE_KUNIFIEDPUSH
|
||||
// QUrl gatewayEndpoint(endpoint);
|
||||
// gatewayEndpoint.setPath(u"/_matrix/push/v1/notify"_s);
|
||||
//
|
||||
// QNetworkRequest checkGateway(gatewayEndpoint);
|
||||
// auto reply = co_await NetworkAccessManager::instance()->get(checkGateway);
|
||||
//
|
||||
// // We want to check if this UnifiedPush server has a Matrix gateway
|
||||
// // This is because Matrix does not natively support UnifiedPush
|
||||
// const auto &replyJson = QJsonDocument::fromJson(reply->readAll()).object();
|
||||
//
|
||||
// if (replyJson["unifiedpush"_L1]["gateway"_L1].toString() == u"matrix"_s) {
|
||||
// callApi<PostPusherJob>(endpoint,
|
||||
// u"http"_s,
|
||||
// u"org.kde.neochat"_s,
|
||||
// u"NeoChat"_s,
|
||||
// deviceId(),
|
||||
// QString(), // profileTag is intentionally left empty for now, it's optional
|
||||
// u"en-US"_s,
|
||||
// PostPusherJob::PusherData{QUrl::fromUserInput(gatewayEndpoint.toString()), u" "_s},
|
||||
// false);
|
||||
//
|
||||
// qInfo() << "Registered for push notifications";
|
||||
// m_pushNotificationsEnabled = true;
|
||||
// } else {
|
||||
// qWarning() << "There's no gateway, not setting up push notifications.";
|
||||
// m_pushNotificationsEnabled = false;
|
||||
// }
|
||||
// Q_EMIT enablePushNotificationsChanged();
|
||||
// #else
|
||||
// Q_UNUSED(endpoint)
|
||||
// co_return;
|
||||
// #endif
|
||||
// }
|
||||
|
||||
bool NeoChatConnection::isOnline() const
|
||||
{
|
||||
@@ -523,39 +515,39 @@ void NeoChatConnection::setIsOnline(bool isOnline)
|
||||
|
||||
QString NeoChatConnection::accountDataJsonString(const QString &type) const
|
||||
{
|
||||
return QString::fromUtf8(QJsonDocument(accountDataJson(type)).toJson());
|
||||
return {}; // QString::fromUtf8(QJsonDocument(accountDataJson(type)).toJson());
|
||||
}
|
||||
|
||||
LinkPreviewer *NeoChatConnection::previewerForLink(const QUrl &link)
|
||||
{
|
||||
if (!m_globalUrlPreviewEnabled) {
|
||||
return nullptr;
|
||||
}
|
||||
// LinkPreviewer *NeoChatConnection::previewerForLink(const QUrl &link)
|
||||
// {
|
||||
// if (!m_globalUrlPreviewEnabled) {
|
||||
// return nullptr;
|
||||
// }
|
||||
//
|
||||
// auto previewer = m_linkPreviewers.object(link);
|
||||
// if (previewer != nullptr) {
|
||||
// return previewer;
|
||||
// }
|
||||
//
|
||||
// previewer = new LinkPreviewer(link, this);
|
||||
// m_linkPreviewers.insert(link, previewer);
|
||||
// return previewer;
|
||||
// }
|
||||
|
||||
auto previewer = m_linkPreviewers.object(link);
|
||||
if (previewer != nullptr) {
|
||||
return previewer;
|
||||
}
|
||||
|
||||
previewer = new LinkPreviewer(link, this);
|
||||
m_linkPreviewers.insert(link, previewer);
|
||||
return previewer;
|
||||
}
|
||||
|
||||
KeyImport::Error NeoChatConnection::exportMegolmSessions(const QString &passphrase, const QString &path)
|
||||
{
|
||||
KeyImport keyImport;
|
||||
auto result = keyImport.exportKeys(passphrase, this);
|
||||
if (!result.has_value()) {
|
||||
return result.error();
|
||||
}
|
||||
QUrl url(path);
|
||||
QFile file(url.toLocalFile());
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(result.value());
|
||||
file.close();
|
||||
return KeyImport::Success;
|
||||
}
|
||||
// KeyImport::Error NeoChatConnection::exportMegolmSessions(const QString &passphrase, const QString &path)
|
||||
// {
|
||||
// KeyImport keyImport;
|
||||
// auto result = keyImport.exportKeys(passphrase, this);
|
||||
// if (!result.has_value()) {
|
||||
// return result.error();
|
||||
// }
|
||||
// QUrl url(path);
|
||||
// QFile file(url.toLocalFile());
|
||||
// file.open(QFile::WriteOnly);
|
||||
// file.write(result.value());
|
||||
// file.close();
|
||||
// return KeyImport::Success;
|
||||
// }
|
||||
|
||||
bool NeoChatConnection::canEraseData() const
|
||||
{
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
#include <QObject>
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include <Integral/Connection>
|
||||
#include <QCoroTask>
|
||||
#include <Quotient/connection.h>
|
||||
|
||||
#include <Quotient/keyimport.h>
|
||||
// #include <Quotient/keyimport.h>
|
||||
|
||||
#include "enums/messagetype.h"
|
||||
#include "linkpreviewer.h"
|
||||
#include "models/threepidmodel.h"
|
||||
// #include "enums/messagetype.h"
|
||||
// #include "linkpreviewer.h"
|
||||
// #include "models/threepidmodel.h"
|
||||
|
||||
class NeoChatConnection : public Quotient::Connection
|
||||
class NeoChatConnection : public Integral::Connection
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
@@ -37,11 +37,6 @@ class NeoChatConnection : public Quotient::Connection
|
||||
*/
|
||||
Q_PROPERTY(bool globalUrlPreviewEnabled READ globalUrlPreviewEnabled WRITE setGlobalUrlPreviewEnabled NOTIFY globalUrlPreviewEnabledChanged)
|
||||
|
||||
/**
|
||||
* @brief The model with the account's 3PIDs.
|
||||
*/
|
||||
Q_PROPERTY(ThreePIdModel *threePIdModel READ threePIdModel CONSTANT)
|
||||
|
||||
/**
|
||||
* @brief Whether an identity server is configured.
|
||||
*/
|
||||
@@ -116,8 +111,7 @@ public:
|
||||
};
|
||||
Q_ENUM(PasswordStatus)
|
||||
|
||||
NeoChatConnection(QObject *parent = nullptr);
|
||||
NeoChatConnection(const QUrl &server, QObject *parent = nullptr);
|
||||
NeoChatConnection(std::unique_ptr<Integral::Connection::Private> d);
|
||||
|
||||
Q_INVOKABLE void logout(bool serverSideLogout);
|
||||
Q_INVOKABLE QVariantList getSupportedRoomVersions() const;
|
||||
@@ -144,8 +138,6 @@ public:
|
||||
|
||||
Q_INVOKABLE void deactivateAccount(const QString &password, bool erase);
|
||||
|
||||
ThreePIdModel *threePIdModel() const;
|
||||
|
||||
bool hasIdentityServer() const;
|
||||
|
||||
/**
|
||||
@@ -170,14 +162,14 @@ public:
|
||||
/**
|
||||
* @brief Whether a direct chat with the user exists.
|
||||
*/
|
||||
Q_INVOKABLE bool directChatExists(Quotient::User *user);
|
||||
// Q_INVOKABLE bool directChatExists(Quotient::User *user);
|
||||
|
||||
/**
|
||||
* @brief Get the account data with \param type as a formatted JSON string.
|
||||
*/
|
||||
Q_INVOKABLE QString accountDataJsonString(const QString &type) const;
|
||||
|
||||
Q_INVOKABLE Quotient::KeyImport::Error exportMegolmSessions(const QString &passphrase, const QString &path);
|
||||
// Q_INVOKABLE Quotient::KeyImport::Error exportMegolmSessions(const QString &passphrase, const QString &path);
|
||||
|
||||
qsizetype directChatNotifications() const;
|
||||
bool directChatsHaveHighlightNotifications() const;
|
||||
@@ -194,14 +186,14 @@ public:
|
||||
|
||||
// note: this is intentionally a copied QString because
|
||||
// the reference could be destroyed before the task is finished
|
||||
QCoro::Task<void> setupPushNotifications(QString endpoint);
|
||||
// QCoro::Task<void> setupPushNotifications(QString endpoint);
|
||||
|
||||
bool pushNotificationsAvailable() const;
|
||||
bool enablePushNotifications() const;
|
||||
|
||||
bool isOnline() const;
|
||||
|
||||
LinkPreviewer *previewerForLink(const QUrl &link);
|
||||
// LinkPreviewer *previewerForLink(const QUrl &link);
|
||||
|
||||
Q_SIGNALS:
|
||||
void globalUrlPreviewEnabledChanged();
|
||||
@@ -223,7 +215,7 @@ Q_SIGNALS:
|
||||
/**
|
||||
* @brief Request a message be shown to the user of the given type.
|
||||
*/
|
||||
void showMessage(MessageType::Type messageType, const QString &message);
|
||||
// void showMessage(MessageType::Type messageType, const QString &message);
|
||||
|
||||
/**
|
||||
* @brief Request a error message be shown to the user.
|
||||
@@ -234,14 +226,12 @@ private:
|
||||
bool m_isOnline = true;
|
||||
void setIsOnline(bool isOnline);
|
||||
|
||||
ThreePIdModel *m_threePIdModel;
|
||||
|
||||
void connectSignals();
|
||||
|
||||
int m_badgeNotificationCount = 0;
|
||||
bool m_globalUrlPreviewEnabled = true;
|
||||
|
||||
QCache<QUrl, LinkPreviewer> m_linkPreviewers;
|
||||
// QCache<QUrl, LinkPreviewer> m_linkPreviewers;
|
||||
|
||||
bool m_canCheckMutualRooms = false;
|
||||
bool m_canEraseData = false;
|
||||
|
||||
2258
src/neochatroom.cpp
2258
src/neochatroom.cpp
File diff suppressed because it is too large
Load Diff
@@ -3,8 +3,9 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Quotient/events/roomevent.h>
|
||||
#include <Quotient/room.h>
|
||||
// #include <Quotient/events/roomevent.h>
|
||||
// #include <Quotient/room.h>
|
||||
#include <Integral/Room>
|
||||
|
||||
#include <QCache>
|
||||
#include <QObject>
|
||||
@@ -13,12 +14,12 @@
|
||||
#include <QCoroTask>
|
||||
#include <Quotient/roommember.h>
|
||||
|
||||
#include "enums/messagetype.h"
|
||||
#include "enums/pushrule.h"
|
||||
#include "models/messagecontentmodel.h"
|
||||
#include "models/threadmodel.h"
|
||||
#include "neochatroommember.h"
|
||||
#include "pollhandler.h"
|
||||
// #include "enums/messagetype.h"
|
||||
// #include "models/messagecontentmodel.h"
|
||||
// #include "models/threadmodel.h"
|
||||
// #include "neochatroommember.h"
|
||||
// #include "pollhandler.h"
|
||||
|
||||
namespace Quotient
|
||||
{
|
||||
@@ -39,7 +40,7 @@ class ChatBarCache;
|
||||
*
|
||||
* @sa Quotient::Room
|
||||
*/
|
||||
class NeoChatRoom : public Quotient::Room
|
||||
class NeoChatRoom : public Integral::Room
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
@@ -79,7 +80,7 @@ class NeoChatRoom : public Quotient::Room
|
||||
/**
|
||||
* @brief Get a RoomMember object for the other person in a direct chat.
|
||||
*/
|
||||
Q_PROPERTY(NeochatRoomMember *directChatRemoteMember READ directChatRemoteMember CONSTANT)
|
||||
// Q_PROPERTY(NeochatRoomMember *directChatRemoteMember READ directChatRemoteMember CONSTANT)
|
||||
|
||||
/**
|
||||
* @brief The Matrix IDs of this room's parents.
|
||||
@@ -183,20 +184,20 @@ class NeoChatRoom : public Quotient::Room
|
||||
/**
|
||||
* @brief The cache for the main chat bar in the room.
|
||||
*/
|
||||
Q_PROPERTY(ChatBarCache *mainCache READ mainCache CONSTANT)
|
||||
// Q_PROPERTY(ChatBarCache *mainCache READ mainCache CONSTANT)
|
||||
|
||||
/**
|
||||
* @brief The cache for the edit chat bar in the room.
|
||||
*/
|
||||
Q_PROPERTY(ChatBarCache *editCache READ editCache CONSTANT)
|
||||
// Q_PROPERTY(ChatBarCache *editCache READ editCache CONSTANT)
|
||||
|
||||
/**
|
||||
* @brief The cache for the thread chat bar in the room.
|
||||
*/
|
||||
Q_PROPERTY(ChatBarCache *threadCache READ threadCache CONSTANT)
|
||||
// Q_PROPERTY(ChatBarCache *threadCache READ threadCache CONSTANT)
|
||||
|
||||
public:
|
||||
explicit NeoChatRoom(Quotient::Connection *connection, QString roomId, Quotient::JoinState joinState = {});
|
||||
explicit NeoChatRoom(std::unique_ptr<Private> d, QObject *parent = nullptr);
|
||||
|
||||
bool visible() const;
|
||||
void setVisible(bool visible);
|
||||
@@ -212,7 +213,7 @@ public:
|
||||
* @warning This function can return an empty pointer if the room does not have
|
||||
* any RoomMessageEvents loaded.
|
||||
*/
|
||||
[[nodiscard]] const Quotient::RoomEvent *lastEvent() const;
|
||||
// [[nodiscard]] const Quotient::RoomEvent *lastEvent() const;
|
||||
|
||||
/**
|
||||
* @brief Convenient way to check if the last event looks like it has spoilers.
|
||||
@@ -259,7 +260,7 @@ public:
|
||||
* An event is highlighted if it contains the local user's id but was not sent by the
|
||||
* local user.
|
||||
*/
|
||||
bool isEventHighlighted(const Quotient::RoomEvent *e) const;
|
||||
// bool isEventHighlighted(const Quotient::RoomEvent *e) const;
|
||||
|
||||
/**
|
||||
* @brief Convenience function to find out if the room contains the given user.
|
||||
@@ -312,7 +313,7 @@ public:
|
||||
|
||||
[[nodiscard]] QUrl avatarMediaUrl() const;
|
||||
|
||||
NeochatRoomMember *directChatRemoteMember();
|
||||
// NeochatRoomMember *directChatRemoteMember();
|
||||
|
||||
/**
|
||||
* @brief Whether this room has one or more parent spaces set.
|
||||
@@ -501,14 +502,14 @@ public:
|
||||
*
|
||||
* @sa PollHandler
|
||||
*/
|
||||
PollHandler *poll(const QString &eventId) const;
|
||||
// PollHandler *poll(const QString &eventId) const;
|
||||
|
||||
/**
|
||||
* @brief Create a PollHandler object for the given event.
|
||||
*
|
||||
* @sa PollHandler
|
||||
*/
|
||||
void createPollHandler(const Quotient::PollStartEvent *event);
|
||||
// void createPollHandler(const Quotient::PollStartEvent *event);
|
||||
|
||||
/**
|
||||
* @brief Get the full Json data for a given room account data event.
|
||||
@@ -533,12 +534,12 @@ public:
|
||||
*
|
||||
* The result will be nullptr if not found so needs to be managed.
|
||||
*/
|
||||
std::pair<const Quotient::RoomEvent *, bool> getEvent(const QString &eventId) const;
|
||||
// std::pair<const Quotient::RoomEvent *, bool> getEvent(const QString &eventId) const;
|
||||
|
||||
/**
|
||||
* @brief Returns the event that is being replied to. This includes events that were manually loaded using NeoChatRoom::loadReply.
|
||||
*/
|
||||
const Quotient::RoomEvent *getReplyForEvent(const Quotient::RoomEvent &event) const;
|
||||
// const Quotient::RoomEvent *getReplyForEvent(const Quotient::RoomEvent &event) const;
|
||||
|
||||
/**
|
||||
* If we're invited to this room, the user that invited us. Undefined in other cases.
|
||||
@@ -551,7 +552,7 @@ public:
|
||||
* If we downloaded the file previously, return a struct with Completed status
|
||||
* and the local file path stored in KSharedCOnfig
|
||||
*/
|
||||
Quotient::FileTransferInfo cachedFileTransferInfo(const Quotient::RoomEvent *event) const;
|
||||
// Quotient::FileTransferInfo cachedFileTransferInfo(const Quotient::RoomEvent *event) const;
|
||||
|
||||
/**
|
||||
* @brief Return a NeochatRoomMember object for the given user ID.
|
||||
@@ -562,7 +563,7 @@ public:
|
||||
* responsibility of the caller to ensure that they only ask for objects
|
||||
* for real senders.
|
||||
*/
|
||||
NeochatRoomMember *qmlSafeMember(const QString &memberId);
|
||||
// NeochatRoomMember *qmlSafeMember(const QString &memberId);
|
||||
|
||||
/**
|
||||
* @brief Returns the content model for the given event ID.
|
||||
@@ -576,7 +577,7 @@ public:
|
||||
*
|
||||
* @warning Do NOT use for pending events as this function has no way to differentiate.
|
||||
*/
|
||||
MessageContentModel *contentModelForEvent(const QString &evtOrTxnId);
|
||||
// MessageContentModel *contentModelForEvent(const QString &evtOrTxnId);
|
||||
|
||||
/**
|
||||
* @brief Returns the content model for the given event.
|
||||
@@ -591,7 +592,7 @@ public:
|
||||
*
|
||||
* @note This version must be used for pending events as it can differentiate.
|
||||
*/
|
||||
MessageContentModel *contentModelForEvent(const Quotient::RoomEvent *event);
|
||||
// MessageContentModel *contentModelForEvent(const Quotient::RoomEvent *event);
|
||||
|
||||
/**
|
||||
* @brief Returns the thread model for the given thread root event ID.
|
||||
@@ -599,7 +600,7 @@ public:
|
||||
* A model is created is one doesn't exist. Will return nullptr if threadRootId
|
||||
* is empty.
|
||||
*/
|
||||
Q_INVOKABLE ThreadModel *modelForThread(const QString &threadRootId);
|
||||
// Q_INVOKABLE ThreadModel *modelForThread(const QString &threadRootId);
|
||||
|
||||
/**
|
||||
* @brief Pin a message in the room.
|
||||
@@ -621,7 +622,7 @@ public:
|
||||
private:
|
||||
bool m_visible = false;
|
||||
|
||||
QSet<const Quotient::RoomEvent *> highlights;
|
||||
// QSet<const Quotient::RoomEvent *> highlights;
|
||||
|
||||
bool m_hasFileUploading = false;
|
||||
int m_fileUploadingProgress = 0;
|
||||
@@ -629,29 +630,29 @@ private:
|
||||
PushNotificationState::State m_currentPushNotificationState = PushNotificationState::Unknown;
|
||||
bool m_pushNotificationStateUpdating = false;
|
||||
|
||||
void checkForHighlights(const Quotient::TimelineItem &ti);
|
||||
// void checkForHighlights(const Quotient::TimelineItem &ti);
|
||||
|
||||
void onAddNewTimelineEvents(timeline_iter_t from) override;
|
||||
void onAddHistoricalTimelineEvents(rev_iter_t from) override;
|
||||
void onRedaction(const Quotient::RoomEvent &prevEvent, const Quotient::RoomEvent &after) override;
|
||||
// void onAddNewTimelineEvents(timeline_iter_t from) override;
|
||||
// void onAddHistoricalTimelineEvents(rev_iter_t from) override;
|
||||
// void onRedaction(const Quotient::RoomEvent &prevEvent, const Quotient::RoomEvent &after) override;
|
||||
|
||||
QCoro::Task<void> doDeleteMessagesByUser(const QString &user, QString reason);
|
||||
// QCoro::Task<void> doDeleteMessagesByUser(const QString &user, QString reason);
|
||||
QCoro::Task<void> doUploadFile(QUrl url, QString body = QString());
|
||||
|
||||
std::unique_ptr<Quotient::RoomEvent> m_cachedEvent;
|
||||
// std::unique_ptr<Quotient::RoomEvent> m_cachedEvent;
|
||||
|
||||
ChatBarCache *m_mainCache;
|
||||
ChatBarCache *m_editCache;
|
||||
ChatBarCache *m_threadCache;
|
||||
|
||||
QCache<QString, PollHandler> m_polls;
|
||||
std::vector<Quotient::event_ptr_tt<Quotient::RoomEvent>> m_extraEvents;
|
||||
void cleanupExtraEventRange(Quotient::RoomEventsRange events);
|
||||
// QCache<QString, PollHandler> m_polls;
|
||||
// std::vector<Quotient::event_ptr_tt<Quotient::RoomEvent>> m_extraEvents;
|
||||
// void cleanupExtraEventRange(Quotient::RoomEventsRange events);
|
||||
void cleanupExtraEvent(const QString &eventId);
|
||||
|
||||
std::unordered_map<QString, std::unique_ptr<NeochatRoomMember>> m_memberObjects;
|
||||
std::unordered_map<QString, std::unique_ptr<MessageContentModel>> m_eventContentModels;
|
||||
std::unordered_map<QString, std::unique_ptr<ThreadModel>> m_threadModels;
|
||||
// std::unordered_map<QString, std::unique_ptr<NeochatRoomMember>> m_memberObjects;
|
||||
// std::unordered_map<QString, std::unique_ptr<MessageContentModel>> m_eventContentModels;
|
||||
// std::unordered_map<QString, std::unique_ptr<ThreadModel>> m_threadModels;
|
||||
|
||||
private Q_SLOTS:
|
||||
void updatePushNotificationState(QString type);
|
||||
@@ -681,11 +682,12 @@ Q_SIGNALS:
|
||||
void maxRoomVersionChanged();
|
||||
void extraEventLoaded(const QString &eventId);
|
||||
void extraEventNotFound(const QString &eventId);
|
||||
void avatarChanged();
|
||||
|
||||
/**
|
||||
* @brief Request a message be shown to the user of the given type.
|
||||
*/
|
||||
void showMessage(MessageType::Type messageType, const QString &message);
|
||||
// void showMessage(MessageType::Type messageType, const QString &message);
|
||||
|
||||
public Q_SLOTS:
|
||||
/**
|
||||
|
||||
@@ -75,7 +75,7 @@ Kirigami.Dialog {
|
||||
}
|
||||
}
|
||||
clip: true
|
||||
model: AccountRegistry
|
||||
model: Accounts
|
||||
|
||||
keyNavigationEnabled: false
|
||||
Keys.onDownPressed: {
|
||||
|
||||
252
src/qml/Main.qml
252
src/qml/Main.qml
@@ -23,8 +23,8 @@ Kirigami.ApplicationWindow {
|
||||
title: {
|
||||
if (NeoChatConfig.windowTitleFocus) {
|
||||
return activeFocusItem + " " + (activeFocusItem ? activeFocusItem.Accessible.name : "");
|
||||
} else if (RoomManager.currentRoom) {
|
||||
return RoomManager.currentRoom.displayName;
|
||||
// } else if (RoomManager.currentRoom) {
|
||||
// return RoomManager.currentRoom.displayName;
|
||||
} else {
|
||||
return Application.displayName;
|
||||
}
|
||||
@@ -49,20 +49,20 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
|
||||
onConnectionChanged: {
|
||||
CustomEmojiModel.connection = root.connection;
|
||||
SpaceHierarchyCache.connection = root.connection;
|
||||
// CustomEmojiModel.connection = root.connection;
|
||||
// SpaceHierarchyCache.connection = root.connection;
|
||||
NeoChatSettingsView.connection = root.connection;
|
||||
if (ShareHandler.text && root.connection) {
|
||||
root.handleShare();
|
||||
}
|
||||
// if (ShareHandler.text && root.connection) {
|
||||
// root.handleShare();
|
||||
// }
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: LoginHelper
|
||||
function onLoaded() {
|
||||
root.load();
|
||||
}
|
||||
}
|
||||
// Connections {
|
||||
// target: LoginHelper
|
||||
// function onLoaded() {
|
||||
// root.load();
|
||||
// }
|
||||
// }
|
||||
|
||||
Connections {
|
||||
target: root.quitAction
|
||||
@@ -83,64 +83,64 @@ Kirigami.ApplicationWindow {
|
||||
configGroupName: "MainWindow"
|
||||
}
|
||||
|
||||
QuickSwitcher {
|
||||
id: quickSwitcher
|
||||
connection: root.connection
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: RoomManager
|
||||
|
||||
function onCurrentRoomChanged() {
|
||||
if (RoomManager.currentRoom && pageStack.depth <= 1 && root.initialized && Kirigami.Settings.isMobile) {
|
||||
let roomPage = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'RoomPage'), {
|
||||
connection: root.connection
|
||||
});
|
||||
roomPage.backRequested.connect(event => {
|
||||
RoomManager.clearCurrentRoom();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function onAskJoinRoom(room) {
|
||||
Qt.createComponent("org.kde.neochat", "JoinRoomDialog").createObject(root, {
|
||||
room: room,
|
||||
connection: root.connection
|
||||
}).open();
|
||||
}
|
||||
|
||||
function onShowUserDetail(user, room) {
|
||||
root.showUserDetail(user, room);
|
||||
}
|
||||
|
||||
function goToEvent(event) {
|
||||
if (event.length > 0) {
|
||||
roomItem.goToEvent(event);
|
||||
}
|
||||
roomItem.forceActiveFocus();
|
||||
}
|
||||
|
||||
function onAskDirectChatConfirmation(user) {
|
||||
Qt.createComponent("org.kde.neochat", "AskDirectChatConfirmation").createObject(this, {
|
||||
user: user
|
||||
}).open();
|
||||
}
|
||||
|
||||
function onExternalUrl(url) {
|
||||
let dialog = Qt.createComponent("org.kde.neochat", "ConfirmUrlDialog").createObject(this);
|
||||
dialog.link = url;
|
||||
dialog.open();
|
||||
}
|
||||
}
|
||||
|
||||
function pushReplaceLayer(page, args) {
|
||||
if (pageStack.layers.depth === 2) {
|
||||
pageStack.layers.replace(page, args);
|
||||
} else {
|
||||
pageStack.layers.push(page, args);
|
||||
}
|
||||
}
|
||||
// QuickSwitcher {
|
||||
// id: quickSwitcher
|
||||
// connection: root.connection
|
||||
// }
|
||||
|
||||
// Connections {
|
||||
// target: RoomManager
|
||||
//
|
||||
// function onCurrentRoomChanged() {
|
||||
// if (RoomManager.currentRoom && pageStack.depth <= 1 && root.initialized && Kirigami.Settings.isMobile) {
|
||||
// let roomPage = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'RoomPage'), {
|
||||
// connection: root.connection
|
||||
// });
|
||||
// roomPage.backRequested.connect(event => {
|
||||
// RoomManager.clearCurrentRoom();
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// function onAskJoinRoom(room) {
|
||||
// Qt.createComponent("org.kde.neochat", "JoinRoomDialog").createObject(root, {
|
||||
// room: room,
|
||||
// connection: root.connection
|
||||
// }).open();
|
||||
// }
|
||||
//
|
||||
// function onShowUserDetail(user, room) {
|
||||
// root.showUserDetail(user, room);
|
||||
// }
|
||||
//
|
||||
// function goToEvent(event) {
|
||||
// if (event.length > 0) {
|
||||
// roomItem.goToEvent(event);
|
||||
// }
|
||||
// roomItem.forceActiveFocus();
|
||||
// }
|
||||
//
|
||||
// function onAskDirectChatConfirmation(user) {
|
||||
// Qt.createComponent("org.kde.neochat", "AskDirectChatConfirmation").createObject(this, {
|
||||
// user: user
|
||||
// }).open();
|
||||
// }
|
||||
//
|
||||
// function onExternalUrl(url) {
|
||||
// let dialog = Qt.createComponent("org.kde.neochat", "ConfirmUrlDialog").createObject(this);
|
||||
// dialog.link = url;
|
||||
// dialog.open();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// function pushReplaceLayer(page, args) {
|
||||
// if (pageStack.layers.depth === 2) {
|
||||
// pageStack.layers.replace(page, args);
|
||||
// } else {
|
||||
// pageStack.layers.push(page, args);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
function openRoomDrawer() {
|
||||
pageStack.push(Qt.createComponent('org.kde.neochat', 'RoomDrawerPage'), {
|
||||
connection: root.connection
|
||||
@@ -183,15 +183,15 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
CustomEmojiModel.connection = root.connection;
|
||||
SpaceHierarchyCache.connection = root.connection;
|
||||
RoomSettingsView.window = root;
|
||||
// CustomEmojiModel.connection = root.connection;
|
||||
// SpaceHierarchyCache.connection = root.connection;
|
||||
// RoomSettingsView.window = root;
|
||||
NeoChatSettingsView.window = root;
|
||||
NeoChatSettingsView.connection = root.connection;
|
||||
WindowController.setBlur(pageStack, NeoChatConfig.blur && !NeoChatConfig.compactLayout);
|
||||
if (ShareHandler.text && root.connection) {
|
||||
root.handleShare()
|
||||
}
|
||||
// if (ShareHandler.text && root.connection) {
|
||||
// root.handleShare()
|
||||
// }
|
||||
const hasSystemTray = Controller.supportSystemTray && NeoChatConfig.systemTray;
|
||||
if (Kirigami.Settings.isMobile || !(hasSystemTray && NeoChatConfig.minimizeToSystemTrayOnStartup)) {
|
||||
visible = true;
|
||||
@@ -210,7 +210,7 @@ Kirigami.ApplicationWindow {
|
||||
// blur effect
|
||||
color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? "transparent" : Kirigami.Theme.backgroundColor
|
||||
|
||||
// we need to apply the translucency effect separately on top of the color
|
||||
// // we need to apply the translucency effect separately on top of the color
|
||||
background: Rectangle {
|
||||
color: NeoChatConfig.blur && !NeoChatConfig.compactLayout ? Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 1 - NeoChatConfig.transparency) : "transparent"
|
||||
}
|
||||
@@ -220,7 +220,7 @@ Kirigami.ApplicationWindow {
|
||||
RoomListPage {
|
||||
id: roomList
|
||||
|
||||
onSearch: quickSwitcher.open()
|
||||
// onSearch: quickSwitcher.open()
|
||||
|
||||
connection: root.connection
|
||||
|
||||
@@ -255,9 +255,9 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: AccountRegistry
|
||||
target: Accounts
|
||||
function onRowsRemoved() {
|
||||
if (AccountRegistry.rowCount() === 0) {
|
||||
if (Accounts.rowCount() === 0) {
|
||||
pageStack.clear();
|
||||
pageStack.push(Qt.createComponent('org.kde.neochat.login', 'WelcomePage'));
|
||||
}
|
||||
@@ -272,22 +272,22 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: root.connection
|
||||
|
||||
function onNewKeyVerificationSession(session) {
|
||||
root.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "KeyVerificationDialog"), {
|
||||
session: session
|
||||
}, {
|
||||
title: i18nc("@title:window", "Session Verification")
|
||||
});
|
||||
}
|
||||
function onUserConsentRequired(url) {
|
||||
Qt.createComponent("org.kde.neochat", "ConsentDialog").createObject(this, {
|
||||
url: url
|
||||
}).open();
|
||||
}
|
||||
}
|
||||
// Connections {
|
||||
// target: root.connection
|
||||
//
|
||||
// function onNewKeyVerificationSession(session) {
|
||||
// root.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "KeyVerificationDialog"), {
|
||||
// session: session
|
||||
// }, {
|
||||
// title: i18nc("@title:window", "Session Verification")
|
||||
// });
|
||||
// }
|
||||
// function onUserConsentRequired(url) {
|
||||
// Qt.createComponent("org.kde.neochat", "ConsentDialog").createObject(this, {
|
||||
// url: url
|
||||
// }).open();
|
||||
// }
|
||||
// }
|
||||
|
||||
HoverLinkIndicator {
|
||||
id: linkIndicator
|
||||
@@ -303,36 +303,36 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: ShareHandler
|
||||
function onTextChanged(): void {
|
||||
if (root.connection && ShareHandler.text.length > 0) {
|
||||
root.handleShare();
|
||||
}
|
||||
}
|
||||
}
|
||||
function handleShare(): void {
|
||||
const dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), {
|
||||
connection: root.connection
|
||||
}, {
|
||||
title: i18nc("@title", "Share"),
|
||||
width: Kirigami.Units.gridUnit * 25
|
||||
})
|
||||
dialog.chosen.connect(function(targetRoomId) {
|
||||
RoomManager.resolveResource(targetRoomId)
|
||||
ShareHandler.room = targetRoomId
|
||||
dialog.closeDialog()
|
||||
})
|
||||
}
|
||||
function showUserDetail(user, room) {
|
||||
const dialog = Qt.createComponent("org.kde.neochat", "UserDetailDialog").createObject(root, {
|
||||
room: room,
|
||||
user: user,
|
||||
connection: root.connection,
|
||||
});
|
||||
dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again
|
||||
dialog.open();
|
||||
}
|
||||
// Connections {
|
||||
// target: ShareHandler
|
||||
// function onTextChanged(): void {
|
||||
// if (root.connection && ShareHandler.text.length > 0) {
|
||||
// root.handleShare();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// function handleShare(): void {
|
||||
// const dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), {
|
||||
// connection: root.connection
|
||||
// }, {
|
||||
// title: i18nc("@title", "Share"),
|
||||
// width: Kirigami.Units.gridUnit * 25
|
||||
// })
|
||||
// dialog.chosen.connect(function(targetRoomId) {
|
||||
// RoomManager.resolveResource(targetRoomId)
|
||||
// ShareHandler.room = targetRoomId
|
||||
// dialog.closeDialog()
|
||||
// })
|
||||
// }
|
||||
// function showUserDetail(user, room) {
|
||||
// const dialog = Qt.createComponent("org.kde.neochat", "UserDetailDialog").createObject(root, {
|
||||
// room: room,
|
||||
// user: user,
|
||||
// connection: root.connection,
|
||||
// });
|
||||
// dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again
|
||||
// dialog.open();
|
||||
// }
|
||||
|
||||
function load() {
|
||||
pageStack.replace(roomListComponent);
|
||||
|
||||
@@ -19,7 +19,7 @@ Delegates.RoundedItemDelegate {
|
||||
required property int index
|
||||
required property int contextNotificationCount
|
||||
required property bool hasHighlightNotifications
|
||||
required property NeoChatRoom currentRoom
|
||||
required property string roomId
|
||||
required property NeoChatConnection connection
|
||||
required property url avatar
|
||||
required property string subtitleText
|
||||
@@ -37,11 +37,13 @@ Delegates.RoundedItemDelegate {
|
||||
|
||||
onClicked: {
|
||||
if (root.openOnClick) {
|
||||
RoomManager.resolveResource(currentRoom.id);
|
||||
root.connection.open(root.roomId)
|
||||
pageStack.currentIndex = 1;
|
||||
}
|
||||
}
|
||||
|
||||
onPressAndHold: createRoomListContextMenu()
|
||||
|
||||
Keys.onSpacePressed: clicked()
|
||||
Keys.onEnterPressed: clicked()
|
||||
Keys.onReturnPressed: clicked()
|
||||
@@ -52,19 +54,14 @@ Delegates.RoundedItemDelegate {
|
||||
onTapped: (eventPoint, button) => root.createRoomListContextMenu()
|
||||
}
|
||||
|
||||
TapHandler {
|
||||
acceptedDevices: PointerDevice.TouchScreen
|
||||
onLongPressed: root.createRoomListContextMenu()
|
||||
}
|
||||
|
||||
contentItem: RowLayout {
|
||||
spacing: Kirigami.Units.largeSpacing
|
||||
|
||||
AvatarNotification {
|
||||
source: root.avatar
|
||||
name: root.displayName
|
||||
visible: NeoChatConfig.showAvatarInRoomDrawer
|
||||
implicitHeight: Kirigami.Units.gridUnit + (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2)
|
||||
// visible: NeoChatConfig.showAvatarInRoomDrawer
|
||||
implicitHeight: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2 // (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2)
|
||||
implicitWidth: visible ? implicitHeight : 0
|
||||
|
||||
notificationCount: root.contextNotificationCount
|
||||
@@ -101,7 +98,7 @@ Delegates.RoundedItemDelegate {
|
||||
elide: Text.ElideRight
|
||||
font: Kirigami.Theme.smallFont
|
||||
opacity: root.hasNotifications ? 0.9 : 0.7
|
||||
visible: !NeoChatConfig.compactRoomList && text.length > 0
|
||||
// visible: !NeoChatConfig.compactRoomList && text.length > 0
|
||||
textFormat: Text.PlainText
|
||||
|
||||
Layout.fillWidth: true
|
||||
@@ -147,7 +144,7 @@ Delegates.RoundedItemDelegate {
|
||||
|
||||
QQC2.Button {
|
||||
id: configButton
|
||||
visible: root.hovered && !Kirigami.Settings.isMobile && !NeoChatConfig.compactRoomList && !root.collapsed && root.showConfigure
|
||||
visible: root.hovered && !Kirigami.Settings.isMobile /*&& !NeoChatConfig.compactRoomList*/ && !root.collapsed && root.showConfigure
|
||||
text: i18n("Configure room")
|
||||
display: QQC2.Button.IconOnly
|
||||
|
||||
|
||||
@@ -1,295 +1,117 @@
|
||||
// SPDX-FileCopyrightText: 2019 Black Hat <bhat@encom.eu.org>
|
||||
// SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
// SPDX-FileCopyrightText: 2025 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Controls as QQC2
|
||||
import QtQuick.Layouts
|
||||
import QtQml.Models
|
||||
import Qt.labs.qmlmodels
|
||||
|
||||
import org.kde.kirigami as Kirigami
|
||||
import org.kde.kirigamiaddons.components as KirigamiComponents
|
||||
import org.kde.kirigamiaddons.formcard as FormCard
|
||||
import org.kde.kirigamiaddons.delegates as Delegates
|
||||
|
||||
import org.kde.neochat
|
||||
|
||||
Kirigami.Page {
|
||||
Kirigami.ScrollablePage {
|
||||
id: root
|
||||
|
||||
/**
|
||||
* @brief The current width of the room list.
|
||||
*
|
||||
* @note Other objects can access the value but the private function makes sure
|
||||
* that only the internal members can modify it.
|
||||
*/
|
||||
readonly property int currentWidth: _private.currentWidth + spaceDrawer.width + 1
|
||||
title: i18nc("@title", "Rooms")
|
||||
|
||||
required property NeoChatConnection connection
|
||||
|
||||
readonly property bool collapsed: NeoChatConfig.collapsed
|
||||
|
||||
signal search
|
||||
|
||||
onCurrentWidthChanged: pageStack.defaultColumnWidth = root.currentWidth
|
||||
Component.onCompleted: pageStack.defaultColumnWidth = root.currentWidth
|
||||
|
||||
|
||||
onCollapsedChanged: {
|
||||
if (collapsed) {
|
||||
RoomManager.sortFilterRoomTreeModel.filterText = "";
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:button", "Log out")
|
||||
onTriggered: root.connection.logout()
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:button", "Create Room")
|
||||
onTriggered: root.connection.createRoom("Hello", "World", "")
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
function goToNextRoomFiltered(condition) {
|
||||
let index = treeView.rowAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex());
|
||||
while (index++ < treeView.rows) {
|
||||
let item = treeView.itemAtIndex(treeView.index(index, 0))
|
||||
if (condition(item)) {
|
||||
RoomManager.resolveResource(item.currentRoom.id)
|
||||
return;
|
||||
}
|
||||
Connections {
|
||||
target: root.connection
|
||||
function onOpenRoom(): void {
|
||||
room => pageStack.push(Qt.createComponent("org.kde.neochat", "RoomPage"), {
|
||||
room: room,
|
||||
connection: connection,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function goToPreviousRoomFiltered(condition) {
|
||||
let index = treeView.rowAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex());
|
||||
while (index-- > 0) {
|
||||
let item = treeView.itemAtIndex(treeView.index(index, 0))
|
||||
if (condition(item)) {
|
||||
RoomManager.resolveResource(item.currentRoom.id)
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function goToNextRoom() {
|
||||
goToNextRoomFiltered(item => (item && item instanceof RoomDelegate));
|
||||
}
|
||||
|
||||
function goToPreviousRoom() {
|
||||
goToPreviousRoomFiltered(item => (item && item instanceof RoomDelegate));
|
||||
}
|
||||
|
||||
function goToNextUnreadRoom() {
|
||||
goToNextRoomFiltered(item => (item && item instanceof RoomDelegate && item.hasUnread));
|
||||
}
|
||||
|
||||
function goToPreviousUnreadRoom() {
|
||||
goToPreviousRoomFiltered(item => (item && item instanceof RoomDelegate && item.hasUnread));
|
||||
}
|
||||
|
||||
titleDelegate: Loader {
|
||||
Layout.fillWidth: true
|
||||
sourceComponent: Kirigami.Settings.isMobile ? userInfo : exploreComponent
|
||||
}
|
||||
|
||||
padding: 0
|
||||
|
||||
Connections {
|
||||
target: RoomManager
|
||||
function onCurrentSpaceChanged() {
|
||||
treeView.expandRecursively();
|
||||
}
|
||||
|
||||
function onCurrentRoomChanged() {
|
||||
treeView.positionViewAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex(), TableView.AlignVCenter)
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
SpaceDrawer {
|
||||
id: spaceDrawer
|
||||
Layout.preferredWidth: Kirigami.Units.gridUnit * 3
|
||||
Layout.fillHeight: true
|
||||
|
||||
connection: root.connection
|
||||
}
|
||||
|
||||
Kirigami.Separator {
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: 1
|
||||
}
|
||||
|
||||
QQC2.ScrollView {
|
||||
id: scrollView
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
background: Rectangle {
|
||||
color: Kirigami.Theme.backgroundColor
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.View
|
||||
}
|
||||
|
||||
Keys.onDownPressed: ; // Do not delete 🫠
|
||||
Keys.onUpPressed: ; // These make sure the scrollview doesn't also scroll while going through the roomlist using the arrow keys
|
||||
|
||||
contentItem: TreeView {
|
||||
id: treeView
|
||||
topMargin: Math.round(Kirigami.Units.smallSpacing / 2)
|
||||
|
||||
clip: true
|
||||
reuseItems: false
|
||||
|
||||
model: RoomManager.sortFilterRoomTreeModel
|
||||
|
||||
selectionModel: ItemSelectionModel {}
|
||||
|
||||
delegate: DelegateChooser {
|
||||
role: "delegateType"
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "section"
|
||||
delegate: RoomTreeSection {
|
||||
collapsed: root.collapsed
|
||||
}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "normal"
|
||||
delegate: RoomDelegate {
|
||||
id: roomDelegate
|
||||
required property int row
|
||||
required property TreeView treeView
|
||||
required property bool current
|
||||
onCurrentChanged: if (current) {
|
||||
forceActiveFocus(Qt.TabFocusReason);
|
||||
}
|
||||
|
||||
implicitWidth: treeView.width
|
||||
connection: root.connection
|
||||
collapsed: root.collapsed
|
||||
highlighted: RoomManager.currentRoom === currentRoom
|
||||
}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "addDirect"
|
||||
delegate: Delegates.RoundedItemDelegate {
|
||||
text: i18n("Find your friends")
|
||||
icon.name: "list-add-user"
|
||||
icon.width: Kirigami.Units.gridUnit * 2
|
||||
icon.height: Kirigami.Units.gridUnit * 2
|
||||
|
||||
onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
|
||||
connection: root.connection
|
||||
}, {
|
||||
title: i18nc("@title", "Find your friends")
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Kirigami.PlaceholderMessage {
|
||||
anchors.centerIn: parent
|
||||
anchors.horizontalCenterOffset: (spaceDrawer.width + 1) / 2
|
||||
width: scrollView.width - Kirigami.Units.largeSpacing * 4
|
||||
visible: treeView.rows == 0
|
||||
text: if (RoomManager.sortFilterRoomTreeModel.filterText.length > 0) {
|
||||
return spaceDrawer.showDirectChats ? i18n("No friends found") : i18n("No rooms found");
|
||||
} else {
|
||||
return spaceDrawer.showDirectChats ? i18n("You haven't added any of your friends yet, click below to search for them.") : i18n("Join some rooms to get started");
|
||||
}
|
||||
helpfulAction: spaceDrawer.showDirectChats ? userSearchAction : exploreRoomAction
|
||||
|
||||
Kirigami.Action {
|
||||
id: exploreRoomAction
|
||||
icon.name: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? "search" : "list-add"
|
||||
text: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? i18n("Search in room directory") : i18n("Explore rooms")
|
||||
onTriggered: {
|
||||
let dialog = pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'ExploreRoomsPage'), {
|
||||
connection: root.connection,
|
||||
keyword: RoomManager.sortFilterRoomTreeModel.filterText
|
||||
}, {
|
||||
title: i18nc("@title", "Explore Rooms")
|
||||
});
|
||||
dialog.roomSelected.connect((roomId, displayName, avatarUrl, alias, topic, memberCount, isJoined) => {
|
||||
RoomManager.resolveResource(roomId.length > 0 ? roomId : alias, isJoined ? "" : "join");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Kirigami.Action {
|
||||
id: userSearchAction
|
||||
icon.name: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? "search" : "list-add"
|
||||
text: RoomManager.sortFilterRoomTreeModel.filterText.length > 0 ? i18n("Search in friend directory") : i18n("Find your friends")
|
||||
onTriggered: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
|
||||
connection: root.connection
|
||||
}, {
|
||||
title: i18nc("@title", "Find your friends")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
footer: Loader {
|
||||
width: parent.width
|
||||
sourceComponent: Kirigami.Settings.isMobile ? exploreComponentMobile : userInfoDesktop
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
parent: applicationWindow().overlay.parent
|
||||
TreeView {
|
||||
id: treeView
|
||||
topMargin: Math.round(Kirigami.Units.smallSpacing / 2)
|
||||
|
||||
x: root.currentWidth - width / 2
|
||||
width: Kirigami.Units.smallSpacing * 2
|
||||
z: root.z + 1
|
||||
enabled: RoomManager.hasOpenRoom && applicationWindow().width >= Kirigami.Units.gridUnit * 35
|
||||
visible: enabled
|
||||
cursorShape: Qt.SplitHCursor
|
||||
clip: true
|
||||
reuseItems: false
|
||||
|
||||
property int _lastX
|
||||
|
||||
onPressed: mouse => {
|
||||
_lastX = mouse.x;
|
||||
}
|
||||
onPositionChanged: mouse => {
|
||||
if (_lastX == -1) {
|
||||
return;
|
||||
model: SortFilterRoomTreeModel {
|
||||
sourceModel: RoomTreeModel {
|
||||
connection: root.connection
|
||||
}
|
||||
if (mouse.x > _lastX) {
|
||||
// we moved to the right
|
||||
if (_private.currentWidth < _private.collapseWidth && _private.currentWidth + (mouse.x - _lastX) >= _private.collapseWidth) {
|
||||
// Here we get back directly to a more wide mode.
|
||||
_private.currentWidth = _private.defaultWidth;
|
||||
NeoChatConfig.collapsed = false;
|
||||
} else if (_private.currentWidth >= _private.collapseWidth) {
|
||||
// Increase page width
|
||||
_private.currentWidth = Math.min(_private.defaultWidth, _private.currentWidth + (mouse.x - _lastX));
|
||||
}
|
||||
|
||||
selectionModel: ItemSelectionModel {}
|
||||
|
||||
delegate: DelegateChooser {
|
||||
role: "delegateType"
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "section"
|
||||
delegate: RoomTreeSection {
|
||||
collapsed: root.collapsed
|
||||
}
|
||||
} else if (mouse.x < _lastX) {
|
||||
const tmpWidth = _private.currentWidth - (_lastX - mouse.x);
|
||||
if (tmpWidth < _private.collapseWidth) {
|
||||
_private.currentWidth = Qt.binding(() => _private.collapsedSize);
|
||||
NeoChatConfig.collapsed = true;
|
||||
} else {
|
||||
_private.currentWidth = tmpWidth;
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "normal"
|
||||
delegate: RoomDelegate {
|
||||
id: roomDelegate
|
||||
required property int row
|
||||
required property TreeView treeView
|
||||
required property bool current
|
||||
onCurrentChanged: if (current) {
|
||||
forceActiveFocus(Qt.TabFocusReason);
|
||||
}
|
||||
|
||||
implicitWidth: treeView.width
|
||||
connection: root.connection
|
||||
collapsed: root.collapsed
|
||||
highlighted: RoomManager.currentRoom === currentRoom
|
||||
}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: "addDirect"
|
||||
delegate: Delegates.RoundedItemDelegate {
|
||||
text: i18n("Find your friends")
|
||||
icon.name: "list-add-user"
|
||||
icon.width: Kirigami.Units.gridUnit * 2
|
||||
icon.height: Kirigami.Units.gridUnit * 2
|
||||
|
||||
onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
|
||||
connection: root.connection
|
||||
}, {
|
||||
title: i18nc("@title", "Find your friends")
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: userInfo
|
||||
UserInfo {
|
||||
bottomEdge: false
|
||||
connection: root.connection
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: userInfoDesktop
|
||||
UserInfoDesktop {
|
||||
connection: root.connection
|
||||
collapsed: root.collapsed
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: exploreComponent
|
||||
@@ -308,25 +130,10 @@ Kirigami.Page {
|
||||
}
|
||||
|
||||
Component {
|
||||
id: exploreComponentMobile
|
||||
ExploreComponentMobile {
|
||||
id: userInfoDesktop
|
||||
UserInfoDesktop {
|
||||
connection: root.connection
|
||||
|
||||
onTextChanged: newText => {
|
||||
RoomManager.sortFilterRoomTreeModel.filterText = newText;
|
||||
}
|
||||
collapsed: root.collapsed
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Hold the modifiable currentWidth in a private object so that only internal
|
||||
* members can modify it.
|
||||
*/
|
||||
QtObject {
|
||||
id: _private
|
||||
property int currentWidth: NeoChatConfig.collapsed ? collapsedSize : defaultWidth
|
||||
readonly property int defaultWidth: Kirigami.Units.gridUnit * 15
|
||||
readonly property int collapseWidth: Kirigami.Units.gridUnit * 10
|
||||
readonly property int collapsedSize: Kirigami.Units.gridUnit + (NeoChatConfig.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2) + Kirigami.Units.largeSpacing * 2 + (scrollView.QQC2.ScrollBar.vertical.visible ? scrollView.QQC2.ScrollBar.vertical.width : 0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,32 +38,32 @@ QQC2.ScrollView {
|
||||
// HACK: Hide unnecessary horizontal scrollbar (https://bugreports.qt.io/browse/QTBUG-83890)
|
||||
QQC2.ScrollBar.horizontal.policy: QQC2.ScrollBar.AlwaysOff
|
||||
|
||||
ListView {
|
||||
clip: true
|
||||
verticalLayoutDirection: ListView.BottomToTop
|
||||
|
||||
model: RoomManager.mediaMessageFilterModel
|
||||
|
||||
delegate: DelegateChooser {
|
||||
role: "type"
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MediaMessageFilterModel.Image
|
||||
delegate: MessageDelegate {
|
||||
alwaysFillWidth: true
|
||||
cardBackground: false
|
||||
room: root.currentRoom
|
||||
}
|
||||
}
|
||||
|
||||
DelegateChoice {
|
||||
roleValue: MediaMessageFilterModel.Video
|
||||
delegate: MessageDelegate {
|
||||
alwaysFillWidth: true
|
||||
cardBackground: false
|
||||
room: root.currentRoom
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ListView {
|
||||
// clip: true
|
||||
// verticalLayoutDirection: ListView.BottomToTop
|
||||
//
|
||||
// model: RoomManager.mediaMessageFilterModel
|
||||
//
|
||||
// delegate: DelegateChooser {
|
||||
// role: "type"
|
||||
//
|
||||
// DelegateChoice {
|
||||
// roleValue: MediaMessageFilterModel.Image
|
||||
// delegate: MessageDelegate {
|
||||
// alwaysFillWidth: true
|
||||
// cardBackground: false
|
||||
// room: root.currentRoom
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// DelegateChoice {
|
||||
// roleValue: MediaMessageFilterModel.Video
|
||||
// delegate: MessageDelegate {
|
||||
// alwaysFillWidth: true
|
||||
// cardBackground: false
|
||||
// room: root.currentRoom
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ Kirigami.Page {
|
||||
*
|
||||
* @sa TimelineModel
|
||||
*/
|
||||
property TimelineModel timelineModel: RoomManager.timelineModel
|
||||
// property TimelineModel timelineModel: RoomManager.timelineModel
|
||||
|
||||
/**
|
||||
* @brief The MessageFilterModel to use.
|
||||
@@ -44,7 +44,7 @@ Kirigami.Page {
|
||||
*
|
||||
* @sa TimelineModel, MessageFilterModel
|
||||
*/
|
||||
property MessageFilterModel messageFilterModel: RoomManager.messageFilterModel
|
||||
// property MessageFilterModel messageFilterModel: RoomManager.messageFilterModel
|
||||
|
||||
/**
|
||||
* @brief The MediaMessageFilterModel to use.
|
||||
@@ -57,7 +57,7 @@ Kirigami.Page {
|
||||
*
|
||||
* @sa TimelineModel, MessageFilterModel
|
||||
*/
|
||||
property MediaMessageFilterModel mediaMessageFilterModel: RoomManager.mediaMessageFilterModel
|
||||
// property MediaMessageFilterModel mediaMessageFilterModel: RoomManager.mediaMessageFilterModel
|
||||
|
||||
property bool loading: !root.currentRoom || (root.currentRoom.timelineSize === 0 && !root.currentRoom.allHistoryLoaded)
|
||||
|
||||
@@ -106,58 +106,58 @@ Kirigami.Page {
|
||||
position: Kirigami.InlineMessage.Position.Header
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: timelineViewLoader
|
||||
anchors.fill: parent
|
||||
active: root.currentRoom && !root.currentRoom.isInvite && !root.loading && !root.currentRoom.isSpace
|
||||
sourceComponent: TimelineView {
|
||||
id: timelineView
|
||||
currentRoom: root.currentRoom
|
||||
page: root
|
||||
timelineModel: root.timelineModel
|
||||
messageFilterModel: root.messageFilterModel
|
||||
onFocusChatBar: {
|
||||
if (chatBarLoader.item) {
|
||||
chatBarLoader.item.forceActiveFocus();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Loader {
|
||||
// id: timelineViewLoader
|
||||
// anchors.fill: parent
|
||||
// active: root.currentRoom && !root.currentRoom.isInvite && !root.loading && !root.currentRoom.isSpace
|
||||
// sourceComponent: TimelineView {
|
||||
// id: timelineView
|
||||
// currentRoom: root.currentRoom
|
||||
// page: root
|
||||
// timelineModel: root.timelineModel
|
||||
// messageFilterModel: root.messageFilterModel
|
||||
// onFocusChatBar: {
|
||||
// if (chatBarLoader.item) {
|
||||
// chatBarLoader.item.forceActiveFocus();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Loader {
|
||||
id: invitationLoader
|
||||
active: root.currentRoom && root.currentRoom.isInvite
|
||||
anchors.centerIn: parent
|
||||
sourceComponent: InvitationView {
|
||||
currentRoom: root.currentRoom
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
// Loader {
|
||||
// id: invitationLoader
|
||||
// active: root.currentRoom && root.currentRoom.isInvite
|
||||
// anchors.centerIn: parent
|
||||
// sourceComponent: InvitationView {
|
||||
// currentRoom: root.currentRoom
|
||||
// anchors.centerIn: parent
|
||||
// }
|
||||
// }
|
||||
|
||||
Loader {
|
||||
id: spaceLoader
|
||||
active: root.currentRoom && root.currentRoom.isSpace
|
||||
anchors.fill: parent
|
||||
sourceComponent: SpaceHomePage {}
|
||||
}
|
||||
// Loader {
|
||||
// id: spaceLoader
|
||||
// active: root.currentRoom && root.currentRoom.isSpace
|
||||
// anchors.fill: parent
|
||||
// sourceComponent: SpaceHomePage {}
|
||||
// }
|
||||
|
||||
Loader {
|
||||
active: !RoomManager.currentRoom
|
||||
anchors.centerIn: parent
|
||||
sourceComponent: Kirigami.PlaceholderMessage {
|
||||
icon.name: "org.kde.neochat"
|
||||
text: i18n("Welcome to NeoChat")
|
||||
explanation: i18n("Select or join a room to get started")
|
||||
}
|
||||
}
|
||||
// Loader {
|
||||
// active: !RoomManager.currentRoom
|
||||
// anchors.centerIn: parent
|
||||
// sourceComponent: Kirigami.PlaceholderMessage {
|
||||
// icon.name: "org.kde.neochat"
|
||||
// text: i18n("Welcome to NeoChat")
|
||||
// explanation: i18n("Select or join a room to get started")
|
||||
// }
|
||||
// }
|
||||
|
||||
Loader {
|
||||
active: root.loading && !invitationLoader.active && RoomManager.currentRoom && !spaceLoader.active
|
||||
anchors.centerIn: parent
|
||||
sourceComponent: Kirigami.LoadingPlaceholder {
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
// Loader {
|
||||
// active: root.loading && !invitationLoader.active && RoomManager.currentRoom && !spaceLoader.active
|
||||
// anchors.centerIn: parent
|
||||
// sourceComponent: Kirigami.LoadingPlaceholder {
|
||||
// anchors.centerIn: parent
|
||||
// }
|
||||
// }
|
||||
|
||||
background: Rectangle {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.View
|
||||
@@ -290,26 +290,26 @@ Kirigami.Page {
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: messageDelegateContextMenu
|
||||
MessageDelegateContextMenu {
|
||||
connection: root.connection
|
||||
}
|
||||
}
|
||||
// Component {
|
||||
// id: messageDelegateContextMenu
|
||||
// MessageDelegateContextMenu {
|
||||
// connection: root.connection
|
||||
// }
|
||||
// }
|
||||
|
||||
Component {
|
||||
id: fileDelegateContextMenu
|
||||
FileDelegateContextMenu {
|
||||
connection: root.connection
|
||||
}
|
||||
}
|
||||
// Component {
|
||||
// id: fileDelegateContextMenu
|
||||
// FileDelegateContextMenu {
|
||||
// connection: root.connection
|
||||
// }
|
||||
// }
|
||||
|
||||
Component {
|
||||
id: maximizeComponent
|
||||
NeochatMaximizeComponent {
|
||||
currentRoom: root.currentRoom
|
||||
model: root.mediaMessageFilterModel
|
||||
parent: root.QQC2.Overlay.overlay
|
||||
}
|
||||
}
|
||||
// Component {
|
||||
// id: maximizeComponent
|
||||
// NeochatMaximizeComponent {
|
||||
// currentRoom: root.currentRoom
|
||||
// model: root.mediaMessageFilterModel
|
||||
// parent: root.QQC2.Overlay.overlay
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ QQC2.ItemDelegate {
|
||||
opacity: 0.7
|
||||
level: 5
|
||||
type: Kirigami.Heading.Primary
|
||||
text: root.collapsed ? "" : model.displayName
|
||||
text: root.collapsed ? "" : root.displayName
|
||||
elide: Text.ElideRight
|
||||
|
||||
// we override the Primary type's font weight (DemiBold) for Bold for contrast with small text
|
||||
|
||||
@@ -54,7 +54,7 @@ RowLayout {
|
||||
spacing: Kirigami.Units.largeSpacing
|
||||
|
||||
KirigamiComponents.Avatar {
|
||||
readonly property url avatarUrl: root.connection.localUser.avatarUrl
|
||||
readonly property url avatarUrl: root.connection.avatarUrl
|
||||
|
||||
Layout.preferredWidth: Kirigami.Units.iconSizes.medium
|
||||
Layout.preferredHeight: Kirigami.Units.iconSizes.medium
|
||||
@@ -62,7 +62,7 @@ RowLayout {
|
||||
|
||||
// Note: User::avatarUrl does not set user_id, and thus cannot be used directly here. Hence the makeMediaUrl.
|
||||
source: avatarUrl.toString().length > 0 ? root.connection.makeMediaUrl(avatarUrl) : ""
|
||||
name: root.connection.localUser.displayName
|
||||
name: root.connection.displayName
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
@@ -73,14 +73,14 @@ RowLayout {
|
||||
QQC2.Label {
|
||||
id: displayNameLabel
|
||||
Layout.fillWidth: true
|
||||
text: root.connection.localUser.displayName
|
||||
text: root.connection.displayName
|
||||
textFormat: Text.PlainText
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
QQC2.Label {
|
||||
id: idLabel
|
||||
Layout.fillWidth: true
|
||||
text: (root.connection.label.length > 0 ? (root.connection.label + " ") : "") + root.connection.localUser.id
|
||||
text: root.connection.matrixId
|
||||
font.pointSize: displayNameLabel.font.pointSize * 0.8
|
||||
opacity: 0.7
|
||||
textFormat: Text.PlainText
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
#include <KSharedConfig>
|
||||
#include <QObject>
|
||||
#include <QQmlEngine>
|
||||
#include <Quotient/room.h>
|
||||
#include <Quotient/roommember.h>
|
||||
#include <Quotient/uriresolver.h>
|
||||
// #include <Quotient/room.h>
|
||||
// #include <Quotient/roommember.h>
|
||||
// #include <Quotient/uriresolver.h>
|
||||
|
||||
#include "chatdocumenthandler.h"
|
||||
#include "enums/messagecomponenttype.h"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
qt_add_library(settings STATIC)
|
||||
|
||||
set_source_files_properties(
|
||||
RoomSettingsView.qml
|
||||
# RoomSettingsView.qml
|
||||
NeoChatSettingsView.qml
|
||||
PROPERTIES
|
||||
QT_QML_SINGLETON_TYPE TRUE
|
||||
@@ -15,33 +15,33 @@ ecm_add_qml_module(settings GENERATE_PLUGIN_SOURCE
|
||||
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/settings
|
||||
QML_FILES
|
||||
NeoChatSettingsView.qml
|
||||
RoomSettingsView.qml
|
||||
AccountsPage.qml
|
||||
AccountEditorPage.qml
|
||||
# RoomSettingsView.qml
|
||||
# AccountsPage.qml
|
||||
# AccountEditorPage.qml
|
||||
AppearanceSettingsPage.qml
|
||||
DevicesPage.qml
|
||||
EmoticonsPage.qml
|
||||
EmoticonEditorPage.qml
|
||||
# DevicesPage.qml
|
||||
# EmoticonsPage.qml
|
||||
# EmoticonEditorPage.qml
|
||||
GlobalNotificationsPage.qml
|
||||
NeoChatGeneralPage.qml
|
||||
NeoChatSecurityPage.qml
|
||||
NetworkProxyPage.qml
|
||||
Permissions.qml
|
||||
PushNotification.qml
|
||||
RoomGeneralPage.qml
|
||||
RoomSecurityPage.qml
|
||||
ColorScheme.qml
|
||||
DevicesCard.qml
|
||||
DeviceDelegate.qml
|
||||
EmoticonFormCard.qml
|
||||
IdentityServerDelegate.qml
|
||||
IgnoredUsersDialog.qml
|
||||
# Permissions.qml
|
||||
# PushNotification.qml
|
||||
# RoomGeneralPage.qml
|
||||
# RoomSecurityPage.qml
|
||||
# ColorScheme.qml
|
||||
# DevicesCard.qml
|
||||
# DeviceDelegate.qml
|
||||
# EmoticonFormCard.qml
|
||||
# IdentityServerDelegate.qml
|
||||
# IgnoredUsersDialog.qml
|
||||
NotificationRuleItem.qml
|
||||
PasswordSheet.qml
|
||||
# PasswordSheet.qml
|
||||
ThemeRadioButton.qml
|
||||
ThreePIdCard.qml
|
||||
ImportKeysDialog.qml
|
||||
ExportKeysDialog.qml
|
||||
RoomSortParameterDialog.qml
|
||||
RoomProfile.qml
|
||||
# ThreePIdCard.qml
|
||||
# ImportKeysDialog.qml
|
||||
# ExportKeysDialog.qml
|
||||
# RoomSortParameterDialog.qml
|
||||
# RoomProfile.qml
|
||||
)
|
||||
|
||||
@@ -28,7 +28,10 @@ ColumnLayout {
|
||||
Repeater {
|
||||
id: deviceRepeater
|
||||
model: KSortFilterProxyModel {
|
||||
sourceModel: root.connection.threePIdModel
|
||||
sourceModel: ThreePIdModel {
|
||||
id: threePIdModel
|
||||
connection: root.connection
|
||||
}
|
||||
filterRoleName: "medium"
|
||||
filterString: root.medium
|
||||
}
|
||||
@@ -110,6 +113,9 @@ ColumnLayout {
|
||||
connection: root.connection
|
||||
newId: threePIdDelegate.address
|
||||
medium: threePIdDelegate.medium
|
||||
|
||||
onThreePIdBound: threePIdModel.refreshModel()
|
||||
onThreePIdUnbound: threePIdModel.refreshModel()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +136,7 @@ ColumnLayout {
|
||||
label: i18nc("@label:textbox", "Country Code for new phone number")
|
||||
|
||||
Connections {
|
||||
target: root.connection.threePIdModel
|
||||
target: threePIdModel
|
||||
|
||||
function onModelReset() {
|
||||
newCountryCode.text = ""
|
||||
@@ -170,7 +176,7 @@ ColumnLayout {
|
||||
onAccepted: _private.openPasswordSheet()
|
||||
|
||||
Connections {
|
||||
target: root.connection.threePIdModel
|
||||
target: threePIdModel
|
||||
|
||||
function onModelReset() {
|
||||
newId.text = ""
|
||||
@@ -198,6 +204,10 @@ ColumnLayout {
|
||||
connection: root.connection
|
||||
medium: root.medium
|
||||
newId: newId.text
|
||||
|
||||
onThreePIdAdded: threePIdModel.refreshModel()
|
||||
onThreePIdRemoved: threePIdModel.refreshModel()
|
||||
onThreePIdUnbound: threePIdModel.refreshModel()
|
||||
}
|
||||
|
||||
QtObject {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user