From 496d2ecaa48fd63c31164a70c1f05711d58737d1 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Fri, 19 Aug 2016 07:03:12 +0000 Subject: [PATCH 01/24] SVN_SILENT made messages (after extraction) --- kdeconnect.appdata.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kdeconnect.appdata.xml b/kdeconnect.appdata.xml index 662aa9d88..a4daa5e48 100644 --- a/kdeconnect.appdata.xml +++ b/kdeconnect.appdata.xml @@ -14,6 +14,7 @@ KDE Connect KDE Connect KDE Connect + KDE Connect KDE Connect KDE Connect KDE Connect @@ -41,6 +42,7 @@ Απρόσκοπτη σύνδεση των συσκευών σας Seamless connection of your devices Conexión sin interrupciones de sus dispositivos + Sujuv ühendus oma seadmetega Saumaton yhteys laitteisiisi Connecter vos périphériques avec facilité Conexión constante entre dispositivos @@ -69,6 +71,7 @@

Το KDE Connect παρέχει ενοποίηση μεταξύ του Android κινητού σας και του γραφικού περιβάλλοντος του υπολογιστή σας.

KDE Connect provides integration between your Android phone and your desktop.

KDE Connect proporciona integración entre su teléfono Android y su escritorio.

+

KDE Connect võimaldab kokku siduda oma Androidi telefoni ja arvuti töölaua.

KDE Connect tarjoaa integraation Android-puhelimesi ja työpöytäsi välillä.

KDE Connect permet d'intégrer votre téléphone Android avec votre bureau.

KDE Connect fornece integración entre os seus teléfonos con Android e o seu computador de escritorio.

@@ -105,6 +108,7 @@ KDE Connect KDE Connect KDE Connect + KDE Connect KDE Connect KDE Connect KDE Connect From 1e574d18e3989dd04605fcfe65511c8e7405f4b4 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Fri, 19 Aug 2016 09:28:59 +0000 Subject: [PATCH 02/24] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- app/org.kde.kdeconnect.app.desktop | 3 +++ daemon/kdeconnect.desktop | 2 ++ daemon/kdeconnectd.desktop.cmake | 1 + .../kdeconnectsendfile.desktop | 2 ++ kcm/kcm_kdeconnect.desktop | 3 +++ kcm/org.kde.kdeconnect.kcm.desktop | 2 ++ org.kde.kdeconnect.nonplasma.desktop | 2 ++ plasmoid/package/metadata.desktop | 2 ++ plugins/kdeconnect.notifyrc | 18 ++++++++++++++++++ plugins/kdeconnect_plugin.desktop | 1 + .../kdeconnect_pausemusic_config.desktop | 1 + .../kdeconnect_runcommand_config.desktop | 1 + ...kdeconnect_sendnotifications_config.desktop | 1 + plugins/share/kdeconnect_share_config.desktop | 1 + 14 files changed, 40 insertions(+) diff --git a/app/org.kde.kdeconnect.app.desktop b/app/org.kde.kdeconnect.app.desktop index ea0788b08..942bba5d1 100644 --- a/app/org.kde.kdeconnect.app.desktop +++ b/app/org.kde.kdeconnect.app.desktop @@ -10,6 +10,7 @@ Name[de]=KDE-Connect-Anwendung Name[el]=Εφαρμογή KDE Connect Name[en_GB]=KDE Connect Application Name[es]=Aplicación KDE Connect +Name[et]=KDE Connecti rakendus Name[fi]=KDE Connect -sovellus Name[fr]=Application KDE Connect Name[gl]=Programa de KDE Connect @@ -40,6 +41,7 @@ GenericName[de]=Geräteabgleich GenericName[el]=Συγχρονισμός συσκευών GenericName[en_GB]=Device Synchronisation GenericName[es]=Sincronización de dispositivos +GenericName[et]=Seadmete sünkroonimine GenericName[fi]=Laitteiden synkronointi GenericName[fr]=Synchronisation de périphériques GenericName[gl]=Sincronización de dispositivos @@ -71,6 +73,7 @@ Comment[de]=Gleichen Sie alle Ihre Geräte ab Comment[el]=Όλες οι συσκευές σας σε μία Comment[en_GB]=Make all your devices one Comment[es]=Convertir todos sus dispositivos en uno +Comment[et]=Kõigi seadmete ühendamine Comment[fi]=Yhdistä kaikki laitteesi toisiinsa Comment[fr]=Unifiez vos périphériques Comment[gl]=Unifique os seus dispositivos. diff --git a/daemon/kdeconnect.desktop b/daemon/kdeconnect.desktop index 76c5fdab5..8331d3fd1 100644 --- a/daemon/kdeconnect.desktop +++ b/daemon/kdeconnect.desktop @@ -22,6 +22,7 @@ Name[de]=KDE-Connect Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect +Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect @@ -56,6 +57,7 @@ Comment[de]=KDE mit Ihren Smartphone verbinden Comment[el]=Σύνδεση του KDE με το έξυπνο τηλέφωνό σας Comment[en_GB]=Connect KDE with your smartphone Comment[es]=Conecte KDE con su teléfono móvil +Comment[et]=KDE ühendamine oma nutitelefoniga Comment[fi]=Yhdistä KDE älypuhelimeesi Comment[fr]=Connectez KDE avec votre smartphone Comment[gl]=Conectar KDE co seu teléfono móbil. diff --git a/daemon/kdeconnectd.desktop.cmake b/daemon/kdeconnectd.desktop.cmake index 5051a43ad..023201bb8 100644 --- a/daemon/kdeconnectd.desktop.cmake +++ b/daemon/kdeconnectd.desktop.cmake @@ -19,6 +19,7 @@ Name[de]=KDE-Connect-Dienst Name[el]=Δαίμονας του KDEConnect Name[en_GB]=KDEConnect daemon Name[es]=Demonio de KDE Connect +Name[et]=KDEConnecti deemon Name[fi]=KDEConnect-taustapalvelu Name[fr]=Démon KDE Connect Name[gl]=Servizo de KDE Connect diff --git a/fileitemactionplugin/kdeconnectsendfile.desktop b/fileitemactionplugin/kdeconnectsendfile.desktop index 7edef548e..b79982850 100644 --- a/fileitemactionplugin/kdeconnectsendfile.desktop +++ b/fileitemactionplugin/kdeconnectsendfile.desktop @@ -13,6 +13,7 @@ Name[de]=Datei mit KDE-Connect -Dienst versenden Name[el]=Αποστολή αρχείου μέσω της υπηρεσίας KDE Connect Name[en_GB]=Send file via KDE Connect service Name[es]=Enviar archivo usando el servicio KDE Connect +Name[et]=Faili saatmine KDE Connecti teenuse kaudu Name[fi]=Lähetä tiedosto KDE Connect -palvelulla Name[fr]=Envoyer un fichier via le service KDE Connect Name[gl]=Enviar un ficheiro mediante o servizo de KDE Connect @@ -46,6 +47,7 @@ X-KDE-Submenu[de]=Verbinden X-KDE-Submenu[el]=Σύνδεση X-KDE-Submenu[en_GB]=Connect X-KDE-Submenu[es]=Conectar +X-KDE-Submenu[et]=Ühendus X-KDE-Submenu[fi]=Yhdistä X-KDE-Submenu[fr]=Connecter X-KDE-Submenu[gl]=Conectar diff --git a/kcm/kcm_kdeconnect.desktop b/kcm/kcm_kdeconnect.desktop index b16d16392..2f3788fb0 100755 --- a/kcm/kcm_kdeconnect.desktop +++ b/kcm/kcm_kdeconnect.desktop @@ -23,6 +23,7 @@ Name[de]=KDE-Connect Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect +Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect @@ -55,6 +56,7 @@ Comment[de]=Verbinden und Abgleichen Ihrer Geräte Comment[el]=Σύνδεση και συγχρονισμός των συσκευών σας Comment[en_GB]=Connect and sync your devices Comment[es]=Conectar y sincronizar sus dispositivos +Comment[et]=Oma seadmete ühendamine ja sünkroonimine Comment[fi]=Yhdistä ja synkronoi laitteitasi Comment[fr]=Connectez et synchronisez vos périphériques Comment[gl]=Conecte e sincronice os seus dispositivos. @@ -88,6 +90,7 @@ X-KDE-Keywords[de]=Netzwerk,Android,Geräte X-KDE-Keywords[el]=Δίκτυο,Android,Συσκευές X-KDE-Keywords[en_GB]=Network,Android,Devices X-KDE-Keywords[es]=Red,Android,Dispositivos +X-KDE-Keywords[et]=Võrk,Android,Seadmed X-KDE-Keywords[fi]=Verkko,Android,Laitteet X-KDE-Keywords[fr]=Réseau,Android,Périphériques X-KDE-Keywords[gl]=rede,Android,dispositivos diff --git a/kcm/org.kde.kdeconnect.kcm.desktop b/kcm/org.kde.kdeconnect.kcm.desktop index 80c555902..aa766c659 100755 --- a/kcm/org.kde.kdeconnect.kcm.desktop +++ b/kcm/org.kde.kdeconnect.kcm.desktop @@ -14,6 +14,7 @@ Name[de]=KDE-Connect-Einstellungen Name[el]=Ρυθμίσεις KDE Connect Name[en_GB]=KDE Connect Settings Name[es]=Ajustes de KDE Connect +Name[et]=KDE Connecti seadistused Name[fi]=KDE Connectin asetukset Name[gl]=Configuración de KDE Connect Name[he]=הגדרות KDE Connect @@ -42,6 +43,7 @@ GenericName[de]=Verbinden und Abgleichen Ihrer Geräte GenericName[el]=Σύνδεση και συγχρονισμός των συσκευών σας GenericName[en_GB]=Connect and sync your devices GenericName[es]=Conectar y sincronizar sus dispositivos +GenericName[et]=Oma seadmete ühendamine ja sünkroonimine GenericName[fi]=Yhdistä ja synkronoi laitteitasi GenericName[fr]=Connectez et synchronisez vos périphériques GenericName[gl]=Conecte e sincronice os seus dispositivos diff --git a/org.kde.kdeconnect.nonplasma.desktop b/org.kde.kdeconnect.nonplasma.desktop index 0edf54864..0511cc12c 100755 --- a/org.kde.kdeconnect.nonplasma.desktop +++ b/org.kde.kdeconnect.nonplasma.desktop @@ -10,6 +10,7 @@ Name[de]=KDE-Connect-Monitor Name[el]=Εφαρμογή εποπτείας του KDE Connect Name[en_GB]=KDE Connect Monitor Name[es]=Monitor de KDE Connect +Name[et]=KDE Connecti monitor Name[fi]=KDE Connect -valvonta Name[gl]=Monitor de KDE Connect Name[he]=מנטר KDE Connect @@ -38,6 +39,7 @@ Comment[de]=Anzeige von Informationen über Ihre Geräte Comment[el]=Προβολή πληροφοριών σχετικά με τις συσκευές σας Comment[en_GB]=Display information about your devices Comment[es]=Mostrar información sobre sus dispositivos +Comment[et]=Teabe kuvamine seadmete kohta Comment[fi]=Näyttää tietoa laitteistasi Comment[gl]=Mostrar información sobre os dispositivos Comment[he]=הצג מידע עך ההתקנים שלך diff --git a/plasmoid/package/metadata.desktop b/plasmoid/package/metadata.desktop index eff8456ac..3e1284cb4 100644 --- a/plasmoid/package/metadata.desktop +++ b/plasmoid/package/metadata.desktop @@ -12,6 +12,7 @@ Name[de]=KDE-Connect Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect +Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect @@ -45,6 +46,7 @@ Comment[de]=Zeigt Benachrichtigungen von Ihren Geräten mit KDE-Connect Comment[el]=Προβολή ειδοποιήσεων από τις συσκευές σας με το KDE Connect Comment[en_GB]=Show notifications from your devices using KDE Connect Comment[es]=Mostrar notificaciones de sus dispositivos usando KDE Connect +Comment[et]=Seadmete märguannete näitamine KDE Connecti vahendusel Comment[fi]=Näytä laitteidesi ilmoitukset KDE Connectilla Comment[fr]=Afficher les notifications provenant de vos périphériques à l'aide de KDE Connect Comment[gl]=Mostrar notificacións de dispositivos usando KDE Connect. diff --git a/plugins/kdeconnect.notifyrc b/plugins/kdeconnect.notifyrc index dab77874b..de59ea456 100644 --- a/plugins/kdeconnect.notifyrc +++ b/plugins/kdeconnect.notifyrc @@ -13,6 +13,7 @@ Name[de]=KDE-Connect Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect +Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect @@ -46,6 +47,7 @@ Comment[de]=Benachrichtigungen von Ihren Geräten Comment[el]=Ειδοποιήσεις από τις συσκευές σας Comment[en_GB]=Notifications from your devices Comment[es]=Notificaciones de sus dispositivos +Comment[et]=Seadmete märguanded Comment[fi]=Laitteesi ilmoitukset Comment[fr]=Notifications provenant de vos périphériques Comment[gl]=Notificacións de dispositivos. @@ -81,6 +83,7 @@ Name[de]=Verbindungsanfrage Name[el]=Αίτημα σύζευξης Name[en_GB]=Pairing Request Name[es]=Petición de vinculación +Name[et]=Paardumissoov Name[fi]=Paripyyntö Name[fr]=Demande d'appariement Name[gl]=Solicitude de emparellamento @@ -111,6 +114,7 @@ Comment[de]=Verbindungsanfrage von einem Gerät erhalten Comment[el]=Λήφθηκε αίτημα σύζευξης από μια συσκευή Comment[en_GB]=Pairing request received from a device Comment[es]=Petición de vinculación recibida desde un dispositivo +Comment[et]=Seadmelt saadi paardumissoov Comment[fi]=Saatiin paripyyntö laitteelta Comment[gl]=Recibiuse unha solicitude de emparellamento dun dispositivo. Comment[he]=התקבלה בקשת התאמה מהתקן @@ -138,6 +142,7 @@ Name[de]=Eingehender Anruf Name[el]=Εισερχόμενη κλήση Name[en_GB]=Incoming Call Name[es]=Llamada entrante +Name[et]=Sisenev kõne Name[fi]=Saapuva puhelu Name[fr]=Appel entrant Name[gl]=Chamada entrante @@ -170,6 +175,7 @@ Comment[de]=Sie werden angerufen Comment[el]=Κάποιος σας καλεί Comment[en_GB]=Someone is calling you Comment[es]=Alguien le está llamando +Comment[et]=Keegi helistab sulle Comment[fi]=Sinulle soitetaan Comment[fr]=Quelqu'un vous appelle Comment[gl]=Está a recibir unha chamada de alguén. @@ -205,6 +211,7 @@ Name[de]=Verpasster Anruf Name[el]=Αναπάντητη κλήση Name[en_GB]=Missed Call Name[es]=Llamada perdida +Name[et]=Vastamata kõne Name[fi]=Vastaamaton puhelu Name[fr]=Appel manqué Name[gl]=Chamada perdida @@ -237,6 +244,7 @@ Comment[de]=Sie haben einen Anruf verpasst Comment[el]=Έχετε μια αναπάντητη κλήση Comment[en_GB]=You have a missed call Comment[es]=Tiene una llamada perdida +Comment[et]=Kõnele jäi vastamata Comment[fi]=Sinulla on vastaamaton puhelu Comment[fr]=Vous avez un appel manqué Comment[gl]=Ten unha chamada perdida. @@ -272,6 +280,7 @@ Name[de]=SMS empfangen Name[el]=Λήφθηκε SMS Name[en_GB]=SMS Received Name[es]=SMS recibido +Name[et]=SMS-i saamine Name[fi]=Saatiin tekstiviesti Name[fr]=SMS reçu Name[gl]=Recibiuse un SMS @@ -304,6 +313,7 @@ Comment[de]=Jemand hat Ihnen eine SMS gesendet Comment[el]=Κάποιος σας έστειλε SMS Comment[en_GB]=Someone sent you an SMS Comment[es]=Alguien le ha enviado un SMS +Comment[et]=Keegi saatis sulle SMS-i Comment[fi]=Sinulle lähetettiin tekstiviesti Comment[fr]=Quelqu'un vous a envoyé un SMS Comment[gl]=Recibiu unha mensaxe SMS de alguén. @@ -339,6 +349,7 @@ Name[de]=Akku-Ladestand niedrig Name[el]=Μπαταρία χαμηλή Name[en_GB]=Battery Low Name[es]=Batería baja +Name[et]=Aku laetus on madal Name[fi]=Akku vähissä Name[fr]=Batterie faible Name[gl]=Batería baixa @@ -370,6 +381,7 @@ Comment[de]=Der Ladestand Ihres Akkus ist niedrig Comment[el]=Η μπαταρία σας είναι σε χαμηλό επίπεδο Comment[en_GB]=Your battery is in low state Comment[es]=La batería está en nivel bajo +Comment[et]=Aku täituvus on madal Comment[fi]=Akkusi virta on vähissä Comment[fr]=Votre batterie est faible Comment[gl]=A batería está esgotándose. @@ -405,6 +417,7 @@ Name[de]=Ping empfangen Name[el]=Λήφθηκε ping Name[en_GB]=Ping Received Name[es]=Ping recibido +Name[et]=Pingi saamine Name[fi]=Saatiin tiedustelupaketti Name[fr]=Ping reçu Name[gl]=Recibiuse un ping @@ -437,6 +450,7 @@ Comment[de]=Ping empfangen Comment[el]=Λήφθηκε ping Comment[en_GB]=Ping received Comment[es]=Ping recibido +Comment[et]=Pingi saamine Comment[fi]=Saatiin tiedustelupaketti Comment[fr]=Ping reçu Comment[gl]=Recibiuse un “ping”. @@ -472,6 +486,7 @@ Name[de]=Allgemeine Benachrichtigung Name[el]=Γενική ειδοποίηση Name[en_GB]=Generic Notification Name[es]=Notificación genérica +Name[et]=Üldine märguanne Name[fi]=Yleinen ilmoitus Name[fr]=Notification Name[gl]=Notificación xenérica @@ -504,6 +519,7 @@ Comment[de]=Benachrichtigung eingegangen Comment[el]=Λήφθηκε ειδοποίηση Comment[en_GB]=Notification received Comment[es]=Notificación recibida +Comment[et]=Saadi märguanne Comment[fi]=Saatiin ilmoitus Comment[fr]=Notification reçue Comment[gl]=Recibiuse unha notificación. @@ -539,6 +555,7 @@ Name[de]=Dateiübertragung Name[el]=Μεταφορά αρχείου Name[en_GB]=File Transfer Name[es]=Transferencia de archivo +Name[et]=Failiedastus Name[fi]=Tiedostonsiirto Name[fr]=Transfert de fichiers Name[gl]=Transferencia dun ficheiro @@ -570,6 +587,7 @@ Comment[de]=Eingehende Datei Comment[el]=Εισερχόμενο αρχείο Comment[en_GB]=Incoming file Comment[es]=Archivo entrante +Comment[et]=Sisenev fail Comment[fi]=Saapuva tiedosto Comment[fr]=Fichier entrant Comment[gl]=Ficheiro entrante diff --git a/plugins/kdeconnect_plugin.desktop b/plugins/kdeconnect_plugin.desktop index 6e73b8845..ad7c03667 100644 --- a/plugins/kdeconnect_plugin.desktop +++ b/plugins/kdeconnect_plugin.desktop @@ -15,6 +15,7 @@ Name[de]=KDEConnect-Modul Name[el]=Πρόσθετο του KDEConnect Name[en_GB]=KDEConnect Plugin Name[es]=Complemento de KDEConnect +Name[et]=KDEConnecti plugin Name[fi]=KDE Connect -liitännäinen Name[fr]=Module externe KDEConnect Name[gl]=Complemento de KDE Connect diff --git a/plugins/pausemusic/kdeconnect_pausemusic_config.desktop b/plugins/pausemusic/kdeconnect_pausemusic_config.desktop index 418ee1b70..e4ec1547b 100644 --- a/plugins/pausemusic/kdeconnect_pausemusic_config.desktop +++ b/plugins/pausemusic/kdeconnect_pausemusic_config.desktop @@ -18,6 +18,7 @@ Name[de]=Modul-Einstellungen für das Anhalten der Musikwiedergabe Name[el]=Ρυθμίσεις προσθέτου παύσης μουσικής Name[en_GB]=Pause Music plugin settings Name[es]=Ajustes del complemento PauseMusic +Name[et]=Muusika peatamise plugina seadistused Name[fi]=Keskeytä musiikki -liitännäisen asetukset Name[fr]=Paramètres du module de mise en pause Name[gl]=Configuración do complemento para deter a música diff --git a/plugins/runcommand/kdeconnect_runcommand_config.desktop b/plugins/runcommand/kdeconnect_runcommand_config.desktop index 2ff954381..604e816fe 100644 --- a/plugins/runcommand/kdeconnect_runcommand_config.desktop +++ b/plugins/runcommand/kdeconnect_runcommand_config.desktop @@ -16,6 +16,7 @@ Name[de]=Modul-Einstellungen für Befehlsausführung Name[el]=Ρυθμίσεις προσθέτου εκτέλεσης εντολής Name[en_GB]=Run Command plugin settings Name[es]=Ajustes del complemento de ejecución de órdenes +Name[et]=Käsu käivitamise plugina seadistused Name[fi]=Suorita komento -liitännäisen asetukset Name[gl]=Configuración do complemento de orde de executar Name[he]=הגדרת התוסף הרץ פקודה diff --git a/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop b/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop index 24e02b84d..7d7b63cfe 100644 --- a/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop +++ b/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop @@ -16,6 +16,7 @@ Name[de]=Einstellungen für Benachrichtigungsabgleich-Modul Name[el]=Ρυθμίσεις πρόσθετου συγχρονισμού ειδοποιήσεων Name[en_GB]=Notification synchronisation plugin settings Name[es]=Preferencias del complemento de sincronización de notificaciones +Name[et]=Märguande sünkroonimise plugina seaditused Name[fi]=Ilmoitusten synkronointiliitännäisen asetukset Name[gl]=Configuración do complemento de sincronización de notificacións Name[he]=הגדרת התוסף סנכרון התראות diff --git a/plugins/share/kdeconnect_share_config.desktop b/plugins/share/kdeconnect_share_config.desktop index ccf5d4b83..08b62411d 100644 --- a/plugins/share/kdeconnect_share_config.desktop +++ b/plugins/share/kdeconnect_share_config.desktop @@ -18,6 +18,7 @@ Name[de]=Modul-Einstellungen für Veröffentlichung Name[el]=Ρυθμίσεις προσθέτου κοινής χρήσης Name[en_GB]=Share plugin settings Name[es]=Ajustes del complemento para compartir +Name[et]=Jagamisplugina seadistused Name[fi]=Jakoliitännäisen asetukset Name[fr]=Paramètres du module de partage Name[gl]=Configuración do complemento de compartir From f654e75820df7b9f4445f538c1cea51437393a6e Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 13:05:43 +0200 Subject: [PATCH 03/24] Improve how we handle the different plugin pages --- app/qml/DevicePage.qml | 38 +++++++++------------------- app/qml/FindDevicesPage.qml | 4 +-- app/qml/PluginItem.qml | 49 +++++++++++++++++++++++++++++++++++++ app/qml/mousepad.qml | 12 ++++----- app/qml/mpris.qml | 20 +++++++-------- app/resources.qrc | 1 + 6 files changed, 79 insertions(+), 45 deletions(-) create mode 100644 app/qml/PluginItem.qml diff --git a/app/qml/DevicePage.qml b/app/qml/DevicePage.qml index 213d1333f..1c5a83662 100644 --- a/app/qml/DevicePage.qml +++ b/app/qml/DevicePage.qml @@ -59,37 +59,21 @@ Kirigami.Page Layout.fillHeight: true Layout.fillWidth: true - Kirigami.BasicListItem { - readonly property var fu: PluginChecker { - id: mprisChecker - pluginName: "mpriscontrol" - } - enabled: mprisChecker.available + PluginItem { label: i18n("Multimedia control") - onClicked: pageStack.push( - "qrc:/qml/mpris.qml", - { mprisInterface: MprisDbusInterfaceFactory.create(deviceView.currentDevice.id()) } - ); + interfaceFactory: MprisDbusInterfaceFactory + component: "qrc:/qml/mpris.qml" + pluginName: "mprisremote" } - Kirigami.BasicListItem { - readonly property var fu: PluginChecker { - id: mousepadChecker - pluginName: "mousepad" - } - enabled: mousepadChecker.available + PluginItem { label: i18n("Remote input") - onClicked: pageStack.push( - "qrc:/qml/mousepad.qml", - { remoteControlInterface: RemoteControlDbusInterfaceFactory.create(deviceView.currentDevice.id()) } - ); + interfaceFactory: RemoteControlDbusInterfaceFactory + component: "qrc:/qml/mousepad.qml" + pluginName: "remotecontrol" } - Kirigami.BasicListItem { - readonly property var fu: PluginChecker { - id: lockdeviceChecker - pluginName: "lockdevice" - } - enabled: lockdeviceChecker.available - property var lockIface: LockDeviceDbusInterfaceFactory.create(deviceView.currentDevice.id()) + PluginItem { + readonly property var lockIface: LockDeviceDbusInterfaceFactory.create(deviceView.currentDevice.id()) + pluginName: "lockdevice" label: lockIface.isLocked ? i18n("Unlock") : i18n("Lock") onClicked: { lockIface.isLocked = !lockIface.isLocked; diff --git a/app/qml/FindDevicesPage.qml b/app/qml/FindDevicesPage.qml index 622ad4209..b555e72b5 100644 --- a/app/qml/FindDevicesPage.qml +++ b/app/qml/FindDevicesPage.qml @@ -55,8 +55,8 @@ Kirigami.Page label: display + "\n" + toolTip enabled: !(status & DevicesModel.Paired) onClicked: { - root.pageStack.clear() - root.pageStack.push( + pageStack.clear() + pageStack.push( "qrc:/qml/DevicePage.qml", {currentDevice: device} ); diff --git a/app/qml/PluginItem.qml b/app/qml/PluginItem.qml new file mode 100644 index 000000000..483bbbee8 --- /dev/null +++ b/app/qml/PluginItem.qml @@ -0,0 +1,49 @@ +/* + * Copyright 2015 Aleix Pol Gonzalez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License or (at your option) version 3 or any later version + * accepted by the membership of KDE e.V. (or its successor approved + * by the membership of KDE e.V.), which shall act as a proxy + * defined in Section 14 of version 3 of the license. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Layouts 1.1 +import org.kde.kirigami 1.0 as Kirigami +import org.kde.kdeconnect 1.0 + +Kirigami.BasicListItem +{ + property alias pluginName: checker.pluginName + property var interfaceFactory + property string component + + readonly property var checker: PluginChecker { + id: checker + deviceId: deviceView.currentDevice.id() + } + enabled: checker.available + onClicked: { + if (component === "") + return; + + var obj = interfaceFactory.create(checker.deviceId); + var page = pageStack.push( + component, + { pluginInterface: obj } + ); + obj.parent = page + } +} diff --git a/app/qml/mousepad.qml b/app/qml/mousepad.qml index a3b1f020d..1091ff73d 100644 --- a/app/qml/mousepad.qml +++ b/app/qml/mousepad.qml @@ -27,7 +27,7 @@ Kirigami.Page { id: mousepad title: i18n("Remote Control") - property QtObject remoteControlInterface + property QtObject pluginInterface ColumnLayout { @@ -39,14 +39,14 @@ Kirigami.Page Layout.fillHeight: true property var lastPos: Qt.point(-1, -1) - onClicked: mousepad.remoteControlInterface.sendCommand("singleclick", true); + onClicked: mousepad.pluginInterface.sendCommand("singleclick", true); onPositionChanged: { if (lastPos.x > -1) { // console.log("move", mouse.x, mouse.y, lastPos) var delta = Qt.point(mouse.x-lastPos.x, mouse.y-lastPos.y); - remoteControlInterface.moveCursor(delta); + pluginInterface.moveCursor(delta); } lastPos = Qt.point(mouse.x, mouse.y); } @@ -59,15 +59,15 @@ Kirigami.Page Button { Layout.fillWidth: true - onClicked: mousepad.remoteControlInterface.sendCommand("singleclick", true); + onClicked: mousepad.pluginInterface.sendCommand("singleclick", true); } Button { Layout.fillWidth: true - onClicked: mousepad.remoteControlInterface.sendCommand("middleclick", true); + onClicked: mousepad.pluginInterface.sendCommand("middleclick", true); } Button { Layout.fillWidth: true - onClicked: mousepad.remoteControlInterface.sendCommand("rightclick", true); + onClicked: mousepad.pluginInterface.sendCommand("rightclick", true); } } } diff --git a/app/qml/mpris.qml b/app/qml/mpris.qml index 7c2f6ba68..3399de32f 100644 --- a/app/qml/mpris.qml +++ b/app/qml/mpris.qml @@ -26,7 +26,7 @@ import org.kde.kirigami 1.0 as Kirigami Kirigami.Page { id: root - property QtObject mprisInterface + property QtObject pluginInterface title: i18n("Multimedia Controls") ColumnLayout @@ -34,42 +34,42 @@ Kirigami.Page anchors.fill: parent Component.onCompleted: { - mprisInterface.requestPlayerList(); + pluginInterface.requestPlayerList(); } Item { Layout.fillHeight: true } ComboBox { Layout.fillWidth: true - model: root.mprisInterface.playerList - onCurrentTextChanged: root.mprisInterface.player = currentText + model: root.pluginInterface.playerList + onCurrentTextChanged: root.pluginInterface.player = currentText } Label { Layout.fillWidth: true - text: root.mprisInterface.nowPlaying + text: root.pluginInterface.nowPlaying } RowLayout { Layout.fillWidth: true Button { Layout.fillWidth: true iconName: "media-skip-backward" - onClicked: root.mprisInterface.sendAction("Previous") + onClicked: root.pluginInterface.sendAction("Previous") } Button { Layout.fillWidth: true - iconName: root.mprisInterface.isPlaying ? "media-playback-pause" : "media-playback-start" - onClicked: root.mprisInterface.sendAction("PlayPause"); + iconName: root.pluginInterface.isPlaying ? "media-playback-pause" : "media-playback-start" + onClicked: root.pluginInterface.sendAction("PlayPause"); } Button { Layout.fillWidth: true iconName: "media-skip-forward" - onClicked: root.mprisInterface.sendAction("Next") + onClicked: root.pluginInterface.sendAction("Next") } } RowLayout { Layout.fillWidth: true Label { text: i18n("Volume:") } Slider { - value: root.mprisInterface.volume + value: root.pluginInterface.volume maximumValue: 100 Layout.fillWidth: true } diff --git a/app/resources.qrc b/app/resources.qrc index f9e4832b9..924e25825 100644 --- a/app/resources.qrc +++ b/app/resources.qrc @@ -3,6 +3,7 @@ qml/main.qml qml/mpris.qml qml/mousepad.qml + qml/PluginItem.qml qml/DevicePage.qml qml/FindDevicesPage.qml From a96818113df3dd35aea153fcd007262396d65d9a Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 13:08:36 +0200 Subject: [PATCH 04/24] Simplify the PluginChecker Make the connection property readonly Alias the device into another property --- plasmoid/declarativeplugin/qml/PluginChecker.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plasmoid/declarativeplugin/qml/PluginChecker.qml b/plasmoid/declarativeplugin/qml/PluginChecker.qml index 8cb36835e..194b4fb6a 100644 --- a/plasmoid/declarativeplugin/qml/PluginChecker.qml +++ b/plasmoid/declarativeplugin/qml/PluginChecker.qml @@ -28,11 +28,12 @@ QtObject { property string deviceId: "" property string pluginName: "" - readonly property variant device: DeviceDbusInterfaceFactory.create(deviceId) property bool available: false + readonly property alias device: conn.target - property Connections connection: Connections { - target: device + readonly property Connections connection: Connections { + id: conn + target: DeviceDbusInterfaceFactory.create(root.deviceId) onPluginsChanged: pluginsChanged() } From f765e9c0a8fe11601d0b874453467d9b5ab6db54 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 13:21:40 +0200 Subject: [PATCH 05/24] Actually compare the old plugin map We were comparing to the result after removing all the actually used plugins --- core/device.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/device.cpp b/core/device.cpp index fb89cee56..a803bc175 100644 --- a/core/device.cpp +++ b/core/device.cpp @@ -94,7 +94,7 @@ QStringList Device::loadedPlugins() const void Device::reloadPlugins() { - QHash newPluginMap; + QHash newPluginMap, oldPluginMap = m_plugins; QMultiMap newPluginsByIncomingCapability; if (isTrusted() && isReachable()) { //Do not load any plugin for unpaired devices, nor useless loading them for unreachable devices @@ -124,7 +124,7 @@ void Device::reloadPlugins() } } - const bool differentPlugins = m_plugins != newPluginMap; + const bool differentPlugins = oldPluginMap != newPluginMap; //Erase all left plugins in the original map (meaning that we don't want //them anymore, otherwise they would have been moved to the newPluginMap) From 6ece5665cd9aa3bfd4b77e94a540d36baadfe5db Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 13:53:40 +0200 Subject: [PATCH 06/24] Expose nameChanged through dbus --- interfaces/dbusinterfaces.cpp | 1 + interfaces/dbusinterfaces.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/interfaces/dbusinterfaces.cpp b/interfaces/dbusinterfaces.cpp index ff2f81577..1c681b33a 100644 --- a/interfaces/dbusinterfaces.cpp +++ b/interfaces/dbusinterfaces.cpp @@ -45,6 +45,7 @@ DeviceDbusInterface::DeviceDbusInterface(const QString& id, QObject* parent) , m_id(id) { connect(this, &OrgKdeKdeconnectDeviceInterface::trustedChanged, this, &DeviceDbusInterface::trustedChangedProxy); + connect(this, &OrgKdeKdeconnectDeviceInterface::nameChanged, this, &DeviceDbusInterface::nameChangedProxy); } DeviceDbusInterface::~DeviceDbusInterface() diff --git a/interfaces/dbusinterfaces.h b/interfaces/dbusinterfaces.h index 20fa086d7..286c9cbe7 100644 --- a/interfaces/dbusinterfaces.h +++ b/interfaces/dbusinterfaces.h @@ -60,6 +60,7 @@ class KDECONNECTINTERFACES_EXPORT DeviceDbusInterface // TODO: Workaround because OrgKdeKdeconnectDeviceInterface is not generating // the signals for the properties Q_PROPERTY(bool isTrusted READ isTrusted NOTIFY trustedChangedProxy) + Q_PROPERTY(QString name READ name NOTIFY nameChangedProxy) public: explicit DeviceDbusInterface(const QString& deviceId, QObject* parent = nullptr); @@ -69,6 +70,7 @@ public: Q_SCRIPTABLE void pluginCall(const QString &plugin, const QString &method); Q_SIGNALS: + void nameChangedProxy(const QString &name); void trustedChangedProxy(bool paired); private: From a89634c2b63caef04f52d1634c69ae11d5df5d5d Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 17:53:58 +0200 Subject: [PATCH 07/24] Don't show unavailable plugins --- app/qml/PluginItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/qml/PluginItem.qml b/app/qml/PluginItem.qml index 483bbbee8..ec6afde75 100644 --- a/app/qml/PluginItem.qml +++ b/app/qml/PluginItem.qml @@ -34,7 +34,7 @@ Kirigami.BasicListItem id: checker deviceId: deviceView.currentDevice.id() } - enabled: checker.available + visible: checker.available onClicked: { if (component === "") return; From 64e0250d99f0c8f6233ca9844d8789e579ff810f Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 17:54:15 +0200 Subject: [PATCH 08/24] Properly case unpair --- app/qml/DevicePage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/qml/DevicePage.qml b/app/qml/DevicePage.qml index 1c5a83662..668dabcc0 100644 --- a/app/qml/DevicePage.qml +++ b/app/qml/DevicePage.qml @@ -45,7 +45,7 @@ Kirigami.Page property list actions: [ Kirigami.Action { onTriggered: deviceView.currentDevice.unpair() - text: i18n("UnPair") + text: i18n("Unpair") }, Kirigami.Action { text: i18n("Send Ping") From aef02c0cce9c8286bd6234c7390e7c21c44a51f3 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 17:54:25 +0200 Subject: [PATCH 09/24] Add findmyphone --- app/qml/DevicePage.qml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/qml/DevicePage.qml b/app/qml/DevicePage.qml index 668dabcc0..8160ef8f3 100644 --- a/app/qml/DevicePage.qml +++ b/app/qml/DevicePage.qml @@ -79,6 +79,14 @@ Kirigami.Page lockIface.isLocked = !lockIface.isLocked; } } + PluginItem { + readonly property var findmyphoneIface: FindMyPhoneDbusInterfaceFactory.create(deviceView.currentDevice.id()) + pluginName: "findmyphone" + label: i18n("Find Device") + onClicked: { + findmyphoneIface.ring() + } + } Item { Layout.fillHeight: true } } From bbf33f69a6486729a777c770b2df3cae91bf5a84 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 17:55:13 +0200 Subject: [PATCH 10/24] Use actions rather than visual elements --- app/qml/main.qml | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/app/qml/main.qml b/app/qml/main.qml index 010c05b94..0919c6f5b 100644 --- a/app/qml/main.qml +++ b/app/qml/main.qml @@ -31,32 +31,34 @@ Kirigami.ApplicationWindow width: 400 height: 500 + Kirigami.Action { + id: findDevicesAction + text: i18n ("Find devices...") + iconName: "list-add" + onTriggered: { + root.pageStack.clear() + root.pageStack.push("qrc:/qml/FindDevicesPage.qml"); + } + } + globalDrawer: Kirigami.GlobalDrawer { + id: drawer title: i18n("KDE Connect") titleIcon: "kdeconnect" // bannerImageSource: "/home/apol/devel/kde5/share/wallpapers/Next/contents/images/1024x768.png" - content: ListView { - anchors.fill: parent + property var objects: [findDevicesAction] + Instantiator { model: DevicesSortProxyModel { sourceModel: DevicesModel { displayFilter: DevicesModel.Paired } } - header: Kirigami.BasicListItem { - label: i18n ("Find devices...") - icon: "list-add" - onClicked: { - root.pageStack.clear() - root.pageStack.push("qrc:/qml/FindDevicesPage.qml"); - } - } - - delegate: Kirigami.BasicListItem { - width: ListView.view.width - icon: iconName - label: display + "\n" + toolTip + delegate: Kirigami.Action { + iconName: model.iconName + text: display + "\n" + toolTip enabled: status & DevicesModel.Reachable checked: root.pageStack.currentDevice == device - onClicked: { + checkable: true + onTriggered: { root.pageStack.clear() root.pageStack.push( "qrc:/qml/DevicePage.qml", @@ -64,7 +66,20 @@ Kirigami.ApplicationWindow ); } } + + onObjectAdded: { + drawer.objects.push(object) + drawer.objects = drawer.objects + } + onObjectRemoved: { + var idx = drawer.objects.indexOf(object); + if (idx>=0) { + var removed = drawer.objects.splice(idx, 1) + drawer.objects = drawer.objects + } + } } + actions: objects } contextDrawer: Kirigami.ContextDrawer { From d84a1a108b60ab20e24729b34b65d3899c1b2d18 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 18:45:49 +0200 Subject: [PATCH 11/24] Mark the current section --- app/qml/FindDevicesPage.qml | 1 + app/qml/main.qml | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/qml/FindDevicesPage.qml b/app/qml/FindDevicesPage.qml index b555e72b5..ba544c435 100644 --- a/app/qml/FindDevicesPage.qml +++ b/app/qml/FindDevicesPage.qml @@ -26,6 +26,7 @@ import org.kde.kdeconnect 1.0 Kirigami.Page { + objectName: "FindDevices" title: i18n("Pair") ScrollView { anchors.fill: parent diff --git a/app/qml/main.qml b/app/qml/main.qml index 0919c6f5b..0e58b304f 100644 --- a/app/qml/main.qml +++ b/app/qml/main.qml @@ -35,6 +35,9 @@ Kirigami.ApplicationWindow id: findDevicesAction text: i18n ("Find devices...") iconName: "list-add" + checkable: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices" + checked: true + onTriggered: { root.pageStack.clear() root.pageStack.push("qrc:/qml/FindDevicesPage.qml"); @@ -56,8 +59,8 @@ Kirigami.ApplicationWindow iconName: model.iconName text: display + "\n" + toolTip enabled: status & DevicesModel.Reachable - checked: root.pageStack.currentDevice == device - checkable: true + checkable: pageStack.currentItem && pageStack.currentItem.currentDevice == device + checked: true onTriggered: { root.pageStack.clear() root.pageStack.push( From b69247b4e5ef0ebab58edc639c9d0d094b1a0cde Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 18:57:27 +0200 Subject: [PATCH 12/24] Don't force the creation of a DeviceInterface for every pluginchecker Create one per device and share it --- app/qml/PluginItem.qml | 2 +- plasmoid/declarativeplugin/qml/PluginChecker.qml | 4 +--- plasmoid/package/contents/ui/Battery.qml | 5 ++--- plasmoid/package/contents/ui/DeviceDelegate.qml | 12 +++++------- plasmoid/package/contents/ui/FindMyPhone.qml | 5 ++--- plasmoid/package/contents/ui/Sftp.qml | 5 ++--- 6 files changed, 13 insertions(+), 20 deletions(-) diff --git a/app/qml/PluginItem.qml b/app/qml/PluginItem.qml index ec6afde75..cf96aad34 100644 --- a/app/qml/PluginItem.qml +++ b/app/qml/PluginItem.qml @@ -32,7 +32,7 @@ Kirigami.BasicListItem readonly property var checker: PluginChecker { id: checker - deviceId: deviceView.currentDevice.id() + device: deviceView.currentDevice } visible: checker.available onClicked: { diff --git a/plasmoid/declarativeplugin/qml/PluginChecker.qml b/plasmoid/declarativeplugin/qml/PluginChecker.qml index 194b4fb6a..dfd1114e7 100644 --- a/plasmoid/declarativeplugin/qml/PluginChecker.qml +++ b/plasmoid/declarativeplugin/qml/PluginChecker.qml @@ -26,14 +26,12 @@ QtObject { id: root - property string deviceId: "" + property alias device: conn.target property string pluginName: "" property bool available: false - readonly property alias device: conn.target readonly property Connections connection: Connections { id: conn - target: DeviceDbusInterfaceFactory.create(root.deviceId) onPluginsChanged: pluginsChanged() } diff --git a/plasmoid/package/contents/ui/Battery.qml b/plasmoid/package/contents/ui/Battery.qml index 02bf7cf91..2dd9aca38 100644 --- a/plasmoid/package/contents/ui/Battery.qml +++ b/plasmoid/package/contents/ui/Battery.qml @@ -27,8 +27,7 @@ QtObject { id: root - property alias deviceId: checker.deviceId - readonly property alias device: checker.device + property alias device: checker.device readonly property alias available: checker.available readonly property PluginChecker pluginChecker: PluginChecker { @@ -55,7 +54,7 @@ QtObject { onAvailableChanged: { if (available) { - battery = DeviceBatteryDbusInterfaceFactory.create(deviceId) + battery = DeviceBatteryDbusInterfaceFactory.create(device.id()) battery.stateChanged.connect(function(c) {charging = c}) battery.chargeChanged.connect(function(c) {charge = c}) diff --git a/plasmoid/package/contents/ui/DeviceDelegate.qml b/plasmoid/package/contents/ui/DeviceDelegate.qml index a4f70eb30..e9419e7eb 100644 --- a/plasmoid/package/contents/ui/DeviceDelegate.qml +++ b/plasmoid/package/contents/ui/DeviceDelegate.qml @@ -27,10 +27,8 @@ import org.kde.kdeconnect 1.0 PlasmaComponents.ListItem { id: root - property string deviceId: model.deviceId - + readonly property QtObject device: DeviceDbusInterfaceFactory.create(model.deviceId) - Column { width: parent.width @@ -53,7 +51,7 @@ PlasmaComponents.ListItem { FindMyPhone { id: findmyphone - deviceId: root.deviceId + device: root.device } id: ring @@ -71,7 +69,7 @@ PlasmaComponents.ListItem { Sftp { id: sftp - deviceId: root.deviceId + device: root.device } id: browse @@ -93,7 +91,7 @@ PlasmaComponents.ListItem Battery { id: battery - deviceId: root.deviceId + device: root.device } sectionDelegate: true @@ -129,7 +127,7 @@ PlasmaComponents.ListItem id: notificationsView model: NotificationsModel { id: notificationsModel - deviceId: root.deviceId + deviceId: root.device.id() } delegate: PlasmaComponents.ListItem { PlasmaComponents.Label { diff --git a/plasmoid/package/contents/ui/FindMyPhone.qml b/plasmoid/package/contents/ui/FindMyPhone.qml index 3a23fde76..846c15308 100644 --- a/plasmoid/package/contents/ui/FindMyPhone.qml +++ b/plasmoid/package/contents/ui/FindMyPhone.qml @@ -27,8 +27,7 @@ QtObject { id: root - property alias deviceId: checker.deviceId - readonly property alias device: checker.device + property alias device: checker.device readonly property alias available: checker.available readonly property PluginChecker pluginChecker: PluginChecker { @@ -46,7 +45,7 @@ QtObject { onAvailableChanged: { if (available) { - findMyPhone = FindMyPhoneDbusInterfaceFactory.create(deviceId) + findMyPhone = FindMyPhoneDbusInterfaceFactory.create(device.id()) } else { findMyPhone = null } diff --git a/plasmoid/package/contents/ui/Sftp.qml b/plasmoid/package/contents/ui/Sftp.qml index fd817e567..e3fc65f6b 100644 --- a/plasmoid/package/contents/ui/Sftp.qml +++ b/plasmoid/package/contents/ui/Sftp.qml @@ -27,8 +27,7 @@ QtObject { id: root - property alias deviceId: checker.deviceId - readonly property alias device: checker.device + property alias device: checker.device readonly property alias available: checker.available readonly property PluginChecker pluginChecker: PluginChecker { @@ -45,7 +44,7 @@ QtObject { onAvailableChanged: { if (available) { - sftp = SftpDbusInterfaceFactory.create(deviceId) + sftp = SftpDbusInterfaceFactory.create(device.id()) } else { sftp = null } From d9e7f308c21fc78fb3f75270e7c67e9a1e4a3536 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 19:38:15 +0200 Subject: [PATCH 13/24] Show the announcedName in the qml app Makes it possible to display it and modify it Introduces a DBusProperty component that can be used if we don't want to go through the QtDBus property generation hell. --- app/qml/main.qml | 18 +++++ core/daemon.cpp | 1 + core/daemon.h | 1 + plasmoid/declarativeplugin/CMakeLists.txt | 2 +- .../kdeconnectdeclarativeplugin.cpp | 5 ++ .../declarativeplugin/qml/DBusProperty.qml | 69 +++++++++++++++++++ plasmoid/declarativeplugin/qmldir | 1 + 7 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 plasmoid/declarativeplugin/qml/DBusProperty.qml diff --git a/app/qml/main.qml b/app/qml/main.qml index 0e58b304f..46541cd73 100644 --- a/app/qml/main.qml +++ b/app/qml/main.qml @@ -50,6 +50,24 @@ Kirigami.ApplicationWindow titleIcon: "kdeconnect" // bannerImageSource: "/home/apol/devel/kde5/share/wallpapers/Next/contents/images/1024x768.png" + topContent: [ + TextField { + Layout.fillWidth: true + + DBusProperty { + id: announcedNameProperty + object: DaemonDbusInterface + read: "announcedName" + defaultValue: "" + } + + text: announcedNameProperty.value + onAccepted: { + DaemonDbusInterface.setAnnouncedName(text) + text = Qt.binding(function() {return announcedNameProperty.value}) + } + } + ] property var objects: [findDevicesAction] Instantiator { model: DevicesSortProxyModel { diff --git a/core/daemon.cpp b/core/daemon.cpp index 129a5350f..b8323e6c3 100644 --- a/core/daemon.cpp +++ b/core/daemon.cpp @@ -214,6 +214,7 @@ void Daemon::setAnnouncedName(const QString &name) qCDebug(KDECONNECT_CORE()) << "Announcing name"; KdeConnectConfig::instance()->setName(name); forceOnNetworkChange(); + Q_EMIT announcedNameChanged(name); } QString Daemon::announcedName() diff --git a/core/daemon.h b/core/daemon.h index 8b3fab041..dde33d331 100644 --- a/core/daemon.h +++ b/core/daemon.h @@ -73,6 +73,7 @@ Q_SIGNALS: Q_SCRIPTABLE void deviceAdded(const QString& id); Q_SCRIPTABLE void deviceRemoved(const QString& id); //Note that paired devices will never be removed Q_SCRIPTABLE void deviceVisibilityChanged(const QString& id, bool isVisible); + Q_SCRIPTABLE void announcedNameChanged(const QString &announcedName); private Q_SLOTS: void onNewDeviceLink(const NetworkPackage& identityPackage, DeviceLink* dl); diff --git a/plasmoid/declarativeplugin/CMakeLists.txt b/plasmoid/declarativeplugin/CMakeLists.txt index ec86925c0..b32738aeb 100644 --- a/plasmoid/declarativeplugin/CMakeLists.txt +++ b/plasmoid/declarativeplugin/CMakeLists.txt @@ -21,4 +21,4 @@ target_link_libraries(kdeconnectdeclarativeplugin kdeconnectinterfaces ) install(TARGETS kdeconnectdeclarativeplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/kdeconnect) -install(FILES qmldir qml/PluginChecker.qml DESTINATION ${QML_INSTALL_DIR}/org/kde/kdeconnect) +install(FILES qmldir qml/PluginChecker.qml qml/DBusProperty.qml DESTINATION ${QML_INSTALL_DIR}/org/kde/kdeconnect) diff --git a/plasmoid/declarativeplugin/kdeconnectdeclarativeplugin.cpp b/plasmoid/declarativeplugin/kdeconnectdeclarativeplugin.cpp index aec6be43a..1a1a4a378 100644 --- a/plasmoid/declarativeplugin/kdeconnectdeclarativeplugin.cpp +++ b/plasmoid/declarativeplugin/kdeconnectdeclarativeplugin.cpp @@ -86,6 +86,11 @@ void KdeConnectDeclarativePlugin::registerTypes(const char* uri) qmlRegisterUncreatableType(uri, 1, 0, "LockDeviceDbusInterface", QStringLiteral("You're not supposed to instantiate interfacess")); qmlRegisterUncreatableType(uri, 1, 0, "FindMyPhoneDbusInterface", QStringLiteral("You're not supposed to instantiate interfacess")); qmlRegisterUncreatableType(uri, 1, 0, "DeviceDbusInterface", QStringLiteral("You're not supposed to instantiate interfacess")); + qmlRegisterSingletonType(uri, 1, 0, "DaemonDbusInterface", + [](QQmlEngine*, QJSEngine*) -> QObject* { + return new DaemonDbusInterface; + } + ); } void KdeConnectDeclarativePlugin::initializeEngine(QQmlEngine* engine, const char* uri) diff --git a/plasmoid/declarativeplugin/qml/DBusProperty.qml b/plasmoid/declarativeplugin/qml/DBusProperty.qml new file mode 100644 index 000000000..30527de19 --- /dev/null +++ b/plasmoid/declarativeplugin/qml/DBusProperty.qml @@ -0,0 +1,69 @@ +/** + * Copyright 2016 Aleix Pol Gonzalez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License or (at your option) version 3 or any later version + * accepted by the membership of KDE e.V. (or its successor approved + * by the membership of KDE e.V.), which shall act as a proxy + * defined in Section 14 of version 3 of the license. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQml 2.2 +import org.kde.kdeconnect 1.0 + +QtObject { + id: prop + property QtObject object: null + property string read + property string change: read+"Changed" + + Component.onCompleted: get(); + + onChangeChanged: { + if (object) { + var theSignal = object[change]; + if (theSignal) { + theSignal.connect(valueReceived); + } else { + console.warn("couldn't find signal", change, "for", object) + } + } + } + + function valueReceived(val) { + if (!val) { + get(); + } else { + _value = val; + } + } + + property var defaultValue + property var _value: defaultValue + readonly property var value: _value + + readonly property var v: DBusAsyncResponse { + id: response + autoDelete: false + onSuccess: { + prop._value = result; + } + onError: { + console.warn("failed call", object, read, write, change) + } + } + + function get() { + response.setPendingCall(object[read]()); + } +} diff --git a/plasmoid/declarativeplugin/qmldir b/plasmoid/declarativeplugin/qmldir index 638deac72..80d0bc184 100644 --- a/plasmoid/declarativeplugin/qmldir +++ b/plasmoid/declarativeplugin/qmldir @@ -2,3 +2,4 @@ module org.kde.kdeconnect plugin kdeconnectdeclarativeplugin PluginChecker 1.0 PluginChecker.qml +DBusProperty 1.0 DBusProperty.qml From ee7420c8a0a194c71e470b713d58be662f2278f9 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Sun, 21 Aug 2016 19:50:27 +0200 Subject: [PATCH 14/24] Listen to announcedName changes from the kcm --- kcm/kcm.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp index 160a43312..63c6edc67 100644 --- a/kcm/kcm.cpp +++ b/kcm/kcm.cpp @@ -83,6 +83,10 @@ KdeConnectKcm::KdeConnectKcm(QWidget *parent, const QVariantList&) kcmUi->rename_label->setText(daemon->announcedName()); kcmUi->rename_edit->setText(daemon->announcedName()); + connect(daemon, SIGNAL(announcedNameChanged(QString)), + kcmUi->rename_edit, SLOT(setText(QString))); + connect(daemon, SIGNAL(announcedNameChanged(QString)), + kcmUi->rename_label, SLOT(setText(QString))); setRenameMode(false); setButtons(KCModule::Help | KCModule::NoAdditionalButton); From 8f4d39424a95b52cba98fcce2597656e2e32239f Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Fri, 26 Aug 2016 11:10:36 +0200 Subject: [PATCH 15/24] MPRIS: Send info about whether certain actions are allowed. So the remote side can then disable some actions as necessary. REVIEW: 128271 --- plugins/mpriscontrol/mpriscontrolplugin.cpp | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/mpriscontrol/mpriscontrolplugin.cpp b/plugins/mpriscontrol/mpriscontrolplugin.cpp index 98ad16830..ce3ca3254 100644 --- a/plugins/mpriscontrol/mpriscontrolplugin.cpp +++ b/plugins/mpriscontrol/mpriscontrolplugin.cpp @@ -175,6 +175,26 @@ void MprisControlPlugin::propertiesChanged(const QString& propertyInterface, con np.set("isPlaying", playing); somethingToSend = true; } + if (properties.contains("CanPause")) { + np.set("canPause", properties["CanPause"].toBool()); + somethingToSend = true; + } + if (properties.contains("CanPlay")) { + np.set("canPlay", properties["CanPlay"].toBool()); + somethingToSend = true; + } + if (properties.contains("CanGoNext")) { + np.set("canGoNext", properties["CanGoNext"].toBool()); + somethingToSend = true; + } + if (properties.contains("CanGoPrevious")) { + np.set("canGoPrevious", properties["CanGoPrevious"].toBool()); + somethingToSend = true; + } + if (properties.contains("CanSeek")) { + np.set("canSeek", properties["CanSeek"].toBool()); + somethingToSend = true; + } if (somethingToSend) { OrgFreedesktopDBusPropertiesInterface* interface = (OrgFreedesktopDBusPropertiesInterface*)sender(); @@ -264,6 +284,12 @@ bool MprisControlPlugin::receivePackage (const NetworkPackage& np) bool playing = (mprisInterface.playbackStatus() == QLatin1String("Playing")); answer.set("isPlaying", playing); + answer.set("canPause", mprisInterface.canPause()); + answer.set("canPlay", mprisInterface.canPlay()); + answer.set("canGoNext", mprisInterface.canGoNext()); + answer.set("canGoPrevious", mprisInterface.canGoPrevious()); + answer.set("canSeek", mprisInterface.canSeek()); + somethingToSend = true; } if (np.get("requestVolume")) { From c122312c65ae4d2350d93e4d403200f9750926c8 Mon Sep 17 00:00:00 2001 From: Holger Kaelberer Date: Sat, 27 Aug 2016 13:59:25 +0200 Subject: [PATCH 16/24] sendnotifications: also sync icon-data from notfication hints According to the priorities defined in the notifications spec version 1.2 REVIEW: 126722 --- .../notificationslistener.cpp | 115 ++++++++++--- .../sendnotifications/notificationslistener.h | 12 ++ tests/testnotificationlistener.cpp | 152 +++++++++++++++++- 3 files changed, 254 insertions(+), 25 deletions(-) diff --git a/plugins/sendnotifications/notificationslistener.cpp b/plugins/sendnotifications/notificationslistener.cpp index 4da1770ae..c8608ac3b 100644 --- a/plugins/sendnotifications/notificationslistener.cpp +++ b/plugins/sendnotifications/notificationslistener.cpp @@ -20,9 +20,11 @@ #include #include +#include #include #include #include +#include #include #include @@ -104,6 +106,79 @@ void NotificationsListener::loadApplications() //qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Loaded" << applications.size() << " applications"; } +bool NotificationsListener::parseImageDataArgument(const QVariant& argument, + int& width, int& height, + int& rowStride, int& bitsPerSample, + int& channels, bool& hasAlpha, + QByteArray& imageData) const +{ + if (!argument.canConvert()) + return false; + const QDBusArgument dbusArg = argument.value(); + dbusArg.beginStructure(); + dbusArg >> width >> height >> rowStride >> hasAlpha >> bitsPerSample + >> channels >> imageData; + dbusArg.endStructure(); + return true; +} + +QSharedPointer NotificationsListener::iconForImageData(const QVariant& argument) const +{ + int width, height, rowStride, bitsPerSample, channels; + bool hasAlpha; + QByteArray imageData; + + if (!parseImageDataArgument(argument, width, height, rowStride, bitsPerSample, + channels, hasAlpha, imageData)) + return QSharedPointer(); + + if (bitsPerSample != 8) { + qCWarning(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Unsupported image format:" + << "width=" << width + << "height=" << height + << "rowStride=" << rowStride + << "bitsPerSample=" << bitsPerSample + << "channels=" << channels + << "hasAlpha=" << hasAlpha; + return QSharedPointer(); + } + + QImage image(reinterpret_cast(imageData.data()), width, height, rowStride, + hasAlpha ? QImage::Format_ARGB32 : QImage::Format_RGB32); + if (hasAlpha) + image = image.rgbSwapped(); // RGBA --> ARGB + + QSharedPointer buffer = QSharedPointer(new QBuffer); + if (!buffer || !buffer->open(QIODevice::WriteOnly) || + !image.save(buffer.data(), "PNG")) { + qCWarning(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Could not initialize image buffer"; + return QSharedPointer(); + } + + return buffer; +} + +QSharedPointer NotificationsListener::iconForIconName(const QString &iconName) const +{ + int size = KIconLoader::SizeEnormous; // use big size to allow for good + // quality on high-DPI mobile devices + QString iconPath = KIconLoader::global()->iconPath(iconName, -size, true); + if (!iconPath.isEmpty()) { + if (!iconPath.endsWith(QLatin1String(".png")) && + KIconLoader::global()->theme()->name() != QLatin1String("hicolor")) { + // try falling back to hicolor theme: + KIconTheme hicolor(QStringLiteral("hicolor")); + if (hicolor.isValid()) { + iconPath = hicolor.iconPath(iconName + ".png", size, KIconLoader::MatchBest); + //qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Found non-png icon in default theme trying fallback to hicolor:" << iconPath; + } + } + } + + if (iconPath.endsWith(QLatin1String(".png"))) + return QSharedPointer(new QFile(iconPath)); + return QSharedPointer(); +} uint NotificationsListener::Notify(const QString &appName, uint replacesId, const QString &appIcon, const QString &summary, const QString &body, @@ -171,26 +246,26 @@ uint NotificationsListener::Notify(const QString &appName, uint replacesId, // timeout == 0, for other notifications // clearability is pointless - if (!appIcon.isEmpty() && mPlugin->config()->get("generalSynchronizeIcons", true)) { - int size = KIconLoader::SizeEnormous; // use big size to allow for good - // quality on High-DPI mobile devices - QString iconPath = KIconLoader::global()->iconPath(appIcon, -size, true); - if (!iconPath.isEmpty()) { - if (!iconPath.endsWith(QLatin1String(".png")) && - KIconLoader::global()->theme()->name() != QLatin1String("hicolor")) { - // try falling back to hicolor theme: - KIconTheme hicolor(QStringLiteral("hicolor")); - if (hicolor.isValid()) { - iconPath = hicolor.iconPath(appIcon + ".png", size, KIconLoader::MatchBest); - //qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Found non-png icon in default theme trying fallback to hicolor:" << iconPath; - } - } - if (iconPath.endsWith(QLatin1String(".png"))) { - //qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION) << "Appending icon " << iconPath; - QSharedPointer iconFile(new QFile(iconPath)); - np.setPayload(iconFile, iconFile->size()); - } - } + // sync any icon data? + if (mPlugin->config()->get("generalSynchronizeIcons", true)) { + QSharedPointer iconSource; + // try different image sources according to priorities in notifications- + // spec version 1.2: + if (hints.contains("image-data")) + iconSource = iconForImageData(hints["image-data"]); + else if (hints.contains("image_data")) // 1.1 backward compatibility + iconSource = iconForImageData(hints["image_data"]); + else if (hints.contains("image-path")) + iconSource = iconForIconName(hints["image-path"].toString()); + else if (hints.contains("image_path")) // 1.1 backward compatibility + iconSource = iconForIconName(hints["image_path"].toString()); + else if (!appIcon.isEmpty()) + iconSource = iconForIconName(appIcon); + else if (hints.contains("icon_data")) // < 1.1 backward compatibility + iconSource = iconForImageData(hints["icon_data"]); + + if (iconSource) + np.setPayload(iconSource, iconSource->size()); } mPlugin->sendPackage(np); diff --git a/plugins/sendnotifications/notificationslistener.h b/plugins/sendnotifications/notificationslistener.h index 0612c34b8..3076d0b04 100644 --- a/plugins/sendnotifications/notificationslistener.h +++ b/plugins/sendnotifications/notificationslistener.h @@ -19,7 +19,10 @@ */ #include +#include #include +#include +#include class KdeConnectPlugin; class Notification; @@ -38,6 +41,15 @@ protected: KdeConnectPlugin* mPlugin; QHash applications; + // virtual helper function to make testing possible (QDBusArgument can not + // be injected without making a DBUS-call): + virtual bool parseImageDataArgument(const QVariant& argument, int& width, + int& height, int& rowStride, int& bitsPerSample, + int& channels, bool& hasAlpha, + QByteArray& imageData) const; + QSharedPointer iconForImageData(const QVariant& argument) const; + QSharedPointer iconForIconName(const QString& iconName) const; + public Q_SLOTS: Q_SCRIPTABLE uint Notify(const QString&, uint, const QString&, const QString&, const QString&, diff --git a/tests/testnotificationlistener.cpp b/tests/testnotificationlistener.cpp index ad36dac79..c1c82065e 100644 --- a/tests/testnotificationlistener.cpp +++ b/tests/testnotificationlistener.cpp @@ -22,8 +22,10 @@ #include #include #include -#include +#include #include +#include +#include #include @@ -85,17 +87,23 @@ public: return sentPackages; } - const NetworkPackage* getLastPackage() const + NetworkPackage* getLastPackage() { return lastPackage; } + void deleteLastPackage() + { + delete lastPackage; + lastPackage = nullptr; + } + public Q_SLOTS: bool sendPackage(NetworkPackage& np) override { ++sentPackages; // copy package manually to allow for inspection (can't use copy-constructor) - delete lastPackage; + deleteLastPackage(); lastPackage = new NetworkPackage(np.type()); Q_ASSERT(lastPackage); for (QVariantMap::ConstIterator iter = np.body().constBegin(); @@ -128,6 +136,22 @@ public: applications = value; } +protected: + bool parseImageDataArgument(const QVariant& argument, int& width, + int& height, int& rowStride, int& bitsPerSample, + int& channels, bool& hasAlpha, + QByteArray& imageData) const override + { + width = argument.toMap().value("width").toInt(); + height = argument.toMap().value("height").toInt(); + rowStride = argument.toMap().value("rowStride").toInt(); + bitsPerSample = argument.toMap().value("bitsPerSample").toInt(); + channels = argument.toMap().value("channels").toInt(); + hasAlpha = argument.toMap().value("hasAlpha").toBool(); + imageData = argument.toMap().value("imageData").toByteArray(); + return true; + } + }; class TestNotificationListener : public QObject @@ -327,24 +351,37 @@ void TestNotificationListener::testNotify() QCOMPARE(++proxiedNotifications, d->getSentPackages()); // icon synchronization: + QStringList iconPaths; + // appIcon int count = 0; Q_FOREACH (const auto& iconName, KIconLoader::global()->queryIcons(-KIconLoader::SizeEnormous, KIconLoader::Application)) { if (!iconName.endsWith(".png")) continue; if (count++ > 3) // max 3 iterations break; + iconPaths.append(iconName); // memorize some paths for later // existing icons are sync-ed if requested plugin->config()->set("generalSynchronizeIcons", true); QFileInfo fi(iconName); - //qDebug() << "XXX" << iconName << fi.baseName() << fi.size(); retId = listener->Notify(appName, replacesId, fi.baseName(), summary, body, {}, {{}}, 0); QCOMPARE(retId, replacesId); QCOMPARE(++proxiedNotifications, d->getSentPackages()); QVERIFY(d->getLastPackage()->hasPayload()); QCOMPARE(d->getLastPackage()->payloadSize(), fi.size()); + // works also with abolute paths + retId = listener->Notify(appName, replacesId, iconName, summary, body, {}, {{}}, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()->hasPayload()); + QCOMPARE(d->getLastPackage()->payloadSize(), fi.size()); + // extensions other than png are not accepted: + retId = listener->Notify(appName, replacesId, iconName + ".svg", summary, body, {}, {{}}, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(!d->getLastPackage()->hasPayload()); - // otherwise no payload: + // if sync not requested no payload: plugin->config()->set("generalSynchronizeIcons", false); retId = listener->Notify(appName, replacesId, fi.baseName(), summary, body, {}, {{}}, 0); QCOMPARE(retId, replacesId); @@ -352,6 +389,111 @@ void TestNotificationListener::testNotify() QVERIFY(!d->getLastPackage()->hasPayload()); QCOMPARE(d->getLastPackage()->payloadSize(), 0); } + plugin->config()->set("generalSynchronizeIcons", true); + + // image-path in hints + if (iconPaths.size() > 0) { + retId = listener->Notify(appName, replacesId, iconPaths.size() > 1 ? iconPaths[1] : icon, summary, body, {}, {{"image-path", iconPaths[0]}}, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()->hasPayload()); + QFileInfo hintsFi(iconPaths[0]); + // image-path has priority over appIcon parameter: + QCOMPARE(d->getLastPackage()->payloadSize(), hintsFi.size()); + } + + // image_path in hints + if (iconPaths.size() > 0) { + retId = listener->Notify(appName, replacesId, iconPaths.size() > 1 ? iconPaths[1] : icon, summary, body, {}, {{"image_path", iconPaths[0]}}, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()->hasPayload()); + QFileInfo hintsFi(iconPaths[0]); + // image_path has priority over appIcon parameter: + QCOMPARE(d->getLastPackage()->payloadSize(), hintsFi.size()); + } + + // image-data in hints + // set up: + QBuffer *buffer; + QImage image; + int width = 2, height = 2, rowStride = 4*width, bitsPerSample = 8, + channels = 4; + bool hasAlpha = 1; + char rawData[] = { 0x01, 0x02, 0x03, 0x04, // raw rgba data + 0x11, 0x12, 0x13, 0x14, + 0x21, 0x22, 0x23, 0x24, + 0x31, 0x32, 0x33, 0x34 }; + QByteArray byteData(rawData, rowStride*height); + QVariantMap imageData = {{"width", width}, {"height", height}, {"rowStride", rowStride}, + {"bitsPerSample", bitsPerSample}, {"channels", channels}, + {"hasAlpha", hasAlpha}, {"imageData", rawData}}; + QVariantMap hints; +#define COMPARE_PIXEL(x, y) \ + QCOMPARE(qRed(image.pixel(x,y)), (int)rawData[x*4 + y*rowStride + 0]); \ + QCOMPARE(qGreen(image.pixel(x,y)), (int)rawData[x*4 + y*rowStride + 1]); \ + QCOMPARE(qBlue(image.pixel(x,y)), (int)rawData[x*4 + y*rowStride + 2]); \ + QCOMPARE(qAlpha(image.pixel(x,y)), (int)rawData[x*4 + y*rowStride + 3]); + + hints.insert("image-data", imageData); + if (iconPaths.size() > 0) + hints.insert("image-path", iconPaths[0]); + retId = listener->Notify(appName, replacesId, icon, summary, body, {}, hints, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()->hasPayload()); + buffer = dynamic_cast(d->getLastPackage()->payload().data()); + QCOMPARE(d->getLastPackage()->payloadSize(), buffer->size()); + // image-data is attached as png data + QVERIFY(image.loadFromData(reinterpret_cast(buffer->data().constData()), buffer->size(), "PNG")); + // image-data has priority over image-path: + QCOMPARE(image.byteCount(), rowStride*height); + // rgba -> argb conversion was done correctly: + COMPARE_PIXEL(0,0); + COMPARE_PIXEL(1,0); + COMPARE_PIXEL(0,1); + COMPARE_PIXEL(1,1); + + // same for image_data in hints + hints.clear(); + hints.insert("image-data", imageData); + if (iconPaths.size() > 0) + hints.insert("image_path", iconPaths[0]); + retId = listener->Notify(appName, replacesId, icon, summary, body, {}, hints, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()->hasPayload()); + buffer = dynamic_cast(d->getLastPackage()->payload().data()); + QCOMPARE(d->getLastPackage()->payloadSize(), buffer->size()); + // image-data is attached as png data + QVERIFY(image.loadFromData(reinterpret_cast(buffer->data().constData()), buffer->size(), "PNG")); + // image_data has priority over image_path/image-path: + QCOMPARE(image.byteCount(), rowStride*height); + // rgba -> argb conversion was done correctly: + COMPARE_PIXEL(0,0); + COMPARE_PIXEL(1,0); + COMPARE_PIXEL(0,1); + COMPARE_PIXEL(1,1); + + // same for icon_data, which has lowest priority + hints.clear(); + hints.insert("icon_data", imageData); + retId = listener->Notify(appName, replacesId, "", summary, body, {}, hints, 0); + QCOMPARE(retId, replacesId); + QCOMPARE(++proxiedNotifications, d->getSentPackages()); + QVERIFY(d->getLastPackage()); + QVERIFY(d->getLastPackage()->hasPayload()); + buffer = dynamic_cast(d->getLastPackage()->payload().data()); + // image-data is attached as png data + QVERIFY(image.loadFromData(reinterpret_cast(buffer->data().constData()), buffer->size(), "PNG")); + QCOMPARE(image.byteCount(), rowStride*height); + // rgba -> argb conversion was done correctly: + COMPARE_PIXEL(0,0); + COMPARE_PIXEL(1,0); + COMPARE_PIXEL(0,1); + COMPARE_PIXEL(1,1); + +#undef COMPARE_PIXEL } From 152c6dccb9c1408fcd99097333e0692ebff35b76 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Mon, 29 Aug 2016 20:28:24 +0200 Subject: [PATCH 17/24] Calling processedSize is not needed in listDir --- kio/kiokdeconnect.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/kio/kiokdeconnect.cpp b/kio/kiokdeconnect.cpp index f069abcce..107609c03 100644 --- a/kio/kiokdeconnect.cpp +++ b/kio/kiokdeconnect.cpp @@ -86,8 +86,6 @@ void KioKdeconnect::listAllDevices() //TODO: Change to all devices and show different icons for connected and disconnected? QStringList devices = m_dbusInterface->devices(true, true); - totalSize(devices.length()); - int i = 0; Q_FOREACH(const QString& deviceId, devices) { @@ -107,9 +105,6 @@ void KioKdeconnect::listAllDevices() entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, ""); entry.insert(KIO::UDSEntry::UDS_URL, target); listEntry(entry); - - processedSize(i++); - } infoMessage(""); From d89bf512cfa41fcc2dd6a57fdbff5cdbb40f53fc Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Mon, 29 Aug 2016 20:31:52 +0200 Subject: [PATCH 18/24] We should always emit an entry for "." Note this doesn't fix the bug yet, as the KIO just redirects to the SSHFS, which happens to have the same problem. BUG: 367878 --- kio/kiokdeconnect.cpp | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/kio/kiokdeconnect.cpp b/kio/kiokdeconnect.cpp index 107609c03..50bc597cd 100644 --- a/kio/kiokdeconnect.cpp +++ b/kio/kiokdeconnect.cpp @@ -93,7 +93,7 @@ void KioKdeconnect::listAllDevices() if (!interface.hasPlugin("kdeconnect_sftp")) continue; - const QString target = QString("kdeconnect://").append(deviceId).append("/"); + const QString path = QString("kdeconnect://").append(deviceId).append("/"); const QString name = interface.name(); const QString icon = "kdeconnect"; @@ -101,12 +101,20 @@ void KioKdeconnect::listAllDevices() entry.insert(KIO::UDSEntry::UDS_NAME, name); entry.insert(KIO::UDSEntry::UDS_ICON_NAME, icon); entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); - entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH); + entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, ""); - entry.insert(KIO::UDSEntry::UDS_URL, target); + entry.insert(KIO::UDSEntry::UDS_URL, path); listEntry(entry); } + // We also need a non-null and writable UDSentry for "." + KIO::UDSEntry entry; + entry.insert(KIO::UDSEntry::UDS_NAME, QStringLiteral(".")); + entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); + entry.insert(KIO::UDSEntry::UDS_SIZE, 0); + entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH); + listEntry(entry); + infoMessage(""); finished(); } @@ -140,20 +148,29 @@ void KioKdeconnect::listDevice() for (QVariantMap::iterator it = urls.begin(); it != urls.end(); ++it) { - QString path = it.key(); - QString name = it.value().toString(); + const QString path = it.key(); + const QString name = it.value().toString(); + const QString icon = QLatin1Literal("folder"); KIO::UDSEntry entry; entry.insert(KIO::UDSEntry::UDS_NAME, "files"); entry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, name); - entry.insert(KIO::UDSEntry::UDS_ICON_NAME, "folder"); + entry.insert(KIO::UDSEntry::UDS_ICON_NAME, icon); entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); - entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH); + entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, ""); entry.insert(KIO::UDSEntry::UDS_URL, QUrl::fromLocalFile(path).toString()); listEntry(entry); } + // We also need a non-null and writable UDSentry for "." + KIO::UDSEntry entry; + entry.insert(KIO::UDSEntry::UDS_NAME, QStringLiteral(".")); + entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); + entry.insert(KIO::UDSEntry::UDS_SIZE, 0); + entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH); + listEntry(entry); + infoMessage(""); finished(); From 2fd42a8408ec11abb5e115b663176eb42ac7bee4 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Mon, 29 Aug 2016 20:38:16 +0200 Subject: [PATCH 19/24] Unused var --- kio/kiokdeconnect.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/kio/kiokdeconnect.cpp b/kio/kiokdeconnect.cpp index 50bc597cd..527d98019 100644 --- a/kio/kiokdeconnect.cpp +++ b/kio/kiokdeconnect.cpp @@ -86,7 +86,6 @@ void KioKdeconnect::listAllDevices() //TODO: Change to all devices and show different icons for connected and disconnected? QStringList devices = m_dbusInterface->devices(true, true); - int i = 0; Q_FOREACH(const QString& deviceId, devices) { DeviceDbusInterface interface(deviceId); From 1952357ba61f144443e01ea61bd9032940edcb00 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Tue, 30 Aug 2016 07:38:42 +0000 Subject: [PATCH 20/24] SVN_SILENT made messages (after extraction) --- kdeconnect.appdata.xml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/kdeconnect.appdata.xml b/kdeconnect.appdata.xml index e200157a0..a4daa5e48 100644 --- a/kdeconnect.appdata.xml +++ b/kdeconnect.appdata.xml @@ -4,17 +4,21 @@ CC0-1.0 GPL-2.0+ KDE Connect + كدي المتّصل + KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE-Connect + KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect + KDE Connect KDE Connect KDE Connect KDE Connect @@ -28,17 +32,21 @@ xxKDE Connectxx KDE Connect Seamless connection of your devices + اتّصال سلس بين أجهزتك + Conexón de los tos preseos ensin esfuerciu Connexió transparent amb els vostres dispositius Connexió transparent amb els vostres dispositius Snadné propojení vašich zařízení - Supernem forbindelse mellem dine enheder + Umærkbar forbindelse mellem dine enheder Nahtlose Verbindung zu Ihren Geräten + Απρόσκοπτη σύνδεση των συσκευών σας Seamless connection of your devices Conexión sin interrupciones de sus dispositivos Sujuv ühendus oma seadmetega Saumaton yhteys laitteisiisi Connecter vos périphériques avec facilité Conexión constante entre dispositivos + חיבור מהיר בין ההתקנים שלך Connessione trasparente dei tuoi dispositivi 장치와 항상 연결하기 Naadloze verbinding met uw apparaten @@ -53,17 +61,21 @@ 无缝连接您的设备

KDE Connect provides integration between your Android phone and your desktop.

+

يوفّر «كدي المتصّل» التّكامل بين هاتف أندرويد وسطح المكتب.

+

KDE Connect forne integración ente'l to preséu Android y el to escritoriu.

El KDE Connect proporciona la integració entre el telèfon Android i el vostre escriptori.

El KDE Connect proporciona la integració entre el telèfon Android i el vostre escriptori.

KDE Connect poskytuje integraci mezi vaším telefonem s Androidem a vaší pracovní plochou.

KDE Connect giver integration mellem din Android-telefon og din desktop.

KDE Connect bietet Integrationsdienste zwischen Ihrem Android-Telefon und Ihrem Desktop-Computer.

+

Το KDE Connect παρέχει ενοποίηση μεταξύ του Android κινητού σας και του γραφικού περιβάλλοντος του υπολογιστή σας.

KDE Connect provides integration between your Android phone and your desktop.

KDE Connect proporciona integración entre su teléfono Android y su escritorio.

KDE Connect võimaldab kokku siduda oma Androidi telefoni ja arvuti töölaua.

KDE Connect tarjoaa integraation Android-puhelimesi ja työpöytäsi välillä.

KDE Connect permet d'intégrer votre téléphone Android avec votre bureau.

KDE Connect fornece integración entre os seus teléfonos con Android e o seu computador de escritorio.

+

KDE Connect מספק שילוב בין מכשירי אנדרואיד לשולחן העבודה

KDE Connect fornisce integrazione tra il tuo telefono Android e il tuo desktop.

KDE Connect는 안드로이드 휴대폰과 데스크톱을 연결합니다.

KDE Connect biedt integratie tussen uw Android telefoon en uw bureaublad.

@@ -86,17 +98,21 @@ KDE Connect + كدي المتّصل + KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE-Connect + KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect KDE Connect + KDE Connect KDE Connect KDE Connect KDE Connect From 2664b99864fa52f8d64e417ae74c1a9ddaba301a Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Tue, 30 Aug 2016 10:03:14 +0000 Subject: [PATCH 21/24] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- app/org.kde.kdeconnect.app.desktop | 12 +++ daemon/kdeconnect.desktop | 8 ++ daemon/kdeconnectd.desktop.cmake | 4 + .../kdeconnectsendfile.desktop | 8 ++ kcm/kcm_kdeconnect.desktop | 12 +++ kcm/org.kde.kdeconnect.kcm.desktop | 8 ++ org.kde.kdeconnect.nonplasma.desktop | 8 ++ plasmoid/package/metadata.desktop | 8 ++ plugins/kdeconnect.notifyrc | 75 ++++++++++++++++++- plugins/kdeconnect_plugin.desktop | 4 + .../kdeconnect_pausemusic_config.desktop | 4 + .../kdeconnect_runcommand_config.desktop | 9 +++ ...deconnect_sendnotifications_config.desktop | 8 +- plugins/share/kdeconnect_share_config.desktop | 4 + 14 files changed, 170 insertions(+), 2 deletions(-) diff --git a/app/org.kde.kdeconnect.app.desktop b/app/org.kde.kdeconnect.app.desktop index 20c55b406..942bba5d1 100644 --- a/app/org.kde.kdeconnect.app.desktop +++ b/app/org.kde.kdeconnect.app.desktop @@ -1,16 +1,20 @@ [Desktop Entry] Name=KDE Connect Application +Name[ar]=تطبيق كدي المتّصل +Name[ast]=Aplicación KDE Connect Name[ca]=Aplicació KDE Connect Name[ca@valencia]=Aplicació KDE Connect Name[cs]=Aplikace KDE Connect Name[da]=Programmet KDE Connect Name[de]=KDE-Connect-Anwendung +Name[el]=Εφαρμογή KDE Connect Name[en_GB]=KDE Connect Application Name[es]=Aplicación KDE Connect Name[et]=KDE Connecti rakendus Name[fi]=KDE Connect -sovellus Name[fr]=Application KDE Connect Name[gl]=Programa de KDE Connect +Name[he]=היישום KDE Connect Name[hu]=KDE Connect alkalmazás Name[it]=Applicazione KDE Connect Name[ko]=KDE Connect 프로그램 @@ -27,17 +31,21 @@ Name[uk]=Програма KDE Connect Name[x-test]=xxKDE Connect Applicationxx Name[zh_CN]=KDE Connect 应用程序 GenericName=Device Synchronization +GenericName[ar]=مزامنة الأجهزة +GenericName[ast]=Sincronización de preseos GenericName[ca]=Sincronització de dispositius GenericName[ca@valencia]=Sincronització de dispositius GenericName[cs]=Synchronizace zařízení GenericName[da]=Enhedssynkronisering GenericName[de]=Geräteabgleich +GenericName[el]=Συγχρονισμός συσκευών GenericName[en_GB]=Device Synchronisation GenericName[es]=Sincronización de dispositivos GenericName[et]=Seadmete sünkroonimine GenericName[fi]=Laitteiden synkronointi GenericName[fr]=Synchronisation de périphériques GenericName[gl]=Sincronización de dispositivos +GenericName[he]=סנכרון התקן GenericName[hu]=Eszközszinkronizáció GenericName[it]=Sincronizzazione dispositivo GenericName[ko]=장치 동기화 @@ -55,17 +63,21 @@ GenericName[uk]=Синхронізація із пристроями GenericName[x-test]=xxDevice Synchronizationxx GenericName[zh_CN]=设备同步 Comment=Make all your devices one +Comment[ar]=اجعل أجهزتك كلّها واحدًا +Comment[ast]=Fai tolos tos preseos ún mesmu Comment[ca]=Fa que tots els vostres dispositius siguin un Comment[ca@valencia]=Fa que tots els vostres dispositius siguen un Comment[cs]=Sjednoťte svá zařízení Comment[da]=Gør alle dine enheder til en Comment[de]=Gleichen Sie alle Ihre Geräte ab +Comment[el]=Όλες οι συσκευές σας σε μία Comment[en_GB]=Make all your devices one Comment[es]=Convertir todos sus dispositivos en uno Comment[et]=Kõigi seadmete ühendamine Comment[fi]=Yhdistä kaikki laitteesi toisiinsa Comment[fr]=Unifiez vos périphériques Comment[gl]=Unifique os seus dispositivos. +Comment[he]=הפוך את כך ההתקנים שלך לאחד Comment[hu]=Egyesítse eszközeit Comment[it]=Fai di tutti i tuoi dispositivi un solo dispositivo Comment[ko]=모든 장치를 하나로 동기화 diff --git a/daemon/kdeconnect.desktop b/daemon/kdeconnect.desktop index 84e0c08fc..8331d3fd1 100644 --- a/daemon/kdeconnect.desktop +++ b/daemon/kdeconnect.desktop @@ -10,6 +10,8 @@ X-KDE-Kded-load-on-demand=false X-KDE-Kded-phase=1 Name=KDE Connect +Name[ar]=كدي المتّصل +Name[ast]=KDE Connect Name[bg]=KDE Connect Name[bs]=Konekcija KDE Name[ca]=KDE Connect @@ -17,12 +19,14 @@ Name[ca@valencia]=KDE Connect Name[cs]=KDE Connect Name[da]=KDE Connect Name[de]=KDE-Connect +Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect +Name[he]=KDE Connect Name[hu]=KDE csatlakozás Name[it]=KDE Connect Name[ko]=KDE Connect @@ -41,6 +45,8 @@ Name[x-test]=xxKDE Connectxx Name[zh_CN]=KDE Connect Comment=Connect KDE with your smartphone +Comment[ar]=أوصل كدي بهاتفك الذّكيّ +Comment[ast]=Coneuta KDE col to preséu Comment[bg]=Свържете КДЕ с вашия смартфон Comment[bs]=Konektujte se na KDE sa Vašim mobitelom Comment[ca]=Connecta el KDE amb el vostre telèfon intel·ligent @@ -48,12 +54,14 @@ Comment[ca@valencia]=Connecta el KDE amb el vostre telèfon intel·ligent Comment[cs]=Propojte KDE s vaším telefonem Comment[da]=Forbind KDE med din smartphone Comment[de]=KDE mit Ihren Smartphone verbinden +Comment[el]=Σύνδεση του KDE με το έξυπνο τηλέφωνό σας Comment[en_GB]=Connect KDE with your smartphone Comment[es]=Conecte KDE con su teléfono móvil Comment[et]=KDE ühendamine oma nutitelefoniga Comment[fi]=Yhdistä KDE älypuhelimeesi Comment[fr]=Connectez KDE avec votre smartphone Comment[gl]=Conectar KDE co seu teléfono móbil. +Comment[he]=חבר את KDE לפלאפון החכם שלך Comment[hu]=A KDE csatlakoztatása az okostelefonnal Comment[it]=Connetti KDE con il tuo smartphone Comment[ko]=KDE와 스마트폰 연결 diff --git a/daemon/kdeconnectd.desktop.cmake b/daemon/kdeconnectd.desktop.cmake index d6a93a0ba..023201bb8 100644 --- a/daemon/kdeconnectd.desktop.cmake +++ b/daemon/kdeconnectd.desktop.cmake @@ -8,18 +8,22 @@ OnlyShowIn=KDE;GNOME;Unity;XFCE; NoDisplay=true Name=KDEConnect daemon +Name[ar]=عفريت KDEConnect +Name[ast]=Degorriu KDEConnect Name[bg]=Услуга KDE Connect Name[ca]=Dimoni del KDEConnect Name[ca@valencia]=Dimoni del KDEConnect Name[cs]=Démon KDE Connect Name[da]=KDEConnect-dæmon Name[de]=KDE-Connect-Dienst +Name[el]=Δαίμονας του KDEConnect Name[en_GB]=KDEConnect daemon Name[es]=Demonio de KDE Connect Name[et]=KDEConnecti deemon Name[fi]=KDEConnect-taustapalvelu Name[fr]=Démon KDE Connect Name[gl]=Servizo de KDE Connect +Name[he]=דמון KDEConnect Name[hu]=KDEConnect szolgáltatás Name[it]=Demone KDE Connect Name[ko]=KDE Connect 데몬 diff --git a/fileitemactionplugin/kdeconnectsendfile.desktop b/fileitemactionplugin/kdeconnectsendfile.desktop index 6e3988774..b79982850 100644 --- a/fileitemactionplugin/kdeconnectsendfile.desktop +++ b/fileitemactionplugin/kdeconnectsendfile.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Type=Service Name=Send file via KDE Connect service +Name[ar]=أرسل ملفًّا عبر خدمة «كدي المتّصل» +Name[ast]=Unviar ficheru pente'l serviciu KDE Connect Name[bg]=Изпращане на файл през услугата KDE Connect Name[bs]=Pošalji datoteku putem KDE Connect servisa Name[ca]=Envia un fitxer a través del servei KDE Connect @@ -8,12 +10,14 @@ Name[ca@valencia]=Envia un fitxer a través del servei KDE Connect Name[cs]=Poslat soubor přes službu KDE Connect Name[da]=Send fil via KDE Connect-tjeneste Name[de]=Datei mit KDE-Connect -Dienst versenden +Name[el]=Αποστολή αρχείου μέσω της υπηρεσίας KDE Connect Name[en_GB]=Send file via KDE Connect service Name[es]=Enviar archivo usando el servicio KDE Connect Name[et]=Faili saatmine KDE Connecti teenuse kaudu Name[fi]=Lähetä tiedosto KDE Connect -palvelulla Name[fr]=Envoyer un fichier via le service KDE Connect Name[gl]=Enviar un ficheiro mediante o servizo de KDE Connect +Name[he]=שלח קובץ דרך שירות KDE Connect Name[hu]=Fájl küldése a KDE csatlakozás szolgáltatáson keresztül Name[it]=Invia un file tramite il servizio KDE Connect Name[ko]=KDE Connect 서비스로 파일 보내기 @@ -31,6 +35,8 @@ Name[x-test]=xxSend file via KDE Connect servicexx Name[zh_CN]=通过 KDE Connect 服务发送文件 X-KDE-Library=kdeconnectfileitemaction X-KDE-Submenu=Connect +X-KDE-Submenu[ar]=اتّصل,اتصل +X-KDE-Submenu[ast]=Coneutar X-KDE-Submenu[bg]=Свързване X-KDE-Submenu[bs]=Uspostavi vezu X-KDE-Submenu[ca]=Connecta @@ -38,12 +44,14 @@ X-KDE-Submenu[ca@valencia]=Connecta X-KDE-Submenu[cs]=Připojit X-KDE-Submenu[da]=Forbind X-KDE-Submenu[de]=Verbinden +X-KDE-Submenu[el]=Σύνδεση X-KDE-Submenu[en_GB]=Connect X-KDE-Submenu[es]=Conectar X-KDE-Submenu[et]=Ühendus X-KDE-Submenu[fi]=Yhdistä X-KDE-Submenu[fr]=Connecter X-KDE-Submenu[gl]=Conectar +X-KDE-Submenu[he]=חיבור X-KDE-Submenu[hu]=Csatlakozás X-KDE-Submenu[it]=Connetti X-KDE-Submenu[ko]=연결 diff --git a/kcm/kcm_kdeconnect.desktop b/kcm/kcm_kdeconnect.desktop index a86521086..2f3788fb0 100755 --- a/kcm/kcm_kdeconnect.desktop +++ b/kcm/kcm_kdeconnect.desktop @@ -11,6 +11,8 @@ X-KDE-ParentApp=kcontrol X-KDE-System-Settings-Parent-Category=hardware Name=KDE Connect +Name[ar]=كدي المتّصل +Name[ast]=KDE Connect Name[bg]=KDE Connect Name[bs]=Konekcija KDE Name[ca]=KDE Connect @@ -18,12 +20,14 @@ Name[ca@valencia]=KDE Connect Name[cs]=KDE Connect Name[da]=KDE Connect Name[de]=KDE-Connect +Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect +Name[he]=KDE Connect Name[hu]=KDE csatlakozás Name[it]=KDE Connect Name[ko]=KDE Connect @@ -42,17 +46,21 @@ Name[x-test]=xxKDE Connectxx Name[zh_CN]=KDE Connect Comment=Connect and sync your devices +Comment[ar]=اتّصل وزامن أجهزتك +Comment[ast]=Coneuta y sincroniza los tos preseos Comment[ca]=Connecta i sincronitza els vostres dispositius Comment[ca@valencia]=Connecta i sincronitza els vostres dispositius Comment[cs]=Připojte a synchronizujte svá zařízení Comment[da]=Forbind og synkronisér dine enheder Comment[de]=Verbinden und Abgleichen Ihrer Geräte +Comment[el]=Σύνδεση και συγχρονισμός των συσκευών σας Comment[en_GB]=Connect and sync your devices Comment[es]=Conectar y sincronizar sus dispositivos Comment[et]=Oma seadmete ühendamine ja sünkroonimine Comment[fi]=Yhdistä ja synkronoi laitteitasi Comment[fr]=Connectez et synchronisez vos périphériques Comment[gl]=Conecte e sincronice os seus dispositivos. +Comment[he]=חבר וסנכרן את ההתקנים שלך Comment[hu]=Csatlakoztassa és szinkronizálja eszközeit Comment[it]=Connetti e sincronizza i tuoi dispositivi Comment[ko]=내 장치에 연결하고 동기화 @@ -70,6 +78,8 @@ Comment[x-test]=xxConnect and sync your devicesxx Comment[zh_CN]=连接并同步您的设备 X-KDE-Keywords=Network,Android,Devices +X-KDE-Keywords[ar]=شبكة,أندرويد,اندرويد,جهاز,أجهزة +X-KDE-Keywords[ast]=Rede,Android,Preseos X-KDE-Keywords[bg]=Мрежа,Андроид,Устройства X-KDE-Keywords[bs]=Mreža,Android,Uređaji X-KDE-Keywords[ca]=Xarxa,Android,Dispositius @@ -77,12 +87,14 @@ X-KDE-Keywords[ca@valencia]=Xarxa,Android,Dispositius X-KDE-Keywords[cs]=Síť,Android,Zařízení X-KDE-Keywords[da]=Netværk,Android,Enheder X-KDE-Keywords[de]=Netzwerk,Android,Geräte +X-KDE-Keywords[el]=Δίκτυο,Android,Συσκευές X-KDE-Keywords[en_GB]=Network,Android,Devices X-KDE-Keywords[es]=Red,Android,Dispositivos X-KDE-Keywords[et]=Võrk,Android,Seadmed X-KDE-Keywords[fi]=Verkko,Android,Laitteet X-KDE-Keywords[fr]=Réseau,Android,Périphériques X-KDE-Keywords[gl]=rede,Android,dispositivos +X-KDE-Keywords[he]=Network,Android,Devices,רשתות,אנדרואיד,התקנים,מכשירים X-KDE-Keywords[hu]=Hálózat,Android,Eszközök X-KDE-Keywords[it]=Rete,Android,Dispositivi X-KDE-Keywords[ko]=Network,Android,Devices,네트워크,안드로이드,장치 diff --git a/kcm/org.kde.kdeconnect.kcm.desktop b/kcm/org.kde.kdeconnect.kcm.desktop index 8c8d5c043..aa766c659 100755 --- a/kcm/org.kde.kdeconnect.kcm.desktop +++ b/kcm/org.kde.kdeconnect.kcm.desktop @@ -4,16 +4,20 @@ Icon=kdeconnect Terminal=false Exec=kcmshell5 kcm_kdeconnect Name=KDE Connect Settings +Name[ar]=إعدادات كدي المتّصل +Name[ast]=Axustes KDE Connect Name[ca]=Arranjament del KDE Connect Name[ca@valencia]=Arranjament del KDE Connect Name[cs]=Nastavení KDE Connect Name[da]=Indstilling af KDE Connect Name[de]=KDE-Connect-Einstellungen +Name[el]=Ρυθμίσεις KDE Connect Name[en_GB]=KDE Connect Settings Name[es]=Ajustes de KDE Connect Name[et]=KDE Connecti seadistused Name[fi]=KDE Connectin asetukset Name[gl]=Configuración de KDE Connect +Name[he]=הגדרות KDE Connect Name[hu]=A KDE Connect beállításai Name[it]=Impostazioni di KDE Connect Name[ko]=KDE Connect 설정 @@ -29,17 +33,21 @@ Name[uk]=Параметри KDE Connect Name[x-test]=xxKDE Connect Settingsxx Name[zh_CN]=KDE Connect 设置 GenericName=Connect and sync your devices +GenericName[ar]=اتّصل وزامن أجهزتك +GenericName[ast]=Coneuta y sincroniza los tos preseos GenericName[ca]=Connecta i sincronitza els vostres dispositius GenericName[ca@valencia]=Connecta i sincronitza els vostres dispositius GenericName[cs]=Připojte a synchronizujte svá zařízení GenericName[da]=Forbind og synkronisér dine enheder GenericName[de]=Verbinden und Abgleichen Ihrer Geräte +GenericName[el]=Σύνδεση και συγχρονισμός των συσκευών σας GenericName[en_GB]=Connect and sync your devices GenericName[es]=Conectar y sincronizar sus dispositivos GenericName[et]=Oma seadmete ühendamine ja sünkroonimine GenericName[fi]=Yhdistä ja synkronoi laitteitasi GenericName[fr]=Connectez et synchronisez vos périphériques GenericName[gl]=Conecte e sincronice os seus dispositivos +GenericName[he]=Connect and sync your devices GenericName[hu]=Csatlakoztassa és szinkronizálja eszközeit GenericName[it]=Connetti e sincronizza i tuoi dispositivi GenericName[ko]=내 장치에 연결하고 동기화 diff --git a/org.kde.kdeconnect.nonplasma.desktop b/org.kde.kdeconnect.nonplasma.desktop index d265c9bfa..0511cc12c 100755 --- a/org.kde.kdeconnect.nonplasma.desktop +++ b/org.kde.kdeconnect.nonplasma.desktop @@ -1,15 +1,19 @@ [Desktop Entry] Name=KDE Connect Monitor +Name[ar]=مرقاب «كدي المتّصل» +Name[ast]=Monitor de KDE Connect Name[ca]=Controlador del KDE Connect Name[ca@valencia]=Controlador del KDE Connect Name[cs]=Monitor KDE Connect Name[da]=KDE Connect-overvåger Name[de]=KDE-Connect-Monitor +Name[el]=Εφαρμογή εποπτείας του KDE Connect Name[en_GB]=KDE Connect Monitor Name[es]=Monitor de KDE Connect Name[et]=KDE Connecti monitor Name[fi]=KDE Connect -valvonta Name[gl]=Monitor de KDE Connect +Name[he]=מנטר KDE Connect Name[hu]=KDE Connect monitor Name[it]=Monitor di KDE Connect Name[ko]=KDE Connect 모니터 @@ -25,16 +29,20 @@ Name[uk]=Монітор KDE Connect Name[x-test]=xxKDE Connect Monitorxx Name[zh_CN]=KDE Connect 监视器 Comment=Display information about your devices +Comment[ar]=اعرض معلومات عن أجهزتك +Comment[ast]=Amuesa información tocante a los tos preseos Comment[ca]=Mostra la informació dels vostres dispositius Comment[ca@valencia]=Mostra la informació dels vostres dispositius Comment[cs]=Zobrazit informace o vašich zařízeních Comment[da]=Vis information om dine enheder Comment[de]=Anzeige von Informationen über Ihre Geräte +Comment[el]=Προβολή πληροφοριών σχετικά με τις συσκευές σας Comment[en_GB]=Display information about your devices Comment[es]=Mostrar información sobre sus dispositivos Comment[et]=Teabe kuvamine seadmete kohta Comment[fi]=Näyttää tietoa laitteistasi Comment[gl]=Mostrar información sobre os dispositivos +Comment[he]=הצג מידע עך ההתקנים שלך Comment[hu]=Információk megjelenítése az eszközeiről Comment[it]=Visualizza informazioni sui tuoi dispositivi Comment[ko]=장치 정보 표시 diff --git a/plasmoid/package/metadata.desktop b/plasmoid/package/metadata.desktop index 94953bd96..3e1284cb4 100644 --- a/plasmoid/package/metadata.desktop +++ b/plasmoid/package/metadata.desktop @@ -1,5 +1,7 @@ [Desktop Entry] Name=KDE Connect +Name[ar]=كدي المتّصل +Name[ast]=KDE Connect Name[bg]=KDE Connect Name[bs]=Konekcija KDE Name[ca]=KDE Connect @@ -7,12 +9,14 @@ Name[ca@valencia]=KDE Connect Name[cs]=KDE Connect Name[da]=KDE Connect Name[de]=KDE-Connect +Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect +Name[he]=KDE Connect Name[hu]=KDE csatlakozás Name[it]=KDE Connect Name[ko]=KDE Connect @@ -30,6 +34,8 @@ Name[uk]=З’єднання KDE Name[x-test]=xxKDE Connectxx Name[zh_CN]=KDE Connect Comment=Show notifications from your devices using KDE Connect +Comment[ar]=أظهر الإخطارات من أجهزتك باستخدام «كدي المتّصل» +Comment[ast]=Amuesa avisos de los tos preseos usando KDE Connect Comment[bg]=Показване на уведомления от вашите устройства чрез KDE Connect Comment[bs]=Prikaži obavlještenja sa uređaja koji koriste KDE konekciju Comment[ca]=Mostra les notificacions dels vostres dispositius emprant el KDE Connect @@ -37,12 +43,14 @@ Comment[ca@valencia]=Mostra les notificacions dels vostres dispositius emprant e Comment[cs]=Zobrazit upozornění z vašich zařízení pomocí KDE Connect Comment[da]=Vis bekendtgørelser fra dine enheder med KDE Connect Comment[de]=Zeigt Benachrichtigungen von Ihren Geräten mit KDE-Connect +Comment[el]=Προβολή ειδοποιήσεων από τις συσκευές σας με το KDE Connect Comment[en_GB]=Show notifications from your devices using KDE Connect Comment[es]=Mostrar notificaciones de sus dispositivos usando KDE Connect Comment[et]=Seadmete märguannete näitamine KDE Connecti vahendusel Comment[fi]=Näytä laitteidesi ilmoitukset KDE Connectilla Comment[fr]=Afficher les notifications provenant de vos périphériques à l'aide de KDE Connect Comment[gl]=Mostrar notificacións de dispositivos usando KDE Connect. +Comment[he]=הראה התראות מההתקן שלך באמצעות KDE Connect Comment[hu]=Az eszközökről származó értesítések megjelenítése a KDE csatlakozás használatával Comment[it]=Mostra le notifiche dei tuoi dispositivi tramite KDE Connect Comment[ko]=KDE Connect로 장치에 표시된 알림 보기 diff --git a/plugins/kdeconnect.notifyrc b/plugins/kdeconnect.notifyrc index 87bf46853..de59ea456 100644 --- a/plugins/kdeconnect.notifyrc +++ b/plugins/kdeconnect.notifyrc @@ -1,6 +1,8 @@ [Global] IconName=kdeconnect Name=KDE Connect +Name[ar]=كدي المتّصل +Name[ast]=KDE Connect Name[bg]=KDE Connect Name[bs]=Konekcija KDE Name[ca]=KDE Connect @@ -8,12 +10,14 @@ Name[ca@valencia]=KDE Connect Name[cs]=KDE Connect Name[da]=KDE Connect Name[de]=KDE-Connect +Name[el]=KDE Connect Name[en_GB]=KDE Connect Name[es]=KDE Connect Name[et]=KDE Connect Name[fi]=KDE Connect Name[fr]=KDE Connect Name[gl]=KDE Connect +Name[he]=KDE Connect Name[hu]=KDE csatlakozás Name[it]=KDE Connect Name[ko]=KDE Connect @@ -31,6 +35,8 @@ Name[uk]=З’єднання KDE Name[x-test]=xxKDE Connectxx Name[zh_CN]=KDE Connect Comment=Notifications from your devices +Comment[ar]=الإخطارات من أجهزتك +Comment[ast]=Avisos de los tos preseos Comment[bg]=Уведомления от устройствата ви Comment[bs]=Notifikacija sa Vašeg uređaja Comment[ca]=Notificacions dels vostres dispositius @@ -38,12 +44,14 @@ Comment[ca@valencia]=Notificacions dels vostres dispositius Comment[cs]=Oznamování z vašich zařízení Comment[da]=Bekendtgørelser fra dine enheder Comment[de]=Benachrichtigungen von Ihren Geräten +Comment[el]=Ειδοποιήσεις από τις συσκευές σας Comment[en_GB]=Notifications from your devices Comment[es]=Notificaciones de sus dispositivos Comment[et]=Seadmete märguanded Comment[fi]=Laitteesi ilmoitukset Comment[fr]=Notifications provenant de vos périphériques Comment[gl]=Notificacións de dispositivos. +Comment[he]=התראות מההתקן שלך Comment[hu]=Az eszközökről származó értesítések Comment[it]=Notifiche dai tuoi dispositivi Comment[ko]=장치에 표시된 알림 @@ -63,6 +71,8 @@ Comment[zh_CN]=来自你设备的通知 [Event/pairingRequest] Name=Pairing Request +Name[ar]=طلب اقتران +Name[ast]=Solicitú d'empareyamientu Name[bg]=Заявка за сдвояване Name[bs]=Zahtjev za uparivanje Name[ca]=Sol·licitud d'aparellament @@ -70,12 +80,14 @@ Name[ca@valencia]=Sol·licitud d'aparellament Name[cs]=Požadavek na párování Name[da]=Parringsanmodning Name[de]=Verbindungsanfrage +Name[el]=Αίτημα σύζευξης Name[en_GB]=Pairing Request Name[es]=Petición de vinculación Name[et]=Paardumissoov Name[fi]=Paripyyntö Name[fr]=Demande d'appariement Name[gl]=Solicitude de emparellamento +Name[he]=בקשת התאמה Name[hu]=Párosítási kérés Name[it]=Richiesta di associazione Name[ko]=연결 요청 @@ -92,9 +104,14 @@ Name[uk]=Запит щодо пов’язування Name[x-test]=xxPairing Requestxx Name[zh_CN]=配对请求 Comment=Pairing request received from a device +Comment[ar]=استُلم طلب اقتران من جهاز +Comment[ast]=Solicitú d'empareyamientu recibida d'un preséu Comment[ca]=Les sol·licituds d'aparellament rebudes des d'un dispositiu Comment[ca@valencia]=Les sol·licituds d'aparellament rebudes des d'un dispositiu Comment[cs]=Požadavek na párování přijat ze zařízení +Comment[da]=Parringsanmodning modtaget fra en enhed +Comment[de]=Verbindungsanfrage von einem Gerät erhalten +Comment[el]=Λήφθηκε αίτημα σύζευξης από μια συσκευή Comment[en_GB]=Pairing request received from a device Comment[es]=Petición de vinculación recibida desde un dispositivo Comment[et]=Seadmelt saadi paardumissoov @@ -102,9 +119,10 @@ Comment[fi]=Saatiin paripyyntö laitteelta Comment[gl]=Recibiuse unha solicitude de emparellamento dun dispositivo. Comment[he]=התקבלה בקשת התאמה מהתקן Comment[it]=Richiesta di associazione ricevuta da un dispositivo -Comment[nl]=Verzoek om een paar te maken ontvangen van een apparaat +Comment[nl]=Verzoek om een paar te maken ontvangen van apparaten Comment[pl]=Otrzymano żądanie parowania z urządzenia Comment[pt]=Pedido de emparelhamento recebido de um dispositivo +Comment[pt_BR]=Solicitação de emparelhamento recebida de um dispositivo Comment[sk]=Požiadavka na spárovanie prijatá zo zariadenia Comment[sv]=Begäran om ihopparning mottagen från en apparat Comment[uk]=Від пристрою отримано запит щодо пов’язування @@ -113,18 +131,22 @@ Action=Popup [Event/callReceived] Name=Incoming Call +Name[ar]=مكالمة واردة +Name[ast]=Llamada entrante Name[bg]=Входящо обаждане Name[ca]=Trucada entrant Name[ca@valencia]=Trucada entrant Name[cs]=Příchozí hovor Name[da]=Indkommende opkald Name[de]=Eingehender Anruf +Name[el]=Εισερχόμενη κλήση Name[en_GB]=Incoming Call Name[es]=Llamada entrante Name[et]=Sisenev kõne Name[fi]=Saapuva puhelu Name[fr]=Appel entrant Name[gl]=Chamada entrante +Name[he]=שיחה נכנסת Name[hu]=Bejövő hívás Name[it]=Chiamata in ingresso Name[ko]=수신 전화 @@ -141,6 +163,8 @@ Name[uk]=Вхідний дзвінок Name[x-test]=xxIncoming Callxx Name[zh_CN]=收到呼叫 Comment=Someone is calling you +Comment[ar]=ثمّة من يتّصل بك +Comment[ast]=Daquién ta llamándote Comment[bg]=Някой ви се обажда Comment[bs]=Neko Vas zove Comment[ca]=Algú us està trucant @@ -148,12 +172,14 @@ Comment[ca@valencia]=Algú vos està trucant Comment[cs]=Někdo vám volá Comment[da]=Nogen ringer til dig Comment[de]=Sie werden angerufen +Comment[el]=Κάποιος σας καλεί Comment[en_GB]=Someone is calling you Comment[es]=Alguien le está llamando Comment[et]=Keegi helistab sulle Comment[fi]=Sinulle soitetaan Comment[fr]=Quelqu'un vous appelle Comment[gl]=Está a recibir unha chamada de alguén. +Comment[he]=מישהו מתקשר אילך Comment[hu]=Valaki hívja önt Comment[it]=Chiamata in arrivo Comment[ko]=누군가가 전화를 걸었음 @@ -174,18 +200,22 @@ Action=Popup [Event/missedCall] Name=Missed Call +Name[ar]=مكالمة فائتة +Name[ast]=Llamada perdida Name[bg]=Пропуснато обаждане Name[ca]=Trucada perduda Name[ca@valencia]=Trucada perduda Name[cs]=Zmeškaný hovor Name[da]=Ubesvaret opkald Name[de]=Verpasster Anruf +Name[el]=Αναπάντητη κλήση Name[en_GB]=Missed Call Name[es]=Llamada perdida Name[et]=Vastamata kõne Name[fi]=Vastaamaton puhelu Name[fr]=Appel manqué Name[gl]=Chamada perdida +Name[he]=שיחה שלא נענתה Name[hu]=Nem fogadott hívás Name[it]=Chiamate perse Name[ko]=부재 중 전화 @@ -202,6 +232,8 @@ Name[uk]=Пропущений дзвінок Name[x-test]=xxMissed Callxx Name[zh_CN]=未接来电 Comment=You have a missed call +Comment[ar]=لقد فاتتك مكالمة +Comment[ast]=Tienes una llamada perdida Comment[bg]=Имате неприето обаждане Comment[bs]=Imate propušten poziv Comment[ca]=Teniu una trucada perduda @@ -209,12 +241,14 @@ Comment[ca@valencia]=Teniu una trucada perduda Comment[cs]=Máte zmeškaný hovor Comment[da]=Du har et ubesvaret opkald Comment[de]=Sie haben einen Anruf verpasst +Comment[el]=Έχετε μια αναπάντητη κλήση Comment[en_GB]=You have a missed call Comment[es]=Tiene una llamada perdida Comment[et]=Kõnele jäi vastamata Comment[fi]=Sinulla on vastaamaton puhelu Comment[fr]=Vous avez un appel manqué Comment[gl]=Ten unha chamada perdida. +Comment[he]=יש לך שיחה שלא נענטה Comment[hu]=Nem fogadott hívása van Comment[it]=Hai una chiamata persa Comment[ko]=부재 중 전화가 있음 @@ -235,18 +269,22 @@ Action=Popup [Event/smsReceived] Name=SMS Received +Name[ar]=استُلمت رسالة +Name[ast]=SMS recibíu Name[bg]=Получен SMS Name[ca]=S'ha rebut un SMS Name[ca@valencia]=S'ha rebut un SMS Name[cs]=SMS přijata Name[da]=SMS-modtaget Name[de]=SMS empfangen +Name[el]=Λήφθηκε SMS Name[en_GB]=SMS Received Name[es]=SMS recibido Name[et]=SMS-i saamine Name[fi]=Saatiin tekstiviesti Name[fr]=SMS reçu Name[gl]=Recibiuse un SMS +Name[he]=התקבלה הודעת SMS Name[hu]=SMS érkezett Name[it]=SMS ricevuto Name[ko]=SMS 받음 @@ -263,6 +301,8 @@ Name[uk]=Отримано SMS Name[x-test]=xxSMS Receivedxx Name[zh_CN]=收到短信 Comment=Someone sent you an SMS +Comment[ar]=ثمّة من أرسل رسالة إليك +Comment[ast]=Daquién unvióte un SMS Comment[bg]=Някой ви изпрати текстово съобщение Comment[bs]=Neko Vam je poslao SMS poruku Comment[ca]=Algú us ha enviat un SMS @@ -270,12 +310,14 @@ Comment[ca@valencia]=Algú vos ha enviat un SMS Comment[cs]=Někdo vám poslal SMS Comment[da]=Nogen sendte dig en SMS Comment[de]=Jemand hat Ihnen eine SMS gesendet +Comment[el]=Κάποιος σας έστειλε SMS Comment[en_GB]=Someone sent you an SMS Comment[es]=Alguien le ha enviado un SMS Comment[et]=Keegi saatis sulle SMS-i Comment[fi]=Sinulle lähetettiin tekstiviesti Comment[fr]=Quelqu'un vous a envoyé un SMS Comment[gl]=Recibiu unha mensaxe SMS de alguén. +Comment[he]=מישהו שלח לך SMS Comment[hu]=Valaki SMS-t küldött önnek Comment[it]=Hai ricevuto un SMS Comment[ko]=누군가가 문자 메시지를 보냄 @@ -296,12 +338,15 @@ Action=Popup [Event/batteryLow] Name=Battery Low +Name[ar]=البطّاريّة ضعيفة +Name[ast]=Batería baxa Name[bg]=Изтощена батерия Name[ca]=Bateria baixa Name[ca@valencia]=Bateria baixa Name[cs]=Baterie je téměř vybitá Name[da]=Lavt batteri Name[de]=Akku-Ladestand niedrig +Name[el]=Μπαταρία χαμηλή Name[en_GB]=Battery Low Name[es]=Batería baja Name[et]=Aku laetus on madal @@ -324,6 +369,8 @@ Name[uk]=Низький рівень заряду Name[x-test]=xxBattery Lowxx Name[zh_CN]=电池电量低 Comment=Your battery is in low state +Comment[ar]=بطّاريّتك في الحالة الضعيفة +Comment[ast]=La to batería ta nun estáu baxu Comment[bg]=Батерията ви е с нисък заряд Comment[bs]=Vaša baterija je gotovo prazna Comment[ca]=La bateria està baixa @@ -331,12 +378,14 @@ Comment[ca@valencia]=La bateria està baixa Comment[cs]=Máte slabou baterii Comment[da]=Dit batteri er på lavt niveau Comment[de]=Der Ladestand Ihres Akkus ist niedrig +Comment[el]=Η μπαταρία σας είναι σε χαμηλό επίπεδο Comment[en_GB]=Your battery is in low state Comment[es]=La batería está en nivel bajo Comment[et]=Aku täituvus on madal Comment[fi]=Akkusi virta on vähissä Comment[fr]=Votre batterie est faible Comment[gl]=A batería está esgotándose. +Comment[he]=הבטריה שלך הולכת להגמר Comment[hu]=Az akkumulátora feszültsége alacsony Comment[it]=La tua batteria è al livello basso Comment[ko]=배터리가 부족함 @@ -357,18 +406,22 @@ Action=Popup [Event/pingReceived] Name=Ping Received +Name[ar]=استُلمت وكزة +Name[ast]=Ping recibíu Name[bg]=Пингът е приет Name[ca]=S'ha rebut un ping Name[ca@valencia]=S'ha rebut un ping Name[cs]=Ping přijat Name[da]=Ping modtaget Name[de]=Ping empfangen +Name[el]=Λήφθηκε ping Name[en_GB]=Ping Received Name[es]=Ping recibido Name[et]=Pingi saamine Name[fi]=Saatiin tiedustelupaketti Name[fr]=Ping reçu Name[gl]=Recibiuse un ping +Name[he]=התקבל פינג Name[hu]=Ping érkezett Name[it]=Ping ricevuto Name[ko]=핑 받음 @@ -385,6 +438,8 @@ Name[uk]=Отримано сигнал підтримки зв’язку Name[x-test]=xxPing Receivedxx Name[zh_CN]=收到 Ping Comment=Ping received +Comment[ar]=استُلمت وكزة +Comment[ast]=Recibióse un ping Comment[bg]=Пингът е приет Comment[bs]=Primili ste ping Comment[ca]=S'ha rebut un ping @@ -392,12 +447,14 @@ Comment[ca@valencia]=S'ha rebut un ping Comment[cs]=Ping přijat Comment[da]=Ping modtaget Comment[de]=Ping empfangen +Comment[el]=Λήφθηκε ping Comment[en_GB]=Ping received Comment[es]=Ping recibido Comment[et]=Pingi saamine Comment[fi]=Saatiin tiedustelupaketti Comment[fr]=Ping reçu Comment[gl]=Recibiuse un “ping”. +Comment[he]=התקבל פינג Comment[hu]=Ping érkezett Comment[it]=Hai ricevuto un ping Comment[ko]=핑 받음 @@ -418,18 +475,22 @@ Action=Popup [Event/notification] Name=Generic Notification +Name[ar]=إخطار عموميّ +Name[ast]=Avisu xenéricu Name[bg]=Общо уведомление Name[ca]=Notificació genèrica Name[ca@valencia]=Notificació genèrica Name[cs]=Obecná hlášení Name[da]=Generisk bekendtgørelse Name[de]=Allgemeine Benachrichtigung +Name[el]=Γενική ειδοποίηση Name[en_GB]=Generic Notification Name[es]=Notificación genérica Name[et]=Üldine märguanne Name[fi]=Yleinen ilmoitus Name[fr]=Notification Name[gl]=Notificación xenérica +Name[he]=התראה כללית Name[hu]=Általános értesítés Name[it]=Notifica generica Name[ko]=일반 알림 @@ -446,6 +507,8 @@ Name[uk]=Загальне сповіщення Name[x-test]=xxGeneric Notificationxx Name[zh_CN]=一般通知 Comment=Notification received +Comment[ar]=استُلم إخطار +Comment[ast]=Avisu recibíu Comment[bg]=Уведомлението е прието Comment[bs]=Primjeno obavještenje Comment[ca]=Notificació rebuda @@ -453,12 +516,14 @@ Comment[ca@valencia]=Notificació rebuda Comment[cs]=Bylo přijato upozornění Comment[da]=Bekendtgørelse modtaget Comment[de]=Benachrichtigung eingegangen +Comment[el]=Λήφθηκε ειδοποίηση Comment[en_GB]=Notification received Comment[es]=Notificación recibida Comment[et]=Saadi märguanne Comment[fi]=Saatiin ilmoitus Comment[fr]=Notification reçue Comment[gl]=Recibiuse unha notificación. +Comment[he]=התראה התקבלה Comment[hu]=Értesítés érkezett Comment[it]=Hai ricevuto una notifica Comment[ko]=알림 받음 @@ -479,18 +544,22 @@ Action=Popup [Event/transferReceived] Name=File Transfer +Name[ar]=نقل الملفّات +Name[ast]=Tresferencia de ficheros Name[bg]=Прехвърляне на файл Name[ca]=Transferència de fitxers Name[ca@valencia]=Transferència de fitxers Name[cs]=Přenos souboru Name[da]=Filoverførsel Name[de]=Dateiübertragung +Name[el]=Μεταφορά αρχείου Name[en_GB]=File Transfer Name[es]=Transferencia de archivo Name[et]=Failiedastus Name[fi]=Tiedostonsiirto Name[fr]=Transfert de fichiers Name[gl]=Transferencia dun ficheiro +Name[he]=העברת קובץ Name[hu]=Fájlátvitel Name[it]=Trasferimento file Name[ko]=파일 전송 @@ -507,18 +576,22 @@ Name[uk]=Перенесення файлів Name[x-test]=xxFile Transferxx Name[zh_CN]=文件传送 Comment=Incoming file +Comment[ar]=ملفّ قادم +Comment[ast]=Ficheru entrante Comment[bg]=Входящ файл Comment[ca]=Fitxer entrant Comment[ca@valencia]=Fitxer entrant Comment[cs]=Příchozí soubor Comment[da]=Indkommende fil Comment[de]=Eingehende Datei +Comment[el]=Εισερχόμενο αρχείο Comment[en_GB]=Incoming file Comment[es]=Archivo entrante Comment[et]=Sisenev fail Comment[fi]=Saapuva tiedosto Comment[fr]=Fichier entrant Comment[gl]=Ficheiro entrante +Comment[he]=קובץ מגיע Comment[hu]=Bejövő fájl Comment[it]=File in ingresso Comment[ko]=파일 수신 diff --git a/plugins/kdeconnect_plugin.desktop b/plugins/kdeconnect_plugin.desktop index 753615c3e..ad7c03667 100644 --- a/plugins/kdeconnect_plugin.desktop +++ b/plugins/kdeconnect_plugin.desktop @@ -3,6 +3,8 @@ Type=ServiceType X-KDE-ServiceType=KdeConnect/Plugin X-KDE-Derived=KPluginInfo Name=KDEConnect Plugin +Name[ar]=ملحقة KDEConnect +Name[ast]=Complementu KDEConnect Name[bg]=Приставка на KDEConnect Name[bs]=Priključak za KDE konekciju Name[ca]=Connector del KDE Connect @@ -10,12 +12,14 @@ Name[ca@valencia]=Connector del KDE Connect Name[cs]=Modul KDEConnect Name[da]=KDEConnect-plugin Name[de]=KDEConnect-Modul +Name[el]=Πρόσθετο του KDEConnect Name[en_GB]=KDEConnect Plugin Name[es]=Complemento de KDEConnect Name[et]=KDEConnecti plugin Name[fi]=KDE Connect -liitännäinen Name[fr]=Module externe KDEConnect Name[gl]=Complemento de KDE Connect +Name[he]=תוספי KDEConnect Name[hu]=KDEConnect bővítmény Name[it]=Estensione KDEConnect Name[ko]=KDEConnect 플러그인 diff --git a/plugins/pausemusic/kdeconnect_pausemusic_config.desktop b/plugins/pausemusic/kdeconnect_pausemusic_config.desktop index ba6d27edd..e4ec1547b 100644 --- a/plugins/pausemusic/kdeconnect_pausemusic_config.desktop +++ b/plugins/pausemusic/kdeconnect_pausemusic_config.desktop @@ -6,6 +6,8 @@ X-KDE-Library=kdeconnect_pausemusic_config X-KDE-ParentComponents=kdeconnect_pausemusic Name=Pause Music plugin settings +Name[ar]=إعدادات ملحقة إلباث الموسيقى +Name[ast]=Axustes del complementu de posar música Name[bg]=Настройки на приставката за поставяне на пауза Name[bs]=Zaustavi Muziku postavke dodatka Name[ca]=Ajustaments del connector Pausa la música @@ -13,12 +15,14 @@ Name[ca@valencia]=Ajustaments del connector Pausa la música Name[cs]=Nastavení modulu Pozastavení hudby Name[da]=Indstilling af plugin til at sætte musik på pause Name[de]=Modul-Einstellungen für das Anhalten der Musikwiedergabe +Name[el]=Ρυθμίσεις προσθέτου παύσης μουσικής Name[en_GB]=Pause Music plugin settings Name[es]=Ajustes del complemento PauseMusic Name[et]=Muusika peatamise plugina seadistused Name[fi]=Keskeytä musiikki -liitännäisen asetukset Name[fr]=Paramètres du module de mise en pause Name[gl]=Configuración do complemento para deter a música +Name[he]=הגדרות התוספת השהיית המוזיקה Name[hu]=Zene szüneteltetése bővítmény beállításai Name[it]=Impostazioni estensione Sospendi musica Name[ko]=음악 일시 정지 플러그인 설정 diff --git a/plugins/runcommand/kdeconnect_runcommand_config.desktop b/plugins/runcommand/kdeconnect_runcommand_config.desktop index 86031b431..604e816fe 100644 --- a/plugins/runcommand/kdeconnect_runcommand_config.desktop +++ b/plugins/runcommand/kdeconnect_runcommand_config.desktop @@ -6,14 +6,22 @@ X-KDE-Library=kdeconnect_runcommand_config X-KDE-ParentComponents=kdeconnect_runcommand Name=Run Command plugin settings +Name[ar]=إعدادات ملحقة تشغيل الأوامر +Name[ast]=Axustes del complementu d'executar comandos Name[ca]=Ajustaments del connector Executa ordres Name[ca@valencia]=Ajustaments del connector Executa ordes Name[cs]=Nastavení modulu Spustit příkaz +Name[da]=Indstilling af kør kommando-plugin +Name[de]=Modul-Einstellungen für Befehlsausführung +Name[el]=Ρυθμίσεις προσθέτου εκτέλεσης εντολής Name[en_GB]=Run Command plugin settings Name[es]=Ajustes del complemento de ejecución de órdenes Name[et]=Käsu käivitamise plugina seadistused Name[fi]=Suorita komento -liitännäisen asetukset +Name[gl]=Configuración do complemento de orde de executar +Name[he]=הגדרת התוסף הרץ פקודה Name[it]=Impostazioni estensione Esegui comando +Name[ko]=명령 실행 플러그인 설정 Name[nl]=Plug-in-instellingen van commando Uitvoeren Name[pl]=Ustawienia wtyczki wykonywania polecenia Name[pt]=Configuração do 'plugin' de execução de comandos @@ -24,5 +32,6 @@ Name[sv]=Inställningar av insticksprogram för kör kommando Name[tr]=Komut Çalıştır eklenti ayarları Name[uk]=Параметри додатка запуску команд Name[x-test]=xxRun Command plugin settingsxx +Name[zh_CN]=执行命令插件设置 Categories=Qt;KDE;X-KDE-settings-kdeconnect; diff --git a/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop b/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop index fdd505b66..7d7b63cfe 100644 --- a/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop +++ b/plugins/sendnotifications/kdeconnect_sendnotifications_config.desktop @@ -6,9 +6,14 @@ X-KDE-Library=kdeconnect_sendnotifications_config X-KDE-ParentComponents=kdeconnect_sendnotifications Name=Notification synchronization plugin settings +Name[ar]=إعدادات ملحقة مزامنة الإخطارات +Name[ast]=Axustes del complementu de sincronización d'avisos Name[ca]=Ajustament del connector Sincronitza les notificacions Name[ca@valencia]=Ajustament del connector Sincronitza les notificacions Name[cs]=Nastavení modulu synchronizace upozornění +Name[da]=Indstilling af plugin til bekendtgørelsessynkronisering +Name[de]=Einstellungen für Benachrichtigungsabgleich-Modul +Name[el]=Ρυθμίσεις πρόσθετου συγχρονισμού ειδοποιήσεων Name[en_GB]=Notification synchronisation plugin settings Name[es]=Preferencias del complemento de sincronización de notificaciones Name[et]=Märguande sünkroonimise plugina seaditused @@ -16,9 +21,10 @@ Name[fi]=Ilmoitusten synkronointiliitännäisen asetukset Name[gl]=Configuración do complemento de sincronización de notificacións Name[he]=הגדרת התוסף סנכרון התראות Name[it]=Impostazioni dell'estensione di sincronizzazione delle notifiche -Name[nl]=Instellingen voor meldingen van synchronisatie plug-in +Name[nl]=Instellingen van plug-in voor synchronisatie van meldingen Name[pl]=Ustawienia wtyczki synchronizującej powiadomienia Name[pt]=Configuração do 'plugin' de sincronização das notificações +Name[pt_BR]=Configuração do plugin de sincronização das notificações Name[sk]=Nastavenia pluginu notifikácií synchronizácie Name[sv]=Inställningar av insticksprogram för underrättelsesynkronisering Name[uk]=Параметри додатка синхронізації сповіщень diff --git a/plugins/share/kdeconnect_share_config.desktop b/plugins/share/kdeconnect_share_config.desktop index 060bfe649..08b62411d 100644 --- a/plugins/share/kdeconnect_share_config.desktop +++ b/plugins/share/kdeconnect_share_config.desktop @@ -6,6 +6,8 @@ X-KDE-Library=kdeconnect_share_config X-KDE-ParentComponents=kdeconnect_share Name=Share plugin settings +Name[ar]=إعدادات ملحقة المشاركة +Name[ast]=Axustes del complementu de compartir Name[bg]=Настройки на приставката за споделяне Name[bs]=Podijeli postavke dodatka Name[ca]=Ajustaments del connector Compartició @@ -13,12 +15,14 @@ Name[ca@valencia]=Ajustaments del connector Compartició Name[cs]=Nastavení modulu sdílení Name[da]=Indstilling af deling-plugin Name[de]=Modul-Einstellungen für Veröffentlichung +Name[el]=Ρυθμίσεις προσθέτου κοινής χρήσης Name[en_GB]=Share plugin settings Name[es]=Ajustes del complemento para compartir Name[et]=Jagamisplugina seadistused Name[fi]=Jakoliitännäisen asetukset Name[fr]=Paramètres du module de partage Name[gl]=Configuración do complemento de compartir +Name[he]=שתף את הגדרות התוספים Name[hu]=Megosztás bővítmény beállításai Name[it]=Impostazioni estensione Condivisione Name[ko]=공유 플러그인 설정 From 2d56c593865e373e613b1189fe1a514df6c6959f Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Wed, 14 Sep 2016 09:17:50 +0000 Subject: [PATCH 22/24] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- plugins/battery/kdeconnect_battery.json | 8 ++- plugins/clipboard/kdeconnect_clipboard.json | 6 ++ .../findmyphone/kdeconnect_findmyphone.json | 52 +++++++++----- plugins/lockdevice/kdeconnect_lockdevice.json | 11 ++- plugins/mousepad/kdeconnect_mousepad.json | 8 ++- .../mpriscontrol/kdeconnect_mpriscontrol.json | 8 ++- .../mprisremote/kdeconnect_mprisremote.json | 6 +- .../kdeconnect_notifications.json | 44 +++++++++++- plugins/pausemusic/kdeconnect_pausemusic.json | 6 ++ plugins/ping/kdeconnect_ping.json | 3 + .../kdeconnect_remotecommands.json | 72 +++++++++++++++---- .../kdeconnect_remotecontrol.json | 7 +- plugins/runcommand/kdeconnect_runcommand.json | 8 ++- .../kdeconnect_screensaver_inhibit.json | 6 ++ .../kdeconnect_sendnotifications.json | 55 +++++++++++--- plugins/sftp/kdeconnect_sftp.json | 10 ++- plugins/share/kdeconnect_share.json | 8 ++- plugins/telephony/kdeconnect_telephony.json | 10 ++- 18 files changed, 270 insertions(+), 58 deletions(-) diff --git a/plugins/battery/kdeconnect_battery.json b/plugins/battery/kdeconnect_battery.json index eb67008ef..3b4102d42 100644 --- a/plugins/battery/kdeconnect_battery.json +++ b/plugins/battery/kdeconnect_battery.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador", "Description[ca]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador", "Description[cs]": "Zobrazit baterii vedle baterie počítače", + "Description[da]": "Vis din telefons batteri ved siden af dit computerbatteri", "Description[de]": "Zeigt den Akku Ihres Telefons neben dem Akku des Rechners", + "Description[el]": "Εμφάνιση μπαταρίας συσκευής δίπλα στη μπαταρία του υπολογιστή", "Description[es]": "Mostrar la batería del teléfono junto a la batería del equipo", + "Description[et]": "Telefoniaku näitamine otse arvutiaku kõrval", "Description[fi]": "Näytä puhelimesi akku tietokoneen akun rinnalla", "Description[gl]": "Mostra o nivel de batería do teléfono canda o nivel de batería do computador.", "Description[hu]": "A telefon akkumulátorának megjelenítése a számítógépé mellett", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Monitor de la bateria", "Name[ca]": "Monitor de la bateria", "Name[cs]": "Monitor baterie", + "Name[da]": "Batteriovervågning", "Name[de]": "Akkuüberwachung", + "Name[el]": "Παρακολούθηση μπαταρίας", "Name[es]": "Monitor de batería", + "Name[et]": "Aku jälgija", "Name[fi]": "Akkuvalvonta", "Name[gl]": "Vixilante da batería", "Name[hu]": "Akkumulátorfigyelő", @@ -72,4 +78,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.battery" ] -} +} \ No newline at end of file diff --git a/plugins/clipboard/kdeconnect_clipboard.json b/plugins/clipboard/kdeconnect_clipboard.json index d3e6ee4ef..532212c48 100644 --- a/plugins/clipboard/kdeconnect_clipboard.json +++ b/plugins/clipboard/kdeconnect_clipboard.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Comparteix el porta-retalls entre dispositius", "Description[ca]": "Comparteix el porta-retalls entre dispositius", "Description[cs]": "Sdílet obsah schránky mezi zařízeními", + "Description[da]": "Del udklipsholderen mellem enheder", "Description[de]": "Die Zwischenablage mit Geräten teilen", + "Description[el]": "Διαμοιρασμός του προχείρου μεταξύ συσκευών", "Description[es]": "Compartir portapapeles entre dispositivos", + "Description[et]": "Lõikepuhvri jagamine seadmete vahel", "Description[fi]": "Jaa leikepöytä laitteiden välillä", "Description[gl]": "Comparta o portapapeis entre os dispositivos.", "Description[hu]": "A vágólap megosztása az eszközök között", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Porta-retalls", "Name[ca]": "Porta-retalls", "Name[cs]": "Schránka", + "Name[da]": "Udklipsholder", "Name[de]": "Zwischenablage", + "Name[el]": "Πρόχειρο", "Name[es]": "Portapapeles", + "Name[et]": "Lõikepuhver", "Name[fi]": "Leikepöytä", "Name[gl]": "Portapapeis", "Name[hu]": "Vágólap", diff --git a/plugins/findmyphone/kdeconnect_findmyphone.json b/plugins/findmyphone/kdeconnect_findmyphone.json index 213f20924..73007d6e4 100644 --- a/plugins/findmyphone/kdeconnect_findmyphone.json +++ b/plugins/findmyphone/kdeconnect_findmyphone.json @@ -12,34 +12,52 @@ "Name[x-test]": "xxDavid Edmundsonxx" } ], - "Description": "Find your lost phone by making it play an alarm sound", + "Description": "Find your lost phone by making it play an alarm sound", "Description[ast]": "Alcuentra'l to preséu perdíu faciéndolu sonar ", - "Description[ca@valencia]": "Troba el vostra telèfon perdut fent que reproduïsca un so d'alarma ", - "Description[ca]": "Troba el vostra telèfon perdut fent que reprodueixi un so d'alarma ", + "Description[ca@valencia]": "Troba el vostre telèfon perdut fent que reproduïsca un so d'alarma", + "Description[ca]": "Troba el vostre telèfon perdut fent que reprodueixi un so d'alarma", "Description[cs]": "Najděte dsvůj telefon tím, že jej necháte přehrát zvuk upomínky", + "Description[da]": "Find din forsvundne telefon ved at få den til at afspille en alarm", "Description[de]": "Finden Sie Ihr verlegtes Telefon, indem Sie mit ihm eine Warnton abspielen", + "Description[el]": "Βρείτε το χαμένο σας τηλέφωνο με ηχητική ειδοποίηση", "Description[es]": "Encuentre su teléfono perdido haciéndole reproducir un sonido de alarma", - "Description[fi]": "Löydä hukkaamasi puhelin laittamalla se soittamaan hälytysääntä ", + "Description[et]": "Kaotsi läinud telefoni leidmine sellel häireheli esitamisega", + "Description[fi]": "Löydä hukkaamasi puhelin laittamalla se soittamaan hälytysääntä", "Description[gl]": "Reproducir un son de alarma nun teléfono móbil perdido para atopalo.", - "Description[it]": "Trova il tuo telefono smarrito facendogli suonare un allarme sonoro ", - "Description[ko]": "알람 소리를 울려서 잃어버린 휴대폰 찾기", - "Description[nl]": "Zoek uw verloren telefoon door het te laten een wekkersignaal te laten spelen ", - "Description[pl]": "Znajdź twój zgubiony telefon odgrywając na nim dźwięk ", - "Description[pt]": "Descobre o seu telefone perdido, fazendo-o tocar um som de alarme", - "Description[pt_BR]": "Encontre seu telefone fazendo ele tocar um som ", - "Description[ru]": "Поиск утерянного телефона при помощи звукового сигнала", + "Description[it]": "Trova il tuo telefono smarrito facendogli suonare un allarme sonoro", + "Description[nl]": "Zoek uw verloren telefoon door het een wekkersignaal te laten spelen", + "Description[pl]": "Znajdź twój zgubiony telefon odgrywając na nim dźwięk", + "Description[pt]": "Descobrir o seu telefone perdido, fazendo-o tocar um som de alarme", + "Description[pt_BR]": "Encontre seu telefone fazendo ele reproduzir um som", "Description[sk]": "Nájsť váš stratený telefón zahraním zvuku budíka", - "Description[sv]": "Hitta din förlorade telefon genom att få den att spela ett alarmljud ", - "Description[tr]": "Bir alarm sesi çalarak kayıp telefonunuzu bulun ", + "Description[sv]": "Hitta din förlorade telefon genom att få den att spela ett alarmljud", "Description[uk]": "Знайти загублений телефон, наказавши йому відтворити дзвінок", - "Description[x-test]": "xxFind your lost phone by making it play an alarm sound xx", - "Description[zh_CN]": "通过播放闹铃声来找到您的手机", + "Description[x-test]": "xxFind your lost phone by making it play an alarm soundxx", "EnabledByDefault": true, "Encoding": "UTF-8", "Icon": "edit-find", "Id": "kdeconnect_findmyphone", "License": "GPL", - "Name": "Ring my phone", + "Name": "Ring my phone", + "Name[ast]": "Alcontrar el mio teléfonu", + "Name[ca@valencia]": "Fes sonar el meu telèfon", + "Name[ca]": "Fes sonar el meu telèfon", + "Name[cs]": "Prozvonit můj telefon", + "Name[da]": "Ring min telefon op", + "Name[de]": "Mein Telefon anklingeln", + "Name[el]": "Κουδούνισμα του τηλεφώνου μου", + "Name[es]": "Hacer sonar mi teléfono", + "Name[et]": "Helista minu telefonile", + "Name[gl]": "Facer soar o meu móbil", + "Name[it]": "Fai squillare il mio telefono", + "Name[nl]": "Bel mijn telefoon", + "Name[pl]": "Dzwoń z mojego telefonu", + "Name[pt]": "Tocar o meu telefone", + "Name[pt_BR]": "Tocar meu telefone", + "Name[sk]": "Prezvoniť môj telefón", + "Name[sv]": "Hitta min telefon", + "Name[uk]": "Дзвінок на вашому телефоні", + "Name[x-test]": "xxRing my phonexx", "ServiceTypes": [ "KdeConnect/Plugin" ], @@ -49,4 +67,4 @@ "X-KdeConnect-OutgoingPackageType": [ "kdeconnect.findmyphone.request" ] -} +} \ No newline at end of file diff --git a/plugins/lockdevice/kdeconnect_lockdevice.json b/plugins/lockdevice/kdeconnect_lockdevice.json index cf00f95e7..4788fc9b9 100644 --- a/plugins/lockdevice/kdeconnect_lockdevice.json +++ b/plugins/lockdevice/kdeconnect_lockdevice.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Bloqueja els vostres sistemes", "Description[ca]": "Bloqueja els vostres sistemes", "Description[cs]": "Zamkne vaše systémy", + "Description[da]": "Låser dine systemer", "Description[de]": "Sperrt Ihre Systeme", + "Description[el]": "Κλειδώνει τα συστήματά σας", "Description[es]": "Bloquear sus sistemas", + "Description[et]": "Oma süsteemide lukustamine", "Description[fi]": "Lukitsee järjestelmäsi", "Description[gl]": "Bloquea os seus sistemas.", "Description[it]": "Blocca i tuoi sistemi", @@ -40,8 +43,10 @@ "Name[ca@valencia]": "Bloqueja el dispositiu", "Name[ca]": "Bloqueja el dispositiu", "Name[cs]": "Uzamknout zařízení", + "Name[da]": "LåsEnhed", "Name[de]": "Gerätesperrung", "Name[es]": "Bloquear dispositivo", + "Name[et]": "Seadme lukustamine", "Name[fi]": "Lukitse laite", "Name[gl]": "Bloqueo do dispositivo", "Name[it]": "Blocco dispositivo", @@ -64,11 +69,11 @@ "Website": "https://kde.org" }, "X-KdeConnect-OutgoingPackageType": [ - "kdeconnect.lock.request", + "kdeconnect.lock.request", "kdeconnect.lock" ], "X-KdeConnect-SupportedPackageType": [ - "kdeconnect.lock.request", + "kdeconnect.lock.request", "kdeconnect.lock" ] -} +} \ No newline at end of file diff --git a/plugins/mousepad/kdeconnect_mousepad.json b/plugins/mousepad/kdeconnect_mousepad.json index af23d5ebb..222d2d512 100644 --- a/plugins/mousepad/kdeconnect_mousepad.json +++ b/plugins/mousepad/kdeconnect_mousepad.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Empra el telèfon com un ratolí tàctil i teclat", "Description[ca]": "Empra el telèfon com un ratolí tàctil i teclat", "Description[cs]": "Používejte svůj telefon jako touchpad a klávesnici", + "Description[da]": "Brug din telefon som touchpad og tastatur", "Description[de]": "Verwendet Ihr Handy als Touchpad und Tastatur", + "Description[el]": "Χρήση του τηλεφώνου σας ως οθόνη αφής και πληκτρολογίου", "Description[es]": "Usar teléfono como panel táctil y teclado", + "Description[et]": "Telefoni kasutamine puutepadja ja klaviatuurina", "Description[fi]": "Käytä puhelintasi kosketuslevynä ja näppäimistönä", "Description[gl]": "Usar o teléfono móbil como touchpad e teclado.", "Description[hu]": "A telefon használata érintőtáblaként és billentyűzetként", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Entrada virtual", "Name[ca]": "Entrada virtual", "Name[cs]": "Virtuální vstup", + "Name[da]": "Virtuelt input", "Name[de]": "Virtuelle Eingabe", + "Name[el]": "Εικονικά στοιχεία εισόδου", "Name[es]": "Entrada virtual", + "Name[et]": "Virtuaalsisestus", "Name[fi]": "Virtuaalinen syöttö", "Name[gl]": "Entrada virtual", "Name[hu]": "Virtuális bevitel", @@ -69,4 +75,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.mousepad.request" ] -} +} \ No newline at end of file diff --git a/plugins/mpriscontrol/kdeconnect_mpriscontrol.json b/plugins/mpriscontrol/kdeconnect_mpriscontrol.json index 5cfeb88ea..a477ad032 100644 --- a/plugins/mpriscontrol/kdeconnect_mpriscontrol.json +++ b/plugins/mpriscontrol/kdeconnect_mpriscontrol.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Comandament a distància per a la vostra música i vídeos", "Description[ca]": "Comandament a distància per a la vostra música i vídeos", "Description[cs]": "Ovládejte vzdáleně vaši hudbu a videa", + "Description[da]": "Fjernbetjen din musik og videoer", "Description[de]": "Fernbedienung für Musik und Videos", + "Description[el]": "Απομακρυσμένος έλεγχος της μουσικής σας και των βίντεο", "Description[es]": "Controlar remotamente vídeos y música", + "Description[et]": "Oma muusika ja videote kaugjuhtimine", "Description[fi]": "Kauko-ohjain musiikkiisi ja videoihisi", "Description[gl]": "Use o teléfono móbil como mando a distancia para música e vídeos.", "Description[hu]": "A zene- és videolejátszás irányítása távolról", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Receptor del comandament multimèdia", "Name[ca]": "Receptor del comandament multimèdia", "Name[cs]": "Dálkový ovladač multimédií", + "Name[da]": "Modtager til multimediekontrol", "Name[de]": "Steuerung für Multimedia-Empfänger", + "Name[el]": "Δέκτης ελέγχου πολυμέσων", "Name[es]": "Receptor de control multimedia", + "Name[et]": "Multimeedia juhtimine", "Name[fi]": "Multimediakauko-ohjain", "Name[gl]": "Receptor de controis multimedia", "Name[hu]": "Multimédiavezérlő", @@ -72,4 +78,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.mpris.request" ] -} +} \ No newline at end of file diff --git a/plugins/mprisremote/kdeconnect_mprisremote.json b/plugins/mprisremote/kdeconnect_mprisremote.json index 8815bde2c..114191a53 100644 --- a/plugins/mprisremote/kdeconnect_mprisremote.json +++ b/plugins/mprisremote/kdeconnect_mprisremote.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Serveis de control del MPRIS", "Description[ca]": "Serveis de control del MPRIS", "Description[cs]": "Ovládejte služby MPRIS", + "Description[da]": "Kontrollér MPRIS-tjenester", "Description[de]": "Steuerung von MPRIS-Diensten", + "Description[el]": "Έλεγχος υπηρεσιών MPRIS", "Description[es]": "Controlar los servicios MPRIS", + "Description[et]": "MPRIS-teenuste juhtimine", "Description[fi]": "Ohjaa MPRIS-palveluita", "Description[gl]": "Controle servizos de MPRIS.", "Description[it]": "Servizi di controllo MPRIS", @@ -36,6 +39,7 @@ "Id": "kdeconnect_mprisremote", "License": "GPL", "Name": "MprisRemote", + "Name[et]": "Kaug-Mpris", "Name[fi]": "MPRIS-kauko-ohjain", "Name[nn]": "MPRIS-fjernkontroll", "Name[pl]": "PilotMPRIS", @@ -56,4 +60,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.mpris" ] -} +} \ No newline at end of file diff --git a/plugins/notifications/kdeconnect_notifications.json b/plugins/notifications/kdeconnect_notifications.json index 52bb3df4d..c5c270713 100644 --- a/plugins/notifications/kdeconnect_notifications.json +++ b/plugins/notifications/kdeconnect_notifications.json @@ -8,12 +8,50 @@ "Name[x-test]": "xxAlbert Vacaxx" } ], - "Description": "Show device's notifications on this computer and keep them in sync", + "Description": "Show device's notifications on this computer and keep them in sync", + "Description[ast]": "Amuesa los avisos del preséu nesti ordenador y caltiénlos sincronizaos", + "Description[ca@valencia]": "Mostra les notificacions del dispositiu a l'ordinador i les manté sincronitzades", + "Description[ca]": "Mostra les notificacions del dispositiu a l'ordinador i les manté sincronitzades", + "Description[cs]": "Zobrazit upozornění telefonu v počítači a udržovat je synchronizovaná", + "Description[da]": "Vis enhedens bekendtgørelser på denne computer og hold dem synkroniseret", + "Description[de]": "Benachrichtigungen des Geräts auf diesem Rechner anzeigen und abgleichen", + "Description[el]": "Εμφάνιση ειδοποιήσεων συσκευής στον υπολογιστή αυτόν και συγχρονισμός τους", + "Description[es]": "Mostrar notificaciones del dispositivo en este equipo y mantenerlas en sincronía", + "Description[et]": "Seadme märguannete näitamine arvutis ja nende sünkroonis hoidmine", + "Description[gl]": "Mostrar as notificacións do dispositivo neste computador e mantelas sincronizadas.", + "Description[it]": "Mostra le notifiche del telefono sul tuo computer e tienile sincronizzate", + "Description[nl]": "Apparaatmeldingen op deze computer tonen en ze gesynchroniseerd houden", + "Description[pl]": "Pokaż powiadomienia urządzenia na swoim komputerze i synchronizuj je", + "Description[pt]": "Mostrar as notificações do dispositivo neste computador e mantê-las sincronizadas", + "Description[pt_BR]": "Mostra as notificações do aparelho neste computador e as mantém sincronizadas", + "Description[sk]": "Zobraziť oznámenia telefónu na vašom počítači a udržať ich synchronizované", + "Description[sv]": "Visa enhetens underrättelser på datorn och håll dem synkroniserade", + "Description[uk]": "Показ сповіщень з пристрою на цьому комп’ютері та підтримання синхронізації даних сповіщень", + "Description[x-test]": "xxShow device's notifications on this computer and keep them in syncxx", "EnabledByDefault": true, "Icon": "preferences-desktop-notification", "Id": "kdeconnect_notifications", "License": "GPL", - "Name": "Receive notifications", + "Name": "Receive notifications", + "Name[ast]": "Recibimientu d'avisos", + "Name[ca@valencia]": "Recepció de les notificacions", + "Name[ca]": "Recepció de les notificacions", + "Name[cs]": "Přijímat oznámení", + "Name[da]": "Modtag bekendtgørelser", + "Name[de]": "Benachrichtigungen empfangen", + "Name[el]": "Λήψη ειδοποιήσεων", + "Name[es]": "Recibir notificaciones", + "Name[et]": "Märguannete vastuvõtmine", + "Name[gl]": "Recibir notificacións", + "Name[it]": "Ricevi notifiche", + "Name[nl]": "Meldingen ontvangen", + "Name[pl]": "Otrzymuj powiadomienia", + "Name[pt]": "Receber as notificações", + "Name[pt_BR]": "Receber notificações", + "Name[sk]": "Prijať upozornenia", + "Name[sv]": "Ta emot underrättelser", + "Name[uk]": "Отримати сповіщення", + "Name[x-test]": "xxReceive notificationsxx", "ServiceTypes": [ "KdeConnect/Plugin" ], @@ -26,4 +64,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.notification" ] -} +} \ No newline at end of file diff --git a/plugins/pausemusic/kdeconnect_pausemusic.json b/plugins/pausemusic/kdeconnect_pausemusic.json index a9cbd1aad..33a569838 100644 --- a/plugins/pausemusic/kdeconnect_pausemusic.json +++ b/plugins/pausemusic/kdeconnect_pausemusic.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Pausa la música/vídeos durant una trucada telefònica", "Description[ca]": "Pausa la música/vídeos durant una trucada telefònica", "Description[cs]": "Pozastavit hudbu/video během telefonátu", + "Description[da]": "Sæt musik/videoer på pause under opkald", "Description[de]": "Hält Musik oder Videos währen eines Anrufs an", + "Description[el]": "Παύση μουσικής/βίντεο κατά τη διάρκεια κλήσης", "Description[es]": "Pausar música/video durante las llamadas telefónicas", + "Description[et]": "Muusika või video peatamine telefonikõne ajal", "Description[fi]": "Keskeytä musiikki ja videot puhelun aikana", "Description[gl]": "Deter a reprodución de música ou vídeos durante as chamadas.", "Description[hu]": "A médialejátszás szüneteltetése telefonhívások közben", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Pausa els suports durant les trucades", "Name[ca]": "Pausa els suports durant les trucades", "Name[cs]": "Pozastavit média během telefonátu", + "Name[da]": "Sæt medier på pause under opkald", "Name[de]": "Medium bei Anrufen anhalten", + "Name[el]": "Παύση πολυμέσων στη διάρκεια κλήσεων", "Name[es]": "Pausar medios durante las llamadas", + "Name[et]": "Meedia peatamine kõne ajal", "Name[fi]": "Keskeytä toisto puhelujen aikana", "Name[gl]": "Deter a reprodución durante as chamadas.", "Name[hu]": "Médialejátszás felfüggesztése", diff --git a/plugins/ping/kdeconnect_ping.json b/plugins/ping/kdeconnect_ping.json index c47eb4294..bba80110f 100644 --- a/plugins/ping/kdeconnect_ping.json +++ b/plugins/ping/kdeconnect_ping.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Envia i rep pings", "Description[ca]": "Envia i rep pings", "Description[cs]": "Posílat a přijímat ping", + "Description[da]": "Send og modtag ping", "Description[de]": "Senden und Empfangen von Pings", + "Description[el]": "Αποστολή και λήψη pings", "Description[es]": "Enviar y recibir pings", + "Description[et]": "Pingide saatmine ja vastuvõtmine", "Description[fi]": "Lähetä ja vastaanota tiedustelupaketteja", "Description[gl]": "Enviar e recibir pings.", "Description[hu]": "Pingek küldése és fogadása", diff --git a/plugins/remotecommands/kdeconnect_remotecommands.json b/plugins/remotecommands/kdeconnect_remotecommands.json index 67710ec1e..eadaeca12 100644 --- a/plugins/remotecommands/kdeconnect_remotecommands.json +++ b/plugins/remotecommands/kdeconnect_remotecommands.json @@ -1,21 +1,63 @@ { - "Encoding": "UTF-8", + "Encoding": "UTF-8", "KPlugin": { "Authors": [ { - "Email": "aleixpol@kde.org", - "Name": "Aleix Pol" + "Email": "aleixpol@kde.org", + "Name": "Aleix Pol", + "Name[x-test]": "xxAleix Polxx" } - ], - "Name": "Execute remote commands", - "Description": "Trigger commands predefined on the remote device", - "EnabledByDefault": true, - "Icon": "system-run", - "Id": "kdeconnect_remotecommands", - "License": "GPL", - "ServiceTypes": [ "KdeConnect/Plugin" ], + ], + "Description": "Trigger commands predefined on the remote device", + "Description[ast]": "Aiciona comandos predefiníos nel preséu remotu", + "Description[ca@valencia]": "Activa ordes predefinides en el dispositiu remot", + "Description[ca]": "Activa ordres predefinides en el dispositiu remot", + "Description[cs]": "Spouštět příkazy předpřipravené na vzdáleném zařízení", + "Description[da]": "Udløs kommandoer som er prædefinerede på den eksterne enhed", + "Description[de]": "Vordefinierte Befehle auf dem entfernten Gerät ausführen", + "Description[el]": "Ενεργοποίηση προκαθορισμένων εντολών στην απομακρυσμένη συσκευή", + "Description[es]": "Desencadenar órdenes predefinidas en el dispositivo remoto", + "Description[et]": "Kaugseadmes määratud käskude käivitamine", + "Description[it]": "Innesca comandi predefiniti sul dispositivo remoto", + "Description[nl]": "Start commando's voorgedefinieerd op het apparaat op afstand", + "Description[pl]": "Wyzwalaj polecenia określone na zdalnym urządzeniu", + "Description[pt]": "Despoletar os comandos predefinidos para o dispositivo remoto", + "Description[sk]": "Vyvolať príkazy preddefinované na vzdialenom zariadení", + "Description[sv]": "Utför kommandon fördefinierade på den andra apparaten", + "Description[uk]": "Запуск команд, попередньо визначених на віддаленому пристрої", + "Description[x-test]": "xxTrigger commands predefined on the remote devicexx", + "EnabledByDefault": true, + "Icon": "system-run", + "Id": "kdeconnect_remotecommands", + "License": "GPL", + "Name": "Execute remote commands", + "Name[ast]": "Execución de comandos remotos", + "Name[ca@valencia]": "Executa ordes remotes", + "Name[ca]": "Executa ordres remotes", + "Name[cs]": "Spouštět příkazy vzdáleně", + "Name[da]": "Kør kommandoer udefra", + "Name[de]": "Entfernte Befehle ausführen", + "Name[el]": "Απομακρυσμένη εκτέλεση εντολών", + "Name[es]": "Ejecute órdenes remotas", + "Name[et]": "Kaugkäskude täitmine", + "Name[it]": "Esegui comandi remoti", + "Name[nl]": "Commando's op afstand uitvoeren", + "Name[pl]": "Wykonuj polecenia zdalne", + "Name[pt]": "Executar os comandos remotos", + "Name[pt_BR]": "Executa comandos remotos", + "Name[sk]": "Vzdialene spúšťať príkazy", + "Name[sv]": "Kör fjärrkommandon", + "Name[uk]": "Віддалене виконання команд", + "Name[x-test]": "xxExecute remote commandsxx", + "ServiceTypes": [ + "KdeConnect/Plugin" + ], "Version": "0.1" - }, - "X-KdeConnect-OutgoingPackageType": [ "kdeconnect.runcommand.request" ], - "X-KdeConnect-SupportedPackageType": [ "kdeconnect.runcommand" ] -} + }, + "X-KdeConnect-OutgoingPackageType": [ + "kdeconnect.runcommand.request" + ], + "X-KdeConnect-SupportedPackageType": [ + "kdeconnect.runcommand" + ] +} \ No newline at end of file diff --git a/plugins/remotecontrol/kdeconnect_remotecontrol.json b/plugins/remotecontrol/kdeconnect_remotecontrol.json index 779fba5ec..b8f5aef80 100644 --- a/plugins/remotecontrol/kdeconnect_remotecontrol.json +++ b/plugins/remotecontrol/kdeconnect_remotecontrol.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Sistemes de control remot", "Description[ca]": "Sistemes de control remot", "Description[cs]": "Ovládejte vzdálené systémy", + "Description[da]": "Kontrollér eksterne systemer", "Description[de]": "Entfernte Systeme steuern", + "Description[el]": "Έλεγχος ανταπόκρισης απομακρυσμένων συστημάτων", "Description[es]": "Controlar sistemas remotos", + "Description[et]": "Kaugjuhtimissüsteemid", "Description[fi]": "Ohjaa järjestelmiä etänä", "Description[gl]": "Controla sistemas remotos.", "Description[it]": "Controlla i sistemi remoti", @@ -40,8 +43,10 @@ "Name[ca@valencia]": "Control remot", "Name[ca]": "Control remot", "Name[cs]": "Dálkové ovládání", + "Name[da]": "FjernBetjening", "Name[de]": "Fernsteuerung", "Name[es]": "Control remoto", + "Name[et]": "Kaugjuhtimine", "Name[fi]": "Kauko-ohjain", "Name[gl]": "Mando a distancia", "Name[it]": "Telecomando", @@ -67,4 +72,4 @@ "kdeconnect.mousepad.request" ], "X-KdeConnect-SupportedPackageType": [] -} +} \ No newline at end of file diff --git a/plugins/runcommand/kdeconnect_runcommand.json b/plugins/runcommand/kdeconnect_runcommand.json index 0e82d8b74..c24beec99 100644 --- a/plugins/runcommand/kdeconnect_runcommand.json +++ b/plugins/runcommand/kdeconnect_runcommand.json @@ -18,8 +18,11 @@ "Description[ca@valencia]": "Executa ordes de la consola de forma remota", "Description[ca]": "Executa ordres de la consola de forma remota", "Description[cs]": "Spouštět konzolové příkazy vzdáleně", + "Description[da]": "Kør konsolkommandoer udefra", "Description[de]": "Entfernte Konsolenbefehle ausführen", + "Description[el]": "Απομακρυσμένη εκτέλεση εντολών του τερματικού", "Description[es]": "Ejecute órdenes de consola remotamente", + "Description[et]": "Konsoolikäskude kaugkäivitamine", "Description[fi]": "Suorita konsolikomentoja etänä", "Description[gl]": "Executar ordes de consola remotamente.", "Description[it]": "Esegui da remoto comandi della console", @@ -44,8 +47,11 @@ "Name[ca@valencia]": "Executa ordes", "Name[ca]": "Executa ordres", "Name[cs]": "Spustit příkazy", + "Name[da]": "Kør kommandoer", "Name[de]": "Befehle ausführen", + "Name[el]": "Εκτέλεση εντολών", "Name[es]": "Ejecutar órdenes", + "Name[et]": "Käskude käivitamine", "Name[fi]": "Suorita komentoja", "Name[gl]": "Executar ordes", "Name[it]": "Esegui comandi", @@ -73,4 +79,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.runcommand.request" ] -} +} \ No newline at end of file diff --git a/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json b/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json index 8cff72377..c857703f9 100644 --- a/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json +++ b/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu", "Description[ca]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu", "Description[cs]": "Potlačit spořič pokud je zařízení připojeno", + "Description[da]": "Tilbagehold pauseskærmen når enheden er tilsluttet", "Description[de]": "Bildschirmschoner unterbinden wenn ein Gerät angeschlossen ist", + "Description[el]": "Απαγόρευση προστασίας οθόνης όταν η συσκευή είναι σε σύνδεση", "Description[es]": "Inhibir el salvapantallas cuando el dispositivo está conectado", + "Description[et]": "Ekraanisäästja keelamine, kui seade on ühendatud", "Description[fi]": "Estä näytönsäästäjän käynnistyminen, kun laite on yhteydessä", "Description[gl]": "Desactivar o salvapantallas mentres o dispositivo estea conectado.", "Description[hu]": "A képernyővédő kikapcsolása, ha az eszköz csatlakoztatva van", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Inhibeix l'estalvi de pantalla", "Name[ca]": "Inhibeix l'estalvi de pantalla", "Name[cs]": "Potlačit spořič obrazovky", + "Name[da]": "Tilbagehold pauseskærm", "Name[de]": "Bildschirmschoner unterbinden", + "Name[el]": "Απαγόρευση προστασίας οθόνης", "Name[es]": "Inhibir salvapantallas", + "Name[et]": "Ekraanisäästja keelamine", "Name[fi]": "Estä näytönsäästäjän käynnistyminen", "Name[gl]": "Desactivar o salvapantallas", "Name[hu]": "Képernyővédő letiltása", diff --git a/plugins/sendnotifications/kdeconnect_sendnotifications.json b/plugins/sendnotifications/kdeconnect_sendnotifications.json index c0866d1af..e5a7122b6 100644 --- a/plugins/sendnotifications/kdeconnect_sendnotifications.json +++ b/plugins/sendnotifications/kdeconnect_sendnotifications.json @@ -3,17 +3,54 @@ "KPlugin": { "Authors": [ { - "Email": "holger.k@elberer.de", - "Name": "Holger Kaelberer", - "Name[x-test]": "xxAlbert Vacaxx" + "Email": "holger.k@elberer.de", + "Name": "Holger Kaelberer", + "Name[it]": "Holger Freyther", + "Name[x-test]": "xxHolger Kaelbererxx" } ], - "Description": "Broadcast this computer's notifications, so they can be shown on other devices.", - "EnabledByDefault": false, + "Description": "Broadcast this computer's notifications, so they can be shown on other devices.", + "Description[ast]": "Tresmite los avisos d'esti ordenador, pa qu'asina puean amosase n'otros preseos.", + "Description[ca@valencia]": "Transmet les notificacions d'este ordinador, perquè puguen mostrar-se en altres dispositius.", + "Description[ca]": "Transmet les notificacions d'aquest ordinador, perquè puguin mostrar-se en altres dispositius.", + "Description[cs]": "Posílat upozornění tohoto počítače, takže mohou být zobrazena na jiných zařízeních.", + "Description[da]": "Udsend denne computers bekendtgørelser, så de kan vises på andre enheder.", + "Description[de]": "Die Benachrichtigungen dieses Rechners aussenden, sodass sie auf anderen Geräten angezeigt werden können.", + "Description[el]": "Μεταδώστε την ειδοποίηση αυτού του υπολογιστή, ώστε να εμφανιστεί σε άλλες συσκευές.", + "Description[es]": "Difundir las notificaciones de este equipo, para que puedan mostrarse en otros dispositivos.", + "Description[et]": "Arvuti märguannete levitamine, et neid oleks näha ka teistes seadmetes", + "Description[it]": "Trasmetti le notifiche di questo computer, affinché possano essere mostrate su altri dispositivi.", + "Description[nl]": "De meldingen van deze computer rondsturen, zodat ze op andere apparaten getoond kunnen worden.", + "Description[pl]": "Rozgłaszaj powiadomienia tego komputera, tak aby można je było wyświetlać na innych urządzeniach.", + "Description[pt]": "Difundir as notificações deste computador, para que possam ser apresentadas noutros dispositivos.", + "Description[sk]": "Vysielať upozornenia tohto počítača, aby sa zobrazili na druhom zariadení.", + "Description[sv]": "Sänd ut datorns underrättelser så att de kan visas på andra enheter.", + "Description[uk]": "Транслювати сповіщення з цього комп’ютера так, щоб їх було показано на інших пристроях.", + "Description[x-test]": "xxBroadcast this computer's notifications, so they can be shown on other devices.xx", + "EnabledByDefault": false, "Icon": "preferences-desktop-notification", - "Id": "kdeconnect_sendnotifications", + "Id": "kdeconnect_sendnotifications", "License": "GPL", - "Name": "Send notifications", + "Name": "Send notifications", + "Name[ast]": "Unviu d'avisos", + "Name[ca@valencia]": "Envia les notificacions", + "Name[ca]": "Envia les notificacions", + "Name[cs]": "Poslat oznámení", + "Name[da]": "Send bekendtgørelser", + "Name[de]": "Benachrichtigungen senden", + "Name[el]": "Αποστολή ειδοποιήσεων", + "Name[es]": "Enviar notificaciones", + "Name[et]": "Märguannete saatmine", + "Name[gl]": "Enviar notificacións", + "Name[it]": "Invia notifiche", + "Name[nl]": "Stuur meldingen", + "Name[pl]": "Wysyłaj powiadomienia", + "Name[pt]": "Enviar as notificações", + "Name[pt_BR]": "Enviar notificações", + "Name[sk]": "Posielať upozornenia", + "Name[sv]": "Skicka underrättelser", + "Name[uk]": "Надіслати сповіщення", + "Name[x-test]": "xxSend notificationsxx", "ServiceTypes": [ "KdeConnect/Plugin" ], @@ -22,8 +59,8 @@ }, "X-KdeConnect-OutgoingPackageType": [ "kdeconnect.notification" - ], + ], "X-KdeConnect-SupportedPackageType": [ "kdeconnect.notification.request" ] -} +} \ No newline at end of file diff --git a/plugins/sftp/kdeconnect_sftp.json b/plugins/sftp/kdeconnect_sftp.json index 5555b3900..0fd70c0db 100644 --- a/plugins/sftp/kdeconnect_sftp.json +++ b/plugins/sftp/kdeconnect_sftp.json @@ -14,8 +14,11 @@ "Description[ca@valencia]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP", "Description[ca]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP", "Description[cs]": "Prohlížejte souborový systém zařízení pomocí SFTP", + "Description[da]": "Gennemse den eksterne enheds filsystem med SFTP", "Description[de]": "Browsen im Dateisystem des entfernten Geräts mit SFTP", + "Description[el]": "Περιήγηση του απομακρυσμένου συστήματος αρχείων με χρήση SFTP", "Description[es]": "Navegar por el sistema de archivos del dispositivo remoto usando SFTP", + "Description[et]": "Oma seadme failisüsteemi sirvimine SFTP vahendusel", "Description[fi]": "Selaa etälaitteiden tiedostojärjestelmiä SFTP:llä", "Description[gl]": "Explore o sistema de ficheiros do dispositivo remoto mediante SFTP.", "Description[hu]": "Távoli fájlrendszerek böngészése SFTP-n keresztül", @@ -28,7 +31,7 @@ "Description[pt_BR]": "Navegue pelo sistema de arquivos do dispositivo usando SFTP", "Description[ru]": "Просмотр файловой системы удалённого устройства с помощью SFTP", "Description[sk]": "Prehliadať súborový systém vzdialeného zariadenia pomocou SFTP", - "Description[sv]": "Bläddra i fjärrenhetens filsystem med SFTP", + "Description[sv]": "Bläddra i den andra apparatens filsystem med SFTP", "Description[tr]": "Uzak aygıt dosya sistemine SFTP kullanarak göz atın", "Description[uk]": "Перегляд файлових систем на сторонніх пристроях за допомогою SFTP", "Description[x-test]": "xxBrowse the remote device filesystem using SFTPxx", @@ -42,8 +45,11 @@ "Name[ca@valencia]": "Navegador del sistema de fitxers remot", "Name[ca]": "Navegador del sistema de fitxers remot", "Name[cs]": "Vzdálený prohlížeč souborového systému", + "Name[da]": "Browser til eksternt filsystem", "Name[de]": "Datei-Browser für entferne Systeme", + "Name[el]": "Περιηγητής απομακρυσμένου συστήματος αρχείων", "Name[es]": "Navegador de sistema de archivos remoto", + "Name[et]": "Kaug-failisüsteemi sirvija", "Name[fi]": "Etätiedostojärjestelmäselain", "Name[gl]": "Navegador do sistema de ficheiros remoto.", "Name[hu]": "Távoli fájlrendszer-böngésző", @@ -73,4 +79,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.sftp" ] -} +} \ No newline at end of file diff --git a/plugins/share/kdeconnect_share.json b/plugins/share/kdeconnect_share.json index 384d71150..729b9c6aa 100644 --- a/plugins/share/kdeconnect_share.json +++ b/plugins/share/kdeconnect_share.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Rep i envia fitxers, URL o text pla amb facilitat", "Description[ca]": "Rep i envia fitxers, URL o text pla amb facilitat", "Description[cs]": "Snadno přijímejte a posílejte soubory, URL nebo čistý text", + "Description[da]": "Modtag og send nemt filer, URL'er eller klartekst", "Description[de]": "Empfang und Senden von Dateien, URLs oder einfachem Text", + "Description[el]": "Εύκολη λήψη και αποστολή αρχείων, URL ή απλού κειμένου", "Description[es]": "Recibir y enviar archivos, URL o texto sin formato fácilmente", + "Description[et]": "Failide, URL-ide või lihtteksti hõlpus vastuvõtmine ja saatmine", "Description[fi]": "Vastaanota ja lähetä tiedostoja, verkko-osoitteita tai tekstiä helposti", "Description[gl]": "Comparta e reciba con facilidade ficheiros, enderezos URL ou texto simple.", "Description[hu]": "Fájlok, URL-ek és szöveg fogadása és küldése", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Comparteix i rep", "Name[ca]": "Comparteix i rep", "Name[cs]": "Sdílet a přijímat", + "Name[da]": "Del og modtag", "Name[de]": "Senden und Empfangen", + "Name[el]": "Διαμοιρασμός και λήψη", "Name[es]": "Compartir y recibir", + "Name[et]": "Jagamine ja vastuvõtmine", "Name[fi]": "Jaa ja vastaanota", "Name[gl]": "Compartir e recibir.", "Name[hu]": "Megosztás és fogadás", @@ -72,4 +78,4 @@ "X-KdeConnect-SupportedPackageType": [ "kdeconnect.share.request" ] -} +} \ No newline at end of file diff --git a/plugins/telephony/kdeconnect_telephony.json b/plugins/telephony/kdeconnect_telephony.json index 34cf45f9a..50f88b0a0 100644 --- a/plugins/telephony/kdeconnect_telephony.json +++ b/plugins/telephony/kdeconnect_telephony.json @@ -13,8 +13,11 @@ "Description[ca@valencia]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)", "Description[ca]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)", "Description[cs]": "Zobrazit upozornění pro telefonáty a SMS (na odpovídání se pracuje)", + "Description[da]": "Vis bekendtgørelser for opkald og sms (svarefunktionalitet kommer snart)", "Description[de]": "Zeigt Benachrichtigungen für Anrufe und SMS", + "Description[el]": "Εμφάνιση ειδοποιήσεων για κλήσεις και SMS (σύντομα και για απαντήσεις κλήσεων)", "Description[es]": "Mostrar notificaciones para llamadas y SMS (el soporte para las contestaciones es inminente)", + "Description[et]": "Kõnede ja SMS-ide märguannete näitamine (peagi ka vastamine)", "Description[fi]": "Näytä puhelujen ja tekstiviestien ilmoitukset (vastaaminen tulossa pian)", "Description[gl]": "Mostrar notificacións de chamadas e mensaxes SMS (no futuro tamén poderá contestar chamadas).", "Description[hu]": "Értesítések megjelenítése hívásokról és SMS-ekről", @@ -41,8 +44,11 @@ "Name[ca@valencia]": "Integració amb la telefonia", "Name[ca]": "Integració amb la telefonia", "Name[cs]": "Integrace telefonu", + "Name[da]": "Integration af telefoni", "Name[de]": "Telefon-Integration", + "Name[el]": "Ενσωμάτωση τηλεφωνίας", "Name[es]": "Integración con el teléfono", + "Name[et]": "Telefoniga lõimimine", "Name[fi]": "Puhelinintegrointi", "Name[gl]": "Integración telefónica", "Name[hu]": "Telefonintegráció", @@ -67,10 +73,10 @@ "Website": "http://albertvaka.wordpress.com" }, "X-KdeConnect-OutgoingPackageType": [ - "kdeconnect.telephony.request", + "kdeconnect.telephony.request", "kdeconnect.sms.request" ], "X-KdeConnect-SupportedPackageType": [ "kdeconnect.telephony" ] -} +} \ No newline at end of file From e884c4a9ac8700ba1bfe48c14f7579472f0b0f1c Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sun, 18 Sep 2016 09:32:51 +0000 Subject: [PATCH 23/24] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- plugins/battery/kdeconnect_battery.json | 2 ++ plugins/clipboard/kdeconnect_clipboard.json | 2 ++ plugins/findmyphone/kdeconnect_findmyphone.json | 2 ++ plugins/lockdevice/kdeconnect_lockdevice.json | 2 ++ plugins/mousepad/kdeconnect_mousepad.json | 3 +++ plugins/mpriscontrol/kdeconnect_mpriscontrol.json | 2 ++ plugins/mprisremote/kdeconnect_mprisremote.json | 2 ++ plugins/notifications/kdeconnect_notifications.json | 2 ++ plugins/pausemusic/kdeconnect_pausemusic.json | 2 ++ plugins/ping/kdeconnect_ping.json | 2 ++ plugins/remotecommands/kdeconnect_remotecommands.json | 2 ++ plugins/remotecontrol/kdeconnect_remotecontrol.json | 2 ++ plugins/runcommand/kdeconnect_runcommand.json | 2 ++ .../screensaver-inhibit/kdeconnect_screensaver_inhibit.json | 2 ++ plugins/sendnotifications/kdeconnect_sendnotifications.json | 2 ++ plugins/sftp/kdeconnect_sftp.json | 2 ++ plugins/share/kdeconnect_share.json | 2 ++ plugins/telephony/kdeconnect_telephony.json | 2 ++ 18 files changed, 37 insertions(+) diff --git a/plugins/battery/kdeconnect_battery.json b/plugins/battery/kdeconnect_battery.json index 3b4102d42..0d51c4cc7 100644 --- a/plugins/battery/kdeconnect_battery.json +++ b/plugins/battery/kdeconnect_battery.json @@ -9,6 +9,7 @@ } ], "Description": "Show your phone battery next to your computer battery", + "Description[ar]": "أظهر بطّاريّة الهاتف بجانب بطّاريّة الحاسوب", "Description[ast]": "Amuesa la batería del teléfonu cabo la del ordenador", "Description[ca@valencia]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador", "Description[ca]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador", @@ -40,6 +41,7 @@ "Id": "kdeconnect_battery", "License": "GPL", "Name": "Battery monitor", + "Name[ar]": "مرقاب البطّاريّة", "Name[ast]": "Monitor de batería", "Name[ca@valencia]": "Monitor de la bateria", "Name[ca]": "Monitor de la bateria", diff --git a/plugins/clipboard/kdeconnect_clipboard.json b/plugins/clipboard/kdeconnect_clipboard.json index 532212c48..b46195387 100644 --- a/plugins/clipboard/kdeconnect_clipboard.json +++ b/plugins/clipboard/kdeconnect_clipboard.json @@ -9,6 +9,7 @@ } ], "Description": "Share the clipboard between devices", + "Description[ar]": "شارك الحافظة بين الجهازين", "Description[ast]": "Comparte'l cartafueyu ente los preseos", "Description[ca@valencia]": "Comparteix el porta-retalls entre dispositius", "Description[ca]": "Comparteix el porta-retalls entre dispositius", @@ -40,6 +41,7 @@ "Id": "kdeconnect_clipboard", "License": "GPL", "Name": "Clipboard", + "Name[ar]": "الحافظة", "Name[ast]": "Cartafueyu", "Name[ca@valencia]": "Porta-retalls", "Name[ca]": "Porta-retalls", diff --git a/plugins/findmyphone/kdeconnect_findmyphone.json b/plugins/findmyphone/kdeconnect_findmyphone.json index 73007d6e4..b56dec67b 100644 --- a/plugins/findmyphone/kdeconnect_findmyphone.json +++ b/plugins/findmyphone/kdeconnect_findmyphone.json @@ -13,6 +13,7 @@ } ], "Description": "Find your lost phone by making it play an alarm sound", + "Description[ar]": "جِد هاتفك الضّائع بتشغيل صوت المنبّه", "Description[ast]": "Alcuentra'l to preséu perdíu faciéndolu sonar ", "Description[ca@valencia]": "Troba el vostre telèfon perdut fent que reproduïsca un so d'alarma", "Description[ca]": "Troba el vostre telèfon perdut fent que reprodueixi un so d'alarma", @@ -39,6 +40,7 @@ "Id": "kdeconnect_findmyphone", "License": "GPL", "Name": "Ring my phone", + "Name[ar]": "رنّ هاتفي", "Name[ast]": "Alcontrar el mio teléfonu", "Name[ca@valencia]": "Fes sonar el meu telèfon", "Name[ca]": "Fes sonar el meu telèfon", diff --git a/plugins/lockdevice/kdeconnect_lockdevice.json b/plugins/lockdevice/kdeconnect_lockdevice.json index 4788fc9b9..247650051 100644 --- a/plugins/lockdevice/kdeconnect_lockdevice.json +++ b/plugins/lockdevice/kdeconnect_lockdevice.json @@ -9,6 +9,7 @@ } ], "Description": "Locks your systems", + "Description[ar]": "أوصد الأنظمة", "Description[ast]": "Bloquia los tos sistemes", "Description[ca@valencia]": "Bloqueja els vostres sistemes", "Description[ca]": "Bloqueja els vostres sistemes", @@ -39,6 +40,7 @@ "Id": "kdeconnect_lockdevice", "License": "GPL", "Name": "LockDevice", + "Name[ar]": "أوصد الجهاز", "Name[ast]": "Bloquiar preséu", "Name[ca@valencia]": "Bloqueja el dispositiu", "Name[ca]": "Bloqueja el dispositiu", diff --git a/plugins/mousepad/kdeconnect_mousepad.json b/plugins/mousepad/kdeconnect_mousepad.json index 222d2d512..fccf61d6e 100644 --- a/plugins/mousepad/kdeconnect_mousepad.json +++ b/plugins/mousepad/kdeconnect_mousepad.json @@ -5,10 +5,12 @@ { "Email": "ahmedibrahimkhali@gmail.com", "Name": "Ahmed I. Khalil", + "Name[ar]": "أحمد إبراهيم خليل", "Name[x-test]": "xxAhmed I. Khalilxx" } ], "Description": "Use your phone as a touchpad and keyboard", + "Description[ar]": "استخدم الهاتف كفأرة ولوحة مفاتيح", "Description[ast]": "Usa'l to preséu como un panel táutil y tecláu", "Description[ca@valencia]": "Empra el telèfon com un ratolí tàctil i teclat", "Description[ca]": "Empra el telèfon com un ratolí tàctil i teclat", @@ -40,6 +42,7 @@ "Id": "kdeconnect_mousepad", "License": "GPL", "Name": "Virtual input", + "Name[ar]": "دخل وهميّ", "Name[ast]": "Entrada virtual", "Name[ca@valencia]": "Entrada virtual", "Name[ca]": "Entrada virtual", diff --git a/plugins/mpriscontrol/kdeconnect_mpriscontrol.json b/plugins/mpriscontrol/kdeconnect_mpriscontrol.json index a477ad032..192918db1 100644 --- a/plugins/mpriscontrol/kdeconnect_mpriscontrol.json +++ b/plugins/mpriscontrol/kdeconnect_mpriscontrol.json @@ -9,6 +9,7 @@ } ], "Description": "Remote control your music and videos", + "Description[ar]": "تحكّم بالموسيقى والفيديو عن بعد", "Description[ast]": "Control remotu de la to música y videos", "Description[ca@valencia]": "Comandament a distància per a la vostra música i vídeos", "Description[ca]": "Comandament a distància per a la vostra música i vídeos", @@ -40,6 +41,7 @@ "Id": "kdeconnect_mpriscontrol", "License": "GPL", "Name": "Multimedia control receiver", + "Name[ar]": "مستقبل تحكّمات الوسائط المتعدّدة", "Name[ast]": "Mandu de control multimedia", "Name[ca@valencia]": "Receptor del comandament multimèdia", "Name[ca]": "Receptor del comandament multimèdia", diff --git a/plugins/mprisremote/kdeconnect_mprisremote.json b/plugins/mprisremote/kdeconnect_mprisremote.json index 114191a53..4121dba71 100644 --- a/plugins/mprisremote/kdeconnect_mprisremote.json +++ b/plugins/mprisremote/kdeconnect_mprisremote.json @@ -9,6 +9,7 @@ } ], "Description": "Control MPRIS services", + "Description[ar]": "تحكّم بخدمات MPRIS", "Description[ast]": "Controla servicios MPRIS", "Description[ca@valencia]": "Serveis de control del MPRIS", "Description[ca]": "Serveis de control del MPRIS", @@ -39,6 +40,7 @@ "Id": "kdeconnect_mprisremote", "License": "GPL", "Name": "MprisRemote", + "Name[ar]": "‏Mpris عن بعد", "Name[et]": "Kaug-Mpris", "Name[fi]": "MPRIS-kauko-ohjain", "Name[nn]": "MPRIS-fjernkontroll", diff --git a/plugins/notifications/kdeconnect_notifications.json b/plugins/notifications/kdeconnect_notifications.json index c5c270713..927071c0c 100644 --- a/plugins/notifications/kdeconnect_notifications.json +++ b/plugins/notifications/kdeconnect_notifications.json @@ -9,6 +9,7 @@ } ], "Description": "Show device's notifications on this computer and keep them in sync", + "Description[ar]": "أظهر إخطارات الجهاز على هذا الحاسوب وأبقها متزامنة", "Description[ast]": "Amuesa los avisos del preséu nesti ordenador y caltiénlos sincronizaos", "Description[ca@valencia]": "Mostra les notificacions del dispositiu a l'ordinador i les manté sincronitzades", "Description[ca]": "Mostra les notificacions del dispositiu a l'ordinador i les manté sincronitzades", @@ -33,6 +34,7 @@ "Id": "kdeconnect_notifications", "License": "GPL", "Name": "Receive notifications", + "Name[ar]": "استقبل الإخطارات", "Name[ast]": "Recibimientu d'avisos", "Name[ca@valencia]": "Recepció de les notificacions", "Name[ca]": "Recepció de les notificacions", diff --git a/plugins/pausemusic/kdeconnect_pausemusic.json b/plugins/pausemusic/kdeconnect_pausemusic.json index 33a569838..c17e397a4 100644 --- a/plugins/pausemusic/kdeconnect_pausemusic.json +++ b/plugins/pausemusic/kdeconnect_pausemusic.json @@ -9,6 +9,7 @@ } ], "Description": "Pause music/videos during a phone call", + "Description[ar]": "ألبث الموسيقى/الفيديو أثناء المكالمات الهاتفيّة", "Description[ast]": "Posa la música/videos nuna llamada telefónica", "Description[ca@valencia]": "Pausa la música/vídeos durant una trucada telefònica", "Description[ca]": "Pausa la música/vídeos durant una trucada telefònica", @@ -40,6 +41,7 @@ "Id": "kdeconnect_pausemusic", "License": "GPL", "Name": "Pause media during calls", + "Name[ar]": "ألبث الوسائط أثناء المكالمات", "Name[ast]": "Pausa de multimedia nes llamaes", "Name[ca@valencia]": "Pausa els suports durant les trucades", "Name[ca]": "Pausa els suports durant les trucades", diff --git a/plugins/ping/kdeconnect_ping.json b/plugins/ping/kdeconnect_ping.json index bba80110f..244928eb0 100644 --- a/plugins/ping/kdeconnect_ping.json +++ b/plugins/ping/kdeconnect_ping.json @@ -9,6 +9,7 @@ } ], "Description": "Send and receive pings", + "Description[ar]": "أرسل الوخزات واستقبلها", "Description[ast]": "Unvia y recibe pings", "Description[ca@valencia]": "Envia i rep pings", "Description[ca]": "Envia i rep pings", @@ -40,6 +41,7 @@ "Id": "kdeconnect_ping", "License": "GPL", "Name": "Ping", + "Name[ar]": "وخزة", "Name[fi]": "Tiedustelupaketti", "Name[ko]": "핑", "Name[pt]": "Contacto", diff --git a/plugins/remotecommands/kdeconnect_remotecommands.json b/plugins/remotecommands/kdeconnect_remotecommands.json index eadaeca12..0e0644d5f 100644 --- a/plugins/remotecommands/kdeconnect_remotecommands.json +++ b/plugins/remotecommands/kdeconnect_remotecommands.json @@ -9,6 +9,7 @@ } ], "Description": "Trigger commands predefined on the remote device", + "Description[ar]": "نفّذ أوامر معرّفة مسبقًا في الجهاز البعيد", "Description[ast]": "Aiciona comandos predefiníos nel preséu remotu", "Description[ca@valencia]": "Activa ordes predefinides en el dispositiu remot", "Description[ca]": "Activa ordres predefinides en el dispositiu remot", @@ -31,6 +32,7 @@ "Id": "kdeconnect_remotecommands", "License": "GPL", "Name": "Execute remote commands", + "Name[ar]": "نفّذ أوامر بعيدة", "Name[ast]": "Execución de comandos remotos", "Name[ca@valencia]": "Executa ordes remotes", "Name[ca]": "Executa ordres remotes", diff --git a/plugins/remotecontrol/kdeconnect_remotecontrol.json b/plugins/remotecontrol/kdeconnect_remotecontrol.json index b8f5aef80..fbfab4091 100644 --- a/plugins/remotecontrol/kdeconnect_remotecontrol.json +++ b/plugins/remotecontrol/kdeconnect_remotecontrol.json @@ -9,6 +9,7 @@ } ], "Description": "Control Remote systems", + "Description[ar]": "تحكّم بالأنظمة البعيدة", "Description[ast]": "Controla sistemes remotos", "Description[ca@valencia]": "Sistemes de control remot", "Description[ca]": "Sistemes de control remot", @@ -39,6 +40,7 @@ "Id": "kdeconnect_remotecontrol", "License": "GPL", "Name": "RemoteControl", + "Name[ar]": "التّحكّم عن بعد", "Name[ast]": "Control remotu", "Name[ca@valencia]": "Control remot", "Name[ca]": "Control remot", diff --git a/plugins/runcommand/kdeconnect_runcommand.json b/plugins/runcommand/kdeconnect_runcommand.json index c24beec99..e39e8a38f 100644 --- a/plugins/runcommand/kdeconnect_runcommand.json +++ b/plugins/runcommand/kdeconnect_runcommand.json @@ -14,6 +14,7 @@ } ], "Description": "Execute console commands remotely", + "Description[ar]": "نفّذ أوامر طرفيّة عن بعد", "Description[ast]": "Executa los comandos de consola de mou remotu", "Description[ca@valencia]": "Executa ordes de la consola de forma remota", "Description[ca]": "Executa ordres de la consola de forma remota", @@ -43,6 +44,7 @@ "Id": "kdeconnect_runcommand", "License": "GPL", "Name": "Run commands", + "Name[ar]": "شغّل أوامر", "Name[ast]": "Executar comandos", "Name[ca@valencia]": "Executa ordes", "Name[ca]": "Executa ordres", diff --git a/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json b/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json index c857703f9..7c7cf151d 100644 --- a/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json +++ b/plugins/screensaver-inhibit/kdeconnect_screensaver_inhibit.json @@ -9,6 +9,7 @@ } ], "Description": "Inhibit the screensaver when the device is connected", + "Description[ar]": "امنع حافظة الشّاشة إن كان الجهاز متّصلًا", "Description[ast]": "Inhibe'l curiapantalles cuando ta coneutáu'l preséu", "Description[ca@valencia]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu", "Description[ca]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu", @@ -40,6 +41,7 @@ "Id": "kdeconnect_screensaver_inhibit", "License": "GPL", "Name": "Inhibit screensaver", + "Name[ar]": "امنع حافظة الشّاشة", "Name[ast]": "Inhibir curiapantalles", "Name[ca@valencia]": "Inhibeix l'estalvi de pantalla", "Name[ca]": "Inhibeix l'estalvi de pantalla", diff --git a/plugins/sendnotifications/kdeconnect_sendnotifications.json b/plugins/sendnotifications/kdeconnect_sendnotifications.json index e5a7122b6..5da7b071b 100644 --- a/plugins/sendnotifications/kdeconnect_sendnotifications.json +++ b/plugins/sendnotifications/kdeconnect_sendnotifications.json @@ -10,6 +10,7 @@ } ], "Description": "Broadcast this computer's notifications, so they can be shown on other devices.", + "Description[ar]": "بُثّ إخطارات هذا الحاسوب، لتظهر على الأجهزة الأخرى.", "Description[ast]": "Tresmite los avisos d'esti ordenador, pa qu'asina puean amosase n'otros preseos.", "Description[ca@valencia]": "Transmet les notificacions d'este ordinador, perquè puguen mostrar-se en altres dispositius.", "Description[ca]": "Transmet les notificacions d'aquest ordinador, perquè puguin mostrar-se en altres dispositius.", @@ -32,6 +33,7 @@ "Id": "kdeconnect_sendnotifications", "License": "GPL", "Name": "Send notifications", + "Name[ar]": "أرسل إخطارات", "Name[ast]": "Unviu d'avisos", "Name[ca@valencia]": "Envia les notificacions", "Name[ca]": "Envia les notificacions", diff --git a/plugins/sftp/kdeconnect_sftp.json b/plugins/sftp/kdeconnect_sftp.json index 0fd70c0db..d3ec9ae57 100644 --- a/plugins/sftp/kdeconnect_sftp.json +++ b/plugins/sftp/kdeconnect_sftp.json @@ -10,6 +10,7 @@ } ], "Description": "Browse the remote device filesystem using SFTP", + "Description[ar]": "تصفّح نظام ملفّات الجهاز البعيد باستخدام SFTP", "Description[ast]": "Restola'l sistema de ficheros del preséu remotu usando SFTP", "Description[ca@valencia]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP", "Description[ca]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP", @@ -41,6 +42,7 @@ "Id": "kdeconnect_sftp", "License": "GPL", "Name": "Remote filesystem browser", + "Name[ar]": "متصفّح نظام الملفّات البعيد", "Name[ast]": "Restolador de sistema de ficheros remotu", "Name[ca@valencia]": "Navegador del sistema de fitxers remot", "Name[ca]": "Navegador del sistema de fitxers remot", diff --git a/plugins/share/kdeconnect_share.json b/plugins/share/kdeconnect_share.json index 729b9c6aa..4c6ad086e 100644 --- a/plugins/share/kdeconnect_share.json +++ b/plugins/share/kdeconnect_share.json @@ -9,6 +9,7 @@ } ], "Description": "Receive and send files, URLs or plain text easily", + "Description[ar]": "استقبل الملفّات أو العناوين أو النّصوص الصّرفة وأرسلها بسهولة", "Description[ast]": "Recibi y unvia ficheros, URLs o testu planu cenciellamente", "Description[ca@valencia]": "Rep i envia fitxers, URL o text pla amb facilitat", "Description[ca]": "Rep i envia fitxers, URL o text pla amb facilitat", @@ -40,6 +41,7 @@ "Id": "kdeconnect_share", "License": "GPL", "Name": "Share and receive", + "Name[ar]": "شارك واستقبل", "Name[ast]": "Compartir y recibir", "Name[ca@valencia]": "Comparteix i rep", "Name[ca]": "Comparteix i rep", diff --git a/plugins/telephony/kdeconnect_telephony.json b/plugins/telephony/kdeconnect_telephony.json index 50f88b0a0..2dc44f35d 100644 --- a/plugins/telephony/kdeconnect_telephony.json +++ b/plugins/telephony/kdeconnect_telephony.json @@ -9,6 +9,7 @@ } ], "Description": "Show notifications for calls and SMS (answering coming soon)", + "Description[ar]": "أظهر إخطارات للمكالمات والرّسائل (الإجابة عليها قادم قريبًا)", "Description[ast]": "Amuesa avisos pa llamaes y SMS (la rempuesta vendrá sero)", "Description[ca@valencia]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)", "Description[ca]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)", @@ -40,6 +41,7 @@ "Id": "kdeconnect_telephony", "License": "GPL", "Name": "Telephony integration", + "Name[ar]": "تكامل الهاتف", "Name[ast]": "Integración telefónica", "Name[ca@valencia]": "Integració amb la telefonia", "Name[ca]": "Integració amb la telefonia", From f61dde5bbbc08c4a78da4a855324546e60d57943 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Sun, 18 Sep 2016 12:44:38 +0200 Subject: [PATCH 24/24] Use different files instead of different groups --- core/kdeconnectconfig.cpp | 64 +++++++++++++-------------------------- 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/core/kdeconnectconfig.cpp b/core/kdeconnectconfig.cpp index b8870acff..ffdd02aa0 100644 --- a/core/kdeconnectconfig.cpp +++ b/core/kdeconnectconfig.cpp @@ -39,8 +39,6 @@ #include "dbushelper.h" #include "daemon.h" -static const QString TRUSTED_DEVICES = QStringLiteral("trusted_devices_ssl"); - struct KdeConnectConfigPrivate { // The Initializer object sets things up, and also does cleanup when it goes out of scope @@ -51,6 +49,7 @@ struct KdeConnectConfigPrivate { QSslCertificate certificate; // Use QSslCertificate instead of QCA::Certificate due to compatibility with QSslSocket QSettings* config; + QSettings* trusted_devices; }; @@ -78,9 +77,9 @@ KdeConnectConfig::KdeConnectConfig() //.config/kdeconnect/config d->config = new QSettings(baseConfigDir().absoluteFilePath("config"), QSettings::IniFormat); + d->trusted_devices = new QSettings(baseConfigDir().absoluteFilePath("trusted_devices"), QSettings::IniFormat); //Register my own id if not there yet - d->config->beginGroup("myself"); if (!d->config->contains("id")) { QString uuid = QUuid::createUuid().toString(); DbusHelper::filterNonExportableCharacters(uuid); @@ -88,7 +87,6 @@ KdeConnectConfig::KdeConnectConfig() d->config->sync(); qCDebug(KDECONNECT_CORE) << "My id:" << uuid; } - d->config->endGroup(); const QFile::Permissions strict = QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::WriteUser; @@ -153,17 +151,13 @@ KdeConnectConfig::KdeConnectConfig() QString KdeConnectConfig::name() { QString defaultName = qgetenv("USER") + '@' + QHostInfo::localHostName(); - d->config->beginGroup("myself"); QString name = d->config->value("name", defaultName).toString(); - d->config->endGroup(); return name; } void KdeConnectConfig::setName(QString name) { - d->config->beginGroup("myself"); d->config->setValue("name", name); - d->config->endGroup(); d->config->sync(); } @@ -174,9 +168,7 @@ QString KdeConnectConfig::deviceType() QString KdeConnectConfig::deviceId() { - d->config->beginGroup("myself"); QString id = d->config->value("id", "").toString(); - d->config->endGroup(); return id; } @@ -214,70 +206,56 @@ QDir KdeConnectConfig::baseConfigDir() QStringList KdeConnectConfig::trustedDevices() { - d->config->beginGroup(TRUSTED_DEVICES); - const QStringList& list = d->config->childGroups(); - d->config->endGroup(); + const QStringList& list = d->trusted_devices->childGroups(); return list; } void KdeConnectConfig::addTrustedDevice(const QString &id, const QString &name, const QString &type) { - d->config->beginGroup(TRUSTED_DEVICES); - d->config->beginGroup(id); - d->config->setValue("name", name); - d->config->setValue("type", type); - d->config->endGroup(); - d->config->endGroup(); - d->config->sync(); + d->trusted_devices->beginGroup(id); + d->trusted_devices->setValue("name", name); + d->trusted_devices->setValue("type", type); + d->trusted_devices->endGroup(); + d->trusted_devices->sync(); QDir().mkpath(deviceConfigDir(id).path()); } KdeConnectConfig::DeviceInfo KdeConnectConfig::getTrustedDevice(const QString &id) { - d->config->beginGroup(TRUSTED_DEVICES); - d->config->beginGroup(id); + d->trusted_devices->beginGroup(id); KdeConnectConfig::DeviceInfo info; - info.deviceName = d->config->value("name", QLatin1String("unnamed")).toString(); - info.deviceType = d->config->value("type", QLatin1String("unknown")).toString(); + info.deviceName = d->trusted_devices->value("name", QLatin1String("unnamed")).toString(); + info.deviceType = d->trusted_devices->value("type", QLatin1String("unknown")).toString(); - d->config->endGroup(); - d->config->endGroup(); + d->trusted_devices->endGroup(); return info; } void KdeConnectConfig::removeTrustedDevice(const QString &deviceId) { - d->config->beginGroup(TRUSTED_DEVICES); - d->config->beginGroup(deviceId); - d->config->remove(QString()); - d->config->endGroup(); - d->config->endGroup(); - d->config->sync(); + d->trusted_devices->remove(deviceId); + d->trusted_devices->sync(); //We do not remove the config files. } // Utility functions to set and get a value void KdeConnectConfig::setDeviceProperty(QString deviceId, QString key, QString value) { - d->config->beginGroup(TRUSTED_DEVICES); - d->config->beginGroup(deviceId); - d->config->setValue(key, value); - d->config->endGroup(); - d->config->endGroup(); - d->config->sync(); + d->trusted_devices->beginGroup(deviceId); + d->trusted_devices->setValue(key, value); + d->trusted_devices->endGroup(); + d->trusted_devices->sync(); } QString KdeConnectConfig::getDeviceProperty(QString deviceId, QString key, QString defaultValue) { QString value; - d->config->beginGroup(TRUSTED_DEVICES); - d->config->beginGroup(deviceId); - value = d->config->value(key, defaultValue).toString(); - d->config->endGroup(); - d->config->endGroup(); + d->trusted_devices->beginGroup(deviceId); + value = d->trusted_devices->value(key, defaultValue).toString(); + d->trusted_devices->endGroup(); return value; }