Compare commits

..

1 commit

Author SHA1 Message Date
Aleix Pol
a2ec47b2a6 virtualmonitor: Allow using krdpserver to extend to another device 2024-11-17 15:36:45 +01:00
11 changed files with 149 additions and 50 deletions

View file

@ -132,7 +132,6 @@
<p xml:lang="nl">KDE Connect maakt dat uw telefoon en computer beter samenwerken: deel uw klembord en heb toegang tot bestanden tussen apparaten, verander uw telefoon in een afstandsbediening voor uw computer, zoek uw telefoon wanneer het achter uw bank is gevallen, bekijk uw telefoonmeldingen vanuit uw computer en veel meer!</p>
<p xml:lang="nn">KDE Connect lèt deg kopla telefonen din og datamaskina di saman. Du kan dela utklippstavle, få tilgang til filer på tvers av einingane, bruka telefonen som fjernkontroll for datamaskina, finn att telefonen når han har dotte ned bak sofaputene, sjå varslingar frå telefonen på datamaskina  og mykje anna!</p>
<p xml:lang="pl">KDE Connect sprawia, że twój telefon i komputer lepiej współpracują: udostępnianie twojego schowka i dostęp do plików między urządzeniami, obsługa komputera z telefonu, znajdowanie telefonu, gdy wpadnie za łóżko, oglądanie powiadomień z telefonu na komputerze i wiele więcej!</p>
<p xml:lang="pt-BR">O KDE Connect faz com que seu telefone e computador funcionem melhor juntos: compartilhe sua área de transferência e acesse arquivos entre dispositivos, transforme seu telefone em um controle remoto para seu computador, encontre seu telefone quando ele escorregar para o encosto do sofá, veja as notificações do seu telefone no computador e muito mais!</p>
<p xml:lang="sl">KDE Connect izboljša skupno delovanje vašega telefona in računalnika: delite svoje odložišče in dostopajte do datotek med napravami, spremenite svoj telefon v daljinski upravljalnik za svoj računalnik, poiščite svoj telefon, ko je zdrsnil za naslonjalo vašega kavča, oglejte si telefonska obvestila iz vašega računalnika in še veliko več!</p>
<p xml:lang="sv">KDE-anslut får din telefon och dator att fungera bättre tillsammans: dela klippbordet och få tillgång till filer mellan apparater, förvandla telefonen till en fjärrkontroll för datorn, hitta telefonen när den har glidit ner på baksidan av soffan, se telefonunderrättelser från datorn och mycket mer.</p>
<p xml:lang="tr">KDE Bağlan, telefonunuzun ve bilgisayarınızın birlikte daha iyi çalışmasını sağlar: Panonuzu paylaşın ve dosyalara başka aygıtlardan erişin, telefonunuzu bilgisayarınızın uzaktan kumandasına dönüştürün, telefonunuz koltuğunuzun arkasına kaydığında onu bulun, telefon bildirimlerinizi bilgisayarınızdan görün ve çok daha fazlasını yapın!</p>
@ -179,7 +178,7 @@
<value key="KDE::google_play">https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp</value>
<value key="KDE::windows_store">https://www.microsoft.com/store/apps/9n93mrmsxbf0</value>
<value key="KDE::app_store">https://apps.apple.com/app/kde-connect/id1580245991</value>
<value key="KDE::supporters">[fat_malama](https://www.instagram.com/fat_malama/); Alexandru Traistaru; Neeko iko; Daniel Lloyd-Miller; [mdPlusPlus](https://github.com/mdPlusPlus)</value>
<value key="KDE::supporters">[fat_malama](https://www.instagram.com/fat_malama/); Alexandru Traistaru; Neeko iko; Daniel Lloyd-Miller; mdPlusPlus</value>
</custom>
<releases>
<release version="24.08.3" date="2024-11-07"/>

View file

@ -26,8 +26,6 @@
"Description[nn]": "Set opp einingssynkronisering",
"Description[pa]": "ਡਿਵਾਈਸ ਸੈਕਰੋਨਾਈਜ਼ੇਸ਼ਨ ਦੀ ਸੰਰਚਨਾ",
"Description[pl]": "Ustawienia synchronizacji urządzenia",
"Description[pt_BR]": "Configurar sincronização do dispositivo",
"Description[ru]": "Настройка синхронизации устройства",
"Description[sl]": "Konfiguriraj sinhronizacijo naprave",
"Description[sv]": "Anpassa enhetssynkronisering",
"Description[ta]": "சாதன ஒத்திசைவு அமைப்புகள்",
@ -106,7 +104,6 @@
"X-KDE-Keywords[nl]": "netwerk,kde verbinden,telefoon,sync,mobiel,android,ios,bestanden verzenden,bestanden delen,bestanden overdragen,bestanden ontvangen,apparaten,apparaat,synchronisatie,oproepen,telefoon,smartphone,contactpersonen,sms,telefoonmeldingen,volumebesturing,systeemvolume,ringtone,geluid afspelen,presentatie,foto maken,gedeeld klembord,connectiviteitsmonitor,invoer op afstand,muis op afstand,toetsenbord op afstand,mpris,telefoonintegratie,commando's,apparaat vergrendelen,multimediabesturing,sftp,delen",
"X-KDE-Keywords[nn]": "nettverk,kde connect,kopla til,tilkopling,telefon,synkroniser,mobil,android,ios,send filer,overfør filer,ta imot filer,einingar,eining,synkronisering,samtale,samtalar,samtaler,anrop,oppringing,ringje,smarttelefon,kontaktar,adressebok,sms,varslingar,lydstyrke,systemlydstyrke,ringjetone,spel lyd,presentasjon,ta bilete,ta foto,delt utklippstavle,del utklippstavle,sambandsovervaking,tilkoplingsovervaking,fjerntastatur,fjernstyring,fjernmus,mpris,telefonintegrasjon,kommandoar,lås eining,multimediakontroll,sftp,bla gjennom telefon,del,deling",
"X-KDE-Keywords[pl]": "sieć,kde connect,podłącz,telefon,synchronizacja,komórka,android,ios,wyślij pliki,udostępnij pliki,prześlij pliki,pobierz pliki,urządzenia,urządzenie,synchronizacja,rozmowy,telefon,smartfon,kontakty,sms,powiadomienia na telefonie,sterowanie głośnością,głośność systemowa,dzwonek,odtwórz dźwięk,prezentacja,zrób zdjęcie,zrób zdjęcie,współdzielony schowek,monitor łączności,zdalna obsługa,zdalna mysz,zdalna klawiatura,mpris,integracja z telefonem,polecenia,zblokuj urządzenie,sterowani multimediami,sftp,przeglądanie telefonu,udostępnij",
"X-KDE-Keywords[pt_BR]": "rede, kde connect, conectar, telefone, sincronizar, celular, android, ios, enviar arquivos, compartilhar arquivos, transferir arquivos, receber arquivos, dispositivos, dispositivo, sincronização, chamadas, telefone, smartphone, contatos, sms, notificações do telefone, controlar volume, volume do sistema, toque, reproduzir som, apresentação, tirar foto, tirar foto, área de transferência compartilhada, monitor de conectividade, entrada remota, mouse remoto, teclado remoto, mpris, integração do telefone, comandos, bloquear dispositivo, controle multimídia, sftp, navegar no telefone, compartilhar",
"X-KDE-Keywords[ru]": "network,kde connect,connect,phone,sync,mobile,android,ios,send files,share files,transfer files,receive files,devices,device,synchronization,calls,telephone,smartphone,contacts,sms,phone notifications,control volume,system volume,ringtone,play sound,presentation,take picture,take photo,shared clipboard,conectivity monitor,remote input,remote mouse,remote keyboard,mpris,phone integration,commands,lock device,multimedia control,sftp,browse phone,share,подключиться,телефон,синхронизировать,мобильный,андроид,отправить файлы,поделиться файлами,передать файлы,получить файлы,устройства,устройство,синхронизация,звонки,вызовы,смартфон,контакты,смс,уведомления на телефоне,управлять громкостью,системная громкость,рингтон,воспроизвести звук,презентация,сделать снимок,общий буфер обмена,мониторинг подключения,удалённый ввод,удалённая мышь,удалённая клавиатура,интеграция с телефоном,команды,заблокировать устройство,управление мультимедиа,общий доступ,опубликовать",
"X-KDE-Keywords[sl]": "omrežje,kde connect,povezava,telefon,sinhronizacija,mobilnik,android,ios,pošiljanje datotek,souporaba datotek,prenos datotek,prejemanje datotek,naprave,naprava,sinhronizacija,klici,telefon,pametni telefon,stiki,sms,telefonska obvestila,nadzor glasnosti,glasnost sistema,melodija zvonjenja,predvajanje zvoka,predstavitev,slikanje,fotografiranje,skupno odložišče,nadzor povezljivosti, oddaljeni vnos,oddaljena miška,oddaljena tipkovnica,mpris,integracija telefona, ukazi,zaklepanje naprave,večpredstavnostni nadzor,sftp, brskanje po telefonu,skupni disk",
"X-KDE-Keywords[sv]": "nätverk,kde anslut,anslut,telefon,synkronisera,mobil,android,ios,skicka filer,dela filer,överför filer,ta emot filer,apparater,apparat,synkronisering,samtal,telefon,smart telefon,kontakter,sms,telefonunderrättelser,kontrollera volym,systemvolym,rington,spela ljud,presentation,ta bild,ta foto,delat klippbord,anslutningsövervakare,fjärrinmatning,fjärrmus,fjärrtangentbord,mpris,telefonintegrering,kommandon,lås apparat,multimediastyrning,sftp,bläddra på telefon,dela",

View file

@ -74,8 +74,6 @@
"Description[nn]": "Handsam tilkopla einingar",
"Description[pa]": "ਕਨੈਕਟ ਹੋਏ ਡਿਵਾਈਸਾਂ ਦਾ ਇੰਤਜ਼ਾਮ",
"Description[pl]": "Zarządzaj podłączonymi urządzeniami",
"Description[pt_BR]": "Gerenciar dispositivos conectados",
"Description[ru]": "Управление подключёнными устройствами",
"Description[sl]": "Upravljaj povezane naprave",
"Description[sv]": "Hantera anslutna apparater",
"Description[ta]": "இணைந்துள்ள சாதனங்களை நிர்வகிக்க விடும்",

View file

@ -46,13 +46,33 @@ void VirtualMonitorPlugin::stop()
m_process = nullptr;
}
static bool krdpHasVirtualMonitor()
{
static std::optional<bool> hasIt;
if (!hasIt.has_value()) {
QProcess p;
p.start(QS("krdpserver"), {QS("--help")});
if (!p.waitForStarted()) {
*hasIt = false;
return false;
}
if (!p.waitForFinished(1000)) {
*hasIt = false;
return false;
}
hasIt = p.readAllStandardOutput().contains("--virtual-monitor");
}
return *hasIt;
}
void VirtualMonitorPlugin::connected()
{
// Get local capabilities
// We test again, since the user may have installed the necessary packages in the meantime
m_capabilitiesLocal.vncClient = checkVncClient();
m_capabilitiesLocal.virtualMonitor = !QStandardPaths::findExecutable(QS("krfb-virtualmonitor")).isEmpty();
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Local device supports VNC:" << m_capabilitiesLocal.vncClient;
m_capabilitiesLocal.rdpClient = checkRdpClient();
m_capabilitiesLocal.virtualMonitor = !QStandardPaths::findExecutable(QS("krfb-virtualmonitor")).isEmpty() || krdpHasVirtualMonitor();
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Local device supports VNC:" << m_capabilitiesLocal.vncClient << "RDP: " << m_capabilitiesLocal.rdpClient;
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Local device supports Virtual Monitor:" << m_capabilitiesLocal.virtualMonitor;
auto screen = QGuiApplication::primaryScreen();
@ -66,6 +86,7 @@ void VirtualMonitorPlugin::connected()
{QS("scale"), screen->devicePixelRatio()},
}}},
{QS("supports_vnc"), m_capabilitiesLocal.vncClient},
{QS("supports_rdp"), m_capabilitiesLocal.rdpClient},
{QS("supports_virt_mon"), m_capabilitiesLocal.virtualMonitor},
});
sendPacket(np);
@ -88,7 +109,11 @@ void VirtualMonitorPlugin::receivePacket(const NetworkPacket &received)
}
QUrl url;
url.setScheme(received.get<QString>(QS("protocol"), QS("vnc")));
if (m_capabilitiesRemote.rdpClient) {
url.setScheme(received.get<QString>(QS("protocol"), QS("rdp")));
} else {
url.setScheme(received.get<QString>(QS("protocol"), QS("vnc")));
}
url.setUserName(received.get<QString>(QS("username"), QS("user")));
url.setPassword(received.get<QString>(QS("password")));
url.setPort(received.get<int>(QS("port"), DEFAULT_PORT));
@ -111,6 +136,7 @@ void VirtualMonitorPlugin::receivePacket(const NetworkPacket &received)
// Get device's capabilities
m_capabilitiesRemote.vncClient = received.get<bool>(QS("supports_vnc"), false);
m_capabilitiesRemote.rdpClient = received.get<bool>(QS("supports_rdp"), false);
m_capabilitiesRemote.virtualMonitor = received.get<bool>(QS("supports_virt_mon"), false);
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Remote device supports VNC:" << m_capabilitiesRemote.vncClient;
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Remote device supports Virtual Monitor:" << m_capabilitiesRemote.virtualMonitor;
@ -131,9 +157,19 @@ bool VirtualMonitorPlugin::requestVirtualMonitor()
}
qCDebug(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Requesting virtual display " << device()->name();
bool ret = false;
if (m_capabilitiesRemote.rdpClient && krdpHasVirtualMonitor()) {
ret = requestRdp();
} else {
ret = requestVnc();
}
return ret;
}
uint VirtualMonitorPlugin::s_port = DEFAULT_PORT;
bool VirtualMonitorPlugin::requestVnc()
{
QUuid uuid = QUuid::createUuid();
static int s_port = DEFAULT_PORT;
const QString port = QString::number(s_port++);
m_process = new QProcess(this);
@ -154,7 +190,7 @@ bool VirtualMonitorPlugin::requestVirtualMonitor()
if (m_retries < 5 && (exitCode == 1 || exitStatus == QProcess::CrashExit)) {
m_retries++;
requestVirtualMonitor();
requestVnc();
} else {
m_process->deleteLater();
m_process = nullptr;
@ -177,6 +213,55 @@ bool VirtualMonitorPlugin::requestVirtualMonitor()
return true;
}
bool VirtualMonitorPlugin::requestRdp()
{
QUuid uuid = QUuid::createUuid();
const QString port = QString::number(s_port++);
m_process = new QProcess(this);
m_process->setProgram(QS("krdpserver"));
const QString scale = m_remoteResolution.value(QLatin1String("scale")).toString();
QStringList args = {QS("--virtual-monitor"),
m_remoteResolution.value(QLatin1String("resolution")).toString() + u'@' + scale,
QS("--username"),
QS("user"),
QS("--password"),
uuid.toString(),
QS("--port"),
port};
static const bool s_plasma = qgetenv("XDG_CURRENT_DESKTOP").compare("KDE", Qt::CaseInsensitive) == 0;
if (s_plasma) {
args << QS("--plasma");
}
m_process->setArguments(args);
connect(m_process, &QProcess::finished, this, [this](int exitCode, QProcess::ExitStatus exitStatus) {
qCWarning(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "krdp virtual display finished with" << device()->name() << m_process->readAllStandardError();
if (m_retries < 5 && (exitCode == 1 || exitStatus == QProcess::CrashExit)) {
m_retries++;
requestVnc();
} else {
m_process->deleteLater();
m_process = nullptr;
}
});
m_process->start();
if (!m_process->waitForStarted()) {
qCWarning(KDECONNECT_PLUGIN_VIRTUALMONITOR) << "Failed to start krfb-virtualmonitor" << m_process->error() << m_process->errorString();
return false;
}
NetworkPacket np(PACKET_TYPE_VIRTUALMONITOR_REQUEST);
np.set(QS("protocol"), QS("rdp"));
np.set(QS("username"), QS("user"));
np.set(QS("password"), uuid.toString());
np.set(QS("port"), port);
sendPacket(np);
return true;
}
bool VirtualMonitorPlugin::checkVncClient() const
{
#if defined(Q_OS_MAC)
@ -192,6 +277,16 @@ bool VirtualMonitorPlugin::checkVncClient() const
#endif
}
bool VirtualMonitorPlugin::checkRdpClient() const
{
// krdc is default on KDE
if (!QStandardPaths::findExecutable(QS("krdc")).isEmpty())
return true;
// Check if another client is available
return checkDefaultSchemeHandler(QS("rdp"));
}
bool VirtualMonitorPlugin::checkDefaultSchemeHandler(const QString &scheme) const
{
// TODO: macOS built-in tool: defaults read com.apple.LaunchServices/com.apple.launchservices.secure

View file

@ -48,11 +48,15 @@ public:
private:
void stop();
bool checkVncClient() const;
bool checkRdpClient() const;
bool checkDefaultSchemeHandler(const QString &scheme) const;
bool requestVnc();
bool requestRdp();
struct Capabilities {
bool virtualMonitor = false;
bool vncClient = false;
bool rdpClient = false;
};
Capabilities m_capabilitiesLocal;
@ -61,4 +65,6 @@ private:
QProcess *m_process = nullptr;
QJsonObject m_remoteResolution;
uint m_retries = 0;
static uint s_port;
};

View file

@ -4,13 +4,13 @@
#
# André Marcelo Alvarenga <alvarenga@kde.org>, 2020.
# Luiz Fernando Ranghetti <elchevive@opensuse.org>, 2021, 2023.
# SPDX-FileCopyrightText: 2023, 2024 Geraldo Simiao <geraldosimiao@fedoraproject.org>
# Geraldo Simiao <geraldosimiao@fedoraproject.org>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: kdeconnect-kde\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-12 00:38+0000\n"
"PO-Revision-Date: 2024-11-25 01:22-0300\n"
"PO-Revision-Date: 2023-08-11 00:52-0300\n"
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
"Language: pt_BR\n"
@ -18,17 +18,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 24.08.3\n"
"X-Generator: Lokalize 23.04.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "André Marcelo Alvarenga, Geraldo Simião"
msgstr "André Marcelo Alvarenga"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "alvarenga@kde.org, geraldosimiao@fedoraproject.org"
msgstr "alvarenga@kde.org"
#: deviceindicator.cpp:53
#, kde-format
@ -47,9 +47,10 @@ msgid "Ring device"
msgstr "Fazer o dispositivo tocar"
#: deviceindicator.cpp:95
#, kde-format
#, fuzzy, kde-format
#| msgid "Send a file/URL"
msgid "Send files"
msgstr "Enviar arquivos"
msgstr "Enviar um arquivo/URL"
#: deviceindicator.cpp:117
#, kde-format

View file

@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: kdeconnect-kcm\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
"PO-Revision-Date: 2024-11-25 01:24-0300\n"
"PO-Revision-Date: 2024-07-19 18:23-0300\n"
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
"Language: pt_BR\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 24.08.3\n"
"X-Generator: Lokalize 24.05.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@ -31,9 +31,10 @@ msgid "Your emails"
msgstr "alvarenga@kde.org, geraldosimiao@fedoraproject.org"
#: kcm.cpp:88
#, kde-format
#, fuzzy, kde-format
#| msgid "KDE Connect Settings"
msgid "Error: KDE Connect is not running"
msgstr "Erro: O KDE Connect não está sendo executado"
msgstr "Configurações do KDE Connect"
#: kcm.cpp:204
#, kde-format
@ -110,7 +111,7 @@ msgstr "(Status)"
#: kcm.ui:238
#, kde-format
msgid "KSqueezedTextLabel"
msgstr "KSqueezedTextLabel"
msgstr ""
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
#: kcm.ui:269
@ -182,22 +183,24 @@ msgstr ""
#: list.qml:52
#, kde-format
msgid "Remembered"
msgstr "Salvo"
msgstr ""
#: list.qml:54
#, kde-format
#, fuzzy, kde-format
#| msgid "Available plugins"
msgid "Available"
msgstr "Disponível"
msgstr "Plugins disponíveis"
#: list.qml:56
#, kde-format
#, fuzzy, kde-format
#| msgid "KDE Connect"
msgid "Connected"
msgstr "Conectado"
msgstr "KDE Connect"
#: list.qml:61
#, kde-format
msgid "No devices found"
msgstr "Nenhum dispositivo encontrado"
msgstr ""
#~ msgid "🔑 abababab"
#~ msgstr "🔑 abababab"

View file

@ -4,13 +4,12 @@
# SPDX-FileCopyrightText: 2020, 2024 Alexander Yavorsky <kekcuha@gmail.com>
# Дронова Юлия <juliette.tux@gmail.com>, 2021.
# Olesya Gerasimenko <translation-team@basealt.ru>, 2023.
# Alexander Yavorsky <kekcuha@gmail.com>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: kdeconnect-kde\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-12 00:38+0000\n"
"PO-Revision-Date: 2024-11-17 17:42+0300\n"
"PO-Revision-Date: 2024-01-10 21:59+0300\n"
"Last-Translator: Alexander Yavorsky <kekcuha@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
@ -19,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 21.08.3\n"
"X-Generator: Lokalize 23.08.4\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@ -48,9 +47,10 @@ msgid "Ring device"
msgstr "Позвонить на устройство"
#: deviceindicator.cpp:95
#, kde-format
#, fuzzy, kde-format
#| msgid "Send a file/URL"
msgid "Send files"
msgstr "Передать файлы"
msgstr "Передать файл/URL"
#: deviceindicator.cpp:117
#, kde-format

View file

@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
"PO-Revision-Date: 2024-11-17 17:44+0300\n"
"PO-Revision-Date: 2024-06-30 17:26+0300\n"
"Last-Translator: Alexander Yavorsky <kekcuha@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
@ -33,9 +33,10 @@ msgstr ""
"zawertun@gmail.com"
#: kcm.cpp:88
#, kde-format
#, fuzzy, kde-format
#| msgid "KDE Connect Settings"
msgid "Error: KDE Connect is not running"
msgstr "Ошибка: приложение KDE Connect не запущено"
msgstr "Настройка KDE Connect"
#: kcm.cpp:204
#, kde-format
@ -113,7 +114,7 @@ msgstr "(состояние)"
#: kcm.ui:238
#, kde-format
msgid "KSqueezedTextLabel"
msgstr "KSqueezedTextLabel"
msgstr ""
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
#: kcm.ui:269
@ -185,22 +186,25 @@ msgstr ""
#: list.qml:52
#, kde-format
msgid "Remembered"
msgstr "В списке"
msgstr ""
#: list.qml:54
#, kde-format
#, fuzzy, kde-format
#| msgid "Available plugins"
msgid "Available"
msgstr "Доступно"
msgstr "Доступные модули"
#: list.qml:56
#, kde-format
#, fuzzy, kde-format
#| msgid "KDE Connect"
msgid "Connected"
msgstr "Подключено"
msgstr "KDE Connect"
#: list.qml:61
#, kde-format
#, fuzzy, kde-format
#| msgid "No device selected."
msgid "No devices found"
msgstr "Не найдено ни одного устройства"
msgstr "Устройство не выбрано."
#~ msgid "🔑 abababab"
#~ msgstr "🔑 abababab"

View file

@ -80,7 +80,6 @@ GenericName[nl]=Instellingen voor synchronisatie van apparaat
GenericName[nn]=Innstillingar for einingssynkronisering
GenericName[pa]=ਿ ਿ
GenericName[pl]=Ustawienia synchronizacji urządzenia
GenericName[pt_BR]=Configurações da sincronização de dispositivo
GenericName[sl]=Nastavitve sinhronizacijenaprav
GenericName[sv]=Inställning av enhetssynkronisering
GenericName[ta]= ி
@ -115,7 +114,6 @@ Comment[nl]=Synchronisatie van apparaat configureren
Comment[nn]=Set opp einingssynkronisering
Comment[pa]=ਿ
Comment[pl]=Ustawienia synchronizacji urządzenia
Comment[pt_BR]=Configurar sincronização de dispositivo
Comment[sl]=Konfiguriraj sinhronizacijo naprav
Comment[sv]=Anpassa enhetssynkronisering
Comment[ta]= ி ி

View file

@ -73,7 +73,6 @@ GenericName[nl]=Tekstberichten versturen
GenericName[nn]=Tekstmeldingar
GenericName[pa]=
GenericName[pl]=Wiadomości tekstowe
GenericName[pt_BR]=Mensagem de texto
GenericName[sl]=Sporočanje besedil
GenericName[sv]=Textmeddelanden
GenericName[ta]=ி
@ -108,7 +107,6 @@ Comment[nl]=Lees en verzend SMS berichten op verbonden apparaten
Comment[nn]=Les og send tekstmeldingar på tilkopla einingar
Comment[pa]= ਿ SMS ਿ
Comment[pl]=Czytaj i wysyłaj wiadomości SMS na podłączonych urządzeniach
Comment[pt_BR]=Ler e executar comandos nos dispositivos conectados
Comment[sl]=Beri in pošiljaj SMS na povezanih napravah
Comment[sv]=Läs och skicka meddelanden via SMS på anslutna apparater
Comment[ta]= ி ி ி ி