diff options
Diffstat (limited to 'src/plugins/General/udisks')
43 files changed, 3504 insertions, 0 deletions
diff --git a/src/plugins/General/udisks/CMakeLists.txt b/src/plugins/General/udisks/CMakeLists.txt new file mode 100644 index 000000000..95209cca3 --- /dev/null +++ b/src/plugins/General/udisks/CMakeLists.txt @@ -0,0 +1,36 @@ +project(libudisks) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# libqmmpui & libqmmp +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) + +SET(libudisks_SRCS + udisksfactory.cpp + udisksmanager.cpp + udisksplugin.cpp + udisksdevice.cpp + settingsdialog.cpp +) + +SET(libudisks_RCCS translations/translations.qrc) + +QT5_ADD_RESOURCES(libudisks_RCC_SRCS ${libudisks_RCCS}) + +# user interface + +SET(libudisks_UIS + settingsdialog.ui +) + +QT5_WRAP_UI(libudisks_UIS_H ${libudisks_UIS}) +# Don't forget to include output directory, otherwise +# the UI file won't be wrapped! +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +ADD_LIBRARY(udisks MODULE ${libudisks_SRCS} ${libudisks_UIS_H} ${libudisks_RCC_SRCS}) +add_dependencies(udisks libqmmpui) +target_link_libraries(udisks Qt5::Widgets Qt5::DBus libqmmpui libqmmp) +install(TARGETS udisks DESTINATION ${PLUGIN_DIR}/General) diff --git a/src/plugins/General/udisks/settingsdialog.cpp b/src/plugins/General/udisks/settingsdialog.cpp new file mode 100644 index 000000000..b051cec0b --- /dev/null +++ b/src/plugins/General/udisks/settingsdialog.cpp @@ -0,0 +1,55 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#include <QSettings> +#include <qmmp/qmmp.h> +#include "settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) + : QDialog(parent) +{ + m_ui.setupUi(this); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("UDisks"); + m_ui.cdGroupBox->setChecked(settings.value("cda", true).toBool()); + m_ui.addTracksCheckBox->setChecked(settings.value("add_tracks", false).toBool()); + m_ui.removeTracksCheckBox->setChecked(settings.value("remove_tracks", false).toBool()); + m_ui.removableGroupBox->setChecked(settings.value("removable", true).toBool()); + m_ui.addFilesCheckBox->setChecked(settings.value("add_files", false).toBool()); + m_ui.removeFilesCheckBox->setChecked(settings.value("remove_files", false).toBool()); + settings.endGroup(); +} + + +SettingsDialog::~SettingsDialog() +{} + +void SettingsDialog::accept() +{ + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("UDisks"); + settings.setValue("cda", m_ui.cdGroupBox->isChecked()); + settings.setValue("add_tracks", m_ui.addTracksCheckBox->isChecked()); + settings.setValue("remove_tracks", m_ui.removeTracksCheckBox->isChecked()); + settings.setValue("removable", m_ui.removableGroupBox->isChecked()); + settings.setValue("add_files", m_ui.addFilesCheckBox->isChecked()); + settings.setValue("remove_files", m_ui.removeFilesCheckBox->isChecked()); + settings.endGroup(); + QDialog::accept(); +} diff --git a/src/plugins/General/udisks/settingsdialog.h b/src/plugins/General/udisks/settingsdialog.h new file mode 100644 index 000000000..10fb8814f --- /dev/null +++ b/src/plugins/General/udisks/settingsdialog.h @@ -0,0 +1,45 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include <QDialog> +#include "ui_settingsdialog.h" + +/** + @author Ilya Kotov <forkotov02@ya.ru> +*/ +class SettingsDialog : public QDialog +{ +Q_OBJECT +public: + SettingsDialog(QWidget *parent = nullptr); + + ~SettingsDialog(); + + +public slots: + virtual void accept() override; + +private: + Ui::SettingsDialog m_ui; +}; + +#endif diff --git a/src/plugins/General/udisks/settingsdialog.ui b/src/plugins/General/udisks/settingsdialog.ui new file mode 100644 index 000000000..5b039a88c --- /dev/null +++ b/src/plugins/General/udisks/settingsdialog.ui @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>SettingsDialog</class> + <widget class="QDialog" name="SettingsDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>348</width> + <height>247</height> + </rect> + </property> + <property name="windowTitle"> + <string>UDisks Plugin Settings</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="cdGroupBox"> + <property name="title"> + <string>CD Audio Detection</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QCheckBox" name="addTracksCheckBox"> + <property name="text"> + <string>Add tracks to playlist automatically</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="removeTracksCheckBox"> + <property name="text"> + <string>Remove tracks from playlist automatically</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="removableGroupBox"> + <property name="title"> + <string>Removable Device Detection</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QCheckBox" name="addFilesCheckBox"> + <property name="text"> + <string>Add files to playlist automatically</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="removeFilesCheckBox"> + <property name="text"> + <string>Remove files from playlist automatically</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>SettingsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>199</x> + <y>221</y> + </hint> + <hint type="destinationlabel"> + <x>22</x> + <y>242</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>SettingsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>247</x> + <y>225</y> + </hint> + <hint type="destinationlabel"> + <x>273</x> + <y>229</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/plugins/General/udisks/translations/translations.qrc b/src/plugins/General/udisks/translations/translations.qrc new file mode 100644 index 000000000..8c398ef67 --- /dev/null +++ b/src/plugins/General/udisks/translations/translations.qrc @@ -0,0 +1,33 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource> + <file>udisks_plugin_ru.qm</file> + <file>udisks_plugin_uk_UA.qm</file> + <file>udisks_plugin_zh_CN.qm</file> + <file>udisks_plugin_zh_TW.qm</file> + <file>udisks_plugin_tr.qm</file> + <file>udisks_plugin_cs.qm</file> + <file>udisks_plugin_pt_BR.qm</file> + <file>udisks_plugin_pt.qm</file> + <file>udisks_plugin_de.qm</file> + <file>udisks_plugin_pl_PL.qm</file> + <file>udisks_plugin_fr.qm</file> + <file>udisks_plugin_it.qm</file> + <file>udisks_plugin_kk.qm</file> + <file>udisks_plugin_ko.qm</file> + <file>udisks_plugin_lt.qm</file> + <file>udisks_plugin_hu.qm</file> + <file>udisks_plugin_nl.qm</file> + <file>udisks_plugin_ja.qm</file> + <file>udisks_plugin_sk.qm</file> + <file>udisks_plugin_es.qm</file> + <file>udisks_plugin_he.qm</file> + <file>udisks_plugin_gl_ES.qm</file> + <file>udisks_plugin_sr_BA.qm</file> + <file>udisks_plugin_sr_RS.qm</file> + <file>udisks_plugin_bg.qm</file> + <file>udisks_plugin_el.qm</file> + <file>udisks_plugin_id.qm</file> + <file>udisks_plugin_fi.qm</file> + </qresource> +</RCC> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_bg.ts b/src/plugins/General/udisks/translations/udisks_plugin_bg.ts new file mode 100644 index 000000000..f6c63b44a --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_bg.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="bg"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_cs.ts b/src/plugins/General/udisks/translations/udisks_plugin_cs.ts new file mode 100644 index 000000000..655ea9c84 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_cs.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="cs"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Nastavení modulu UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Detekce zvukových CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Automaticky přidat stopy do seznamu skladeb</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Automaticky odebrat stopy ze seznamu skladeb</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detekce odpojitelných zařízení</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Automaticky přidat soubory do seznamu skladeb</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Automaticky odebrat stopy ze seznamu skladeb</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Modul UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>O modulu UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Modul Qmmp UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Tento modul poskytuje detekci výměnných médií pomocí UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Přidat CD „%1“</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Přidat svazek „%1“</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_de.ts b/src/plugins/General/udisks/translations/udisks_plugin_de.ts new file mode 100644 index 000000000..42dd34174 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_de.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="de"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Einstellungen UDisks-Modul</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD-Audio-Erkennung</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Titel automatisch zur Wiedergabeliste hinzufügen</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Titel automatisch von der Wiedergabeliste entfernen</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Wechsellaufwerkerkennung</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Dateien automatisch zur Wiedergabeliste hinzufügen</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Dateien automatisch von der Wiedergabeliste entfernen</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2-Modul</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Über UDisks2-Modul</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp UDisks2-Modul</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Dieses Modul bietet Wechsellaufwerkerkennung unter Verwendung von UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Geschrieben von: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>CD „%1“ hinzufügen</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Datenträger „%1“ hinzufügen</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_el.ts b/src/plugins/General/udisks/translations/udisks_plugin_el.ts new file mode 100644 index 000000000..eb41b22fb --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_el.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="el"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Ρυθμίσεις πρόσθετου UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Ανίχνευση CD ήχου</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Προσθήκη των κομματιών αυτόματα στη λίστα αναπαραγωγής</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Αφαίρεση των κομματιών αυτόματα από τη λίστα αναπαραγωγής</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Ανίχνευση αφαιρούμενης συσκευής</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Προσθήκη αρχείων αυτόματα στη λίστα αναπαραγωγής</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Αφαίρεση των αρχείων από τη λίστα αναπαραγωγής αυτόματα</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Πρόσθετο UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Σχετικά με το πρόσθετο UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp πρόσθετο UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Αυτό το πρόσθετο παρέχει την ανίχνευση αφαιρούμενων συσκευών μέσω UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Γράφτηκε από τον: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Προσθήκη CD «%1»</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Προσθήκη Έντασης «%1»</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_en.ts b/src/plugins/General/udisks/translations/udisks_plugin_en.ts new file mode 100644 index 000000000..5e44b7b87 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_en.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="en_US"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_es.ts b/src/plugins/General/udisks/translations/udisks_plugin_es.ts new file mode 100644 index 000000000..907d8805d --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_es.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="es"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Configuración del módulo UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Detección de audio CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Añadir pistas a la lista de reproducción automáticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Eliminar pistas de la lista de reproducción automáticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detectar dispositivos extraibles</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Añadir archivos a la lista de reproducción automáticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Eliminar archivos de la lista de reproducción automáticamente</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Módulo UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Acerca del Módulo UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Módulo UDisks2 de Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Este módulo proporciona detección de dispositivos extraíbles mediante UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Escrito por: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Añadir CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Añadir volumen "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_fi.ts b/src/plugins/General/udisks/translations/udisks_plugin_fi.ts new file mode 100644 index 000000000..cf41107dd --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_fi.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="fi"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>UDisks-liitännäisen asetukset</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Lisää kappaleet soittolistaan automaattisesti</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Poista kappaleet soittolistalta automaattisesti</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Irrotettavan laitteen havaitseminen</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Lisää tiedostot soittolistaan automaattisesti</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Poista tiedostot soittolistasta automaattisesti</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2-liitännäinen</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp:n UDisks2-liitännäinen</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Toteuttanut: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Lisää CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_fr.ts b/src/plugins/General/udisks/translations/udisks_plugin_fr.ts new file mode 100644 index 000000000..5efce0a69 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_fr.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="fr"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Configuration du greffon UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Détection de CD audio</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Ajouter automatiquement les pistes à la liste</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Enlever automatiquement les pistes de la liste</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Détection de périphérique amovible</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Ajouter automatiquement les fichiers à la liste</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Enlever automatiquement les fichiers à la liste</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Greffon UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>À propos du greffon UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Greffon UDisks2 pour Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Ce greffon fournit une détection de périphériques amovibles en utilisant UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Écrit par : Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Ajouter CD « %1 »</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Ajouter volume « %1 »</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_gl_ES.ts b/src/plugins/General/udisks/translations/udisks_plugin_gl_ES.ts new file mode 100644 index 000000000..f95311746 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_gl_ES.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="gl_ES"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Preferencias do engadido UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Detección de CD de audio</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Engadir pistas á lista de reprodución automaticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Eliminar pistas da lista de reprodución automaticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detección de dispositivos extraíbles</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Engadir ficheiros á lista de reprodución automaticamente</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Eliminar ficheiros da lista de reprodución automaticamente</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Engadido UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Sobre o engadido UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Engadido UDisks2 de Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Este engadido provén detección de dispositivos extraíbles usando UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Escrito por: LLya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Engadir CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Engadir volume "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_he.ts b/src/plugins/General/udisks/translations/udisks_plugin_he.ts new file mode 100644 index 000000000..755a13f49 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_he.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="he"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>הגדרות תוסף UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>איתור אוטומטי של תקליטור שמע</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>הוסף רצועות אוטומטית לתוך רשימת נגינה</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>הסר רצועות אוטומטית מתוך רשימת נגינה</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>איתור התקנים נשלפים</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>הוסף קבצים אוטומטית לתוך רשימת נגינה</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>הסר קבצים אוטומטית מתוך רשימת נגינה</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>תוסף UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>אודות תוסף UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>תוסף UDisks2 של Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>תוסף זה מספק איתור התקנים ברי הזזה באמצעות UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>הוסף תקליטור "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>הוסף כרך "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_hu.ts b/src/plugins/General/udisks/translations/udisks_plugin_hu.ts new file mode 100644 index 000000000..94f6b2dfd --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_hu.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="hu"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_id.ts b/src/plugins/General/udisks/translations/udisks_plugin_id.ts new file mode 100644 index 000000000..ce56e2aa6 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_id.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="id"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Setelan Plugin UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Deteksi Audio CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Tambah track ke daftarmain secara otomatis</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Buang track dari daftarmain secara otomatis</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Deteksi Perangkat Dapat-dilepas</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Tambah file ke daftarmain secara otomatis</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Buang file dari daftarmain secara otomatis</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Plugin UDisks</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Tentang Plugin UDisks</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Plugin UDisks Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Plugin ini menyediakan deteksi perangkat dapat-dilepas menggunakan UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Ditulis oleh: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Tambah CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Tambah Volume "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_it.ts b/src/plugins/General/udisks/translations/udisks_plugin_it.ts new file mode 100644 index 000000000..56b6f4140 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_it.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="it"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Impostazioni dell'estensione UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Rilevamento CD Audio</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Aggiungi automaticamente le tracce alla scaletta</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Rimuovi automaticamente i titoli dalla scaletta</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Rilevamento dispositivi rimovibili</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Aggiungi automaticamente i file alla scaletta</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Rimuovi automaticamente i file dalla scaletta</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Estensione UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Informazioni sull'estensione UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Estensione UDisks2 per Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Estensione che permette il rilevamento di dispositivi rimovibili utilizzando UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Autori: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Aggiungi CD «%1»</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Aggiungi volume «%1»</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_ja.ts b/src/plugins/General/udisks/translations/udisks_plugin_ja.ts new file mode 100644 index 000000000..6b226722d --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_ja.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ja_JP"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>UDisks プラグイン設定</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>音楽 CD 検知</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>プレイリストにトラックを自動追加</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>プレイリストからトラックを自動除去</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>着脱可能なデバイスの検知</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>プレイリストにファイルを自動追加</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>プレイリストからファイルを自動除去</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2 プラグイン</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>UDisks2 プラグインについて</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>QMMP UDisks2 プラグイン</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>このプラグインは着脱可能なデバイスの検知を UDisks2 により行ないます</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>制作: Илья Котов (Ilya Kotov) <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>CD "%1" を追加</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>量目 "%1" を追加</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_kk.ts b/src/plugins/General/udisks/translations/udisks_plugin_kk.ts new file mode 100644 index 000000000..336c9269d --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_kk.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="kk_KZ"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_ko.ts b/src/plugins/General/udisks/translations/udisks_plugin_ko.ts new file mode 100644 index 000000000..3ffaba282 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_ko.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ko"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>UDisks 플러그인 설정</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD 오디오 감지</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>자동으로 재생목록에 트랙 추가</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>자동으로 재생목록에 트랙 제거</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>이동식 장치 감지</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>자동으로 재생목록에 파일 추가</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>자동으로 재생목록에서 파일 제거</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2 플러그인</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>UDisks2 플러그인 정보</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp UDisks2 플러그인</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>이 플러그인은 UDisks2를 사용하여 이동식 디바이스 감지 기능을 제공합니다</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>작성자: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>CD "%1" 추가</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>볼륨 "%1" 추가</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_lt.ts b/src/plugins/General/udisks/translations/udisks_plugin_lt.ts new file mode 100644 index 000000000..e1b6c1ca8 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_lt.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="lt"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Udisks įskiepio nustatymai</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Audio CD aptikimas</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Įdėti takelius į grojaraštį automatiškai</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Pašalinti takelius iš grojaraščio automatiškai</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Išorinių įrenginių aptikimas</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Įdėti takelius į grojaratį automatiškai</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Pašalinti takelius iš grojaraščio automatiškai</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2 Įskiepis</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Apie UDisks2 Įskiepį </translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp UDisks2 Įskiepis </translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished">Šis įskiepis aptinka prijungiamus įrenginius naudodamas UDisks2 </translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Sukūrė: Ilya Kotov</translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Pridėti CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Pridėti tomą "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_nl.ts b/src/plugins/General/udisks/translations/udisks_plugin_nl.ts new file mode 100644 index 000000000..95fe9937b --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_nl.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="nl"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Instellingen</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD-audiodetectie</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Nummers automatisch toevoegen aan afspeellijst</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Nummers automatisch verwijderen van afspeellijst</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detectie van verwisselbare apparaten</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Bestanden automatisch toevoegen aan afspeellijst</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Bestanden automatisch verwijderen van afspeellijst</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisks2-plug-in</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Over de UDisks2-plug-in</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>UDisks2-plug-in voor Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Deze plug-in faciliteert detectie van verwisselbare apparaten via UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Auteur: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>CD "%1" toevoegen</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Apparaat "%1" toevoegen</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_pl_PL.ts b/src/plugins/General/udisks/translations/udisks_plugin_pl_PL.ts new file mode 100644 index 000000000..d37d92e72 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_pl_PL.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pl_PL"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Ustawienia wtyczki UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Detekcja płyt CD Audio</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Automatycznie dodaj utwory do listy</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Automatycznie usuń utwory z listy</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detekcja urządzeń przenośnych</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Automatycznie dodaj pliki do listy</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Automatycznie usuń pliki z listy</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Wtyczka UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>O wtyczce UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Wtyczka UDisks2 dla Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Ta wtyczka pozwala na wykrywanie urządzeń przy użyciu UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Napisana przez: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Dodaj CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Dodaj głośność "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_pt.ts b/src/plugins/General/udisks/translations/udisks_plugin_pt.ts new file mode 100644 index 000000000..de7b41eb2 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_pt.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pt"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Definições</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Deteção de CD áudio</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Adicionar faixas à lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Remover faixas da lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Deteção de discos amovíveis</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Adicionar ficheiros à lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Remover ficheiros da lista de reprodução</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Suplemento UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Acerca de suplemento UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Suplemento Qmmp UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Este suplemento permite a deteção de discos amovíveis através do serviço UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Desenvolvido por: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Adicionar CD %1</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Adicionar volume %1</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_pt_BR.ts b/src/plugins/General/udisks/translations/udisks_plugin_pt_BR.ts new file mode 100644 index 000000000..a62d4d5c5 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_pt_BR.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pt_BR"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Preferências do plugin UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Detecção de áudio de CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Adicionar faixas à lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Remover faixas da lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Detecção de dispositivos removíveis</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Adicionar arquivos à lista de reprodução</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Remover arquivos da lista de reprodução</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Plugin UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Sobre o plugin UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Plugin Qmmp UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Este plugin permite a detecção de dispositivos removíveis através do serviço UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Adicionar CD %1</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Adicionar volume %1</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_ru.ts b/src/plugins/General/udisks/translations/udisks_plugin_ru.ts new file mode 100644 index 000000000..c04130e85 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_ru.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ru"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Настройки модуля UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Автоопределение аудио-CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Автоматически добавлять треки в список</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Автоматически удалять треки из списка</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Автоопределение съёмных устройств</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Автоматически добавлять треки в список</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Автоматически удалять треки из списка </translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Модуль UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>О модуле UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Модуль UDisks2 для Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Это модуль отслеживает съёмные устройства с помощью UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Разработчик: Илья Котов <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Добавить CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Добавить том "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_sk.ts b/src/plugins/General/udisks/translations/udisks_plugin_sk.ts new file mode 100644 index 000000000..a8fcd692b --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_sk.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="sk"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_sr_BA.ts b/src/plugins/General/udisks/translations/udisks_plugin_sr_BA.ts new file mode 100644 index 000000000..bf430d5e8 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_sr_BA.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="sr_BA"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Поставке за Удискс2</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Откривање музичког диска</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Аутоматски додај нумере на листу</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Аутоматски уклони нумере са листе</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Откривање уклоњивих уређаја</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Аутоматски додај фајлове на листу</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Аутоматски уклони фајлове са листе</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Удискс2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>О прикључку за UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Кумп прикључак за UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Омогућује откривање уклоњивих уређаја користећи UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Аутор: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Додај диск „%1“</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Додај складишни простор „%1“</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_sr_RS.ts b/src/plugins/General/udisks/translations/udisks_plugin_sr_RS.ts new file mode 100644 index 000000000..ff03960bc --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_sr_RS.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="sr_RS"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Поставке за Удискс2</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Откривање музичког диска</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Аутоматски додај нумере на листу</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Аутоматски уклони нумере са листе</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Откривање уклоњивих уређаја</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Аутоматски додај фајлове на листу</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Аутоматски уклони фајлове са листе</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Удискс2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>О прикључку за UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Кумп прикључак за UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Омогућује откривање уклоњивих уређаја користећи UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Аутор: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Додај диск „%1“</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Додај складишни простор „%1“</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_tr.ts b/src/plugins/General/udisks/translations/udisks_plugin_tr.ts new file mode 100644 index 000000000..2031a0af3 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_tr.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="tr"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD Ses Algılama</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Parçaları listeye otomatik olarka ekle</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Parçaları listeden otomatik olarak kaldır</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Çıkarılabilir Aygıt Algılama</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Dosyaları listeye otomatik olarak ekle</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Dosyaları listeden otomatik olarak kaldır</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Yazan: Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>CD "%1" Ekle</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>"%1" Aygıtını Ekle</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_uk_UA.ts b/src/plugins/General/udisks/translations/udisks_plugin_uk_UA.ts new file mode 100644 index 000000000..d43c066cc --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_uk_UA.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="uk"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>Налаштування модуля UDisks</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>Автовизначення аудіо-CD</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>Автоматично додавати треки до списку</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>Автоматично видаляти треки зі списку</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>Виявлення змінних пристроїв</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>Автоматично додавати файли до списку</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>Автоматично видаляти файли зі списку</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>Модуль UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>Про модуль UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Модуль UDisks2 для Qmmp</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>Цей модуль відстежує з'ємні пристрої за допомогою UDisks2</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>Розробник: Ілля Котов <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>Додати CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>Додати том "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_zh_CN.ts b/src/plugins/General/udisks/translations/udisks_plugin_zh_CN.ts new file mode 100644 index 000000000..c281c0f79 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_zh_CN.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="zh_CN"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>UDisks 插件设置</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD 音频检测</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>自动添加音轨到播放列表</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>自动从播放列表删除音轨</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>可移动设备检测</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>自动添加文件到播放列表</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>自动从播放列表删除文件</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation>UDisk2插件</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation>关于UDisk2插件</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation>Qmmp播放器UDisk2插件</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation>本插件使用UDisk2提供对移动设备的探测功能</translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>增加CD"%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>增加音量"%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/translations/udisks_plugin_zh_TW.ts b/src/plugins/General/udisks/translations/udisks_plugin_zh_TW.ts new file mode 100644 index 000000000..adc7ed488 --- /dev/null +++ b/src/plugins/General/udisks/translations/udisks_plugin_zh_TW.ts @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="zh_TW"> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>UDisks Plugin Settings</source> + <translation>UDisks 插件設定</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>CD Audio Detection</source> + <translation>CD 音頻檢測</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="38"/> + <source>Add tracks to playlist automatically</source> + <translation>自動添加音軌到播放清單</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>Remove tracks from playlist automatically</source> + <translation>自動從播放清單刪除音軌</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="55"/> + <source>Removable Device Detection</source> + <translation>可移動設備檢測</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>Add files to playlist automatically</source> + <translation>自動添加檔案到播放清單</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="71"/> + <source>Remove files from playlist automatically</source> + <translation>自動從播放清單刪除檔案</translation> + </message> +</context> +<context> + <name>UDisks2Factory</name> + <message> + <location filename="../udisks2factory.cpp" line="30"/> + <source>UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="50"/> + <source>About UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="51"/> + <source>Qmmp UDisks2 Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="52"/> + <source>This plugin provides removable devices detection using UDisks2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../udisks2factory.cpp" line="53"/> + <source>Written by: Ilya Kotov <forkotov02@ya.ru></source> + <translation>撰寫:Ilya Kotov <forkotov02@ya.ru></translation> + </message> +</context> +<context> + <name>UDisks2Plugin</name> + <message> + <location filename="../udisks2plugin.cpp" line="134"/> + <source>Add CD "%1"</source> + <translation>添加 CD "%1"</translation> + </message> + <message> + <location filename="../udisks2plugin.cpp" line="142"/> + <source>Add Volume "%1"</source> + <translation>添加卷 "%1"</translation> + </message> +</context> +</TS> diff --git a/src/plugins/General/udisks/udisks.pro b/src/plugins/General/udisks/udisks.pro new file mode 100644 index 000000000..ca99c7a5e --- /dev/null +++ b/src/plugins/General/udisks/udisks.pro @@ -0,0 +1,26 @@ +include(../../plugins.pri) + +TARGET = $$PLUGINS_PREFIX/General/udisks + +QT += dbus + +HEADERS += udisksfactory.h \ + udisksplugin.h \ + udisksmanager.h \ + udisksdevice.h \ + settingsdialog.h + +SOURCES += udisksfactory.cpp \ + udisksplugin.cpp \ + udisksmanager.cpp \ + udisksdevice.cpp \ + settingsdialog.cpp + +FORMS += settingsdialog.ui + +RESOURCES = translations/translations.qrc + +LIBS += $$QMMPUI_LIB + +target.path = $$PLUGIN_DIR/General +INSTALLS += target diff --git a/src/plugins/General/udisks/udisksdevice.cpp b/src/plugins/General/udisks/udisksdevice.cpp new file mode 100644 index 000000000..544d5a8a0 --- /dev/null +++ b/src/plugins/General/udisks/udisksdevice.cpp @@ -0,0 +1,118 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <QDBusInterface> +#include <QDBusConnection> +#include <QByteArray> +#include <QDBusMetaType> +#if (QT_VERSION < QT_VERSION_CHECK(5, 7, 0)) //qAsConst template +#include <qmmp/qmmp.h> +#endif +#include "udisksdevice.h" + +UDisksDevice::UDisksDevice(QDBusObjectPath o, QObject *parent) : QObject(parent) +{ + m_block_interface = new QDBusInterface("org.freedesktop.UDisks2", o.path(), + "org.freedesktop.UDisks2.Block", QDBusConnection::systemBus(), + this); + + QDBusObjectPath drive_object = property("Drive").value<QDBusObjectPath>(); + + QDBusConnection::systemBus().connect("org.freedesktop.UDisks2", o.path(), + "org.freedesktop.DBus.Properties","PropertiesChanged", + this, SIGNAL(changed())); + + m_drive_interface = new QDBusInterface("org.freedesktop.UDisks2", drive_object.path(), + "org.freedesktop.UDisks2.Drive", QDBusConnection::systemBus(), + this); + m_path = o; +} + +UDisksDevice::~UDisksDevice() +{ +} + +QVariant UDisksDevice::property(const QString &key) const +{ + return m_block_interface->property(key.toLatin1().data()); +} + +bool UDisksDevice::isRemovable() const +{ + return m_drive_interface->property("Removable").toBool(); +} + +bool UDisksDevice::isMediaRemovable() const +{ + return m_drive_interface->property("MediaRemovable").toBool(); +} + +bool UDisksDevice::isAudio() const +{ + return m_drive_interface->property("OpticalNumAudioTracks").toInt() > 0; +} + +bool UDisksDevice::isMounted() const +{ + return !mountPoints().isEmpty(); +} + +bool UDisksDevice::isOptical() const +{ + return m_drive_interface->property("Optical").toBool(); +} + +QStringList UDisksDevice::mountPoints() const +{ + QStringList points; + QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2", m_path.path(), + "org.freedesktop.DBus.Properties", "Get"); + + QList<QVariant> arguments; + arguments << "org.freedesktop.UDisks2.Filesystem" << "MountPoints"; + message.setArguments(arguments); + + QDBusMessage reply = QDBusConnection::systemBus().call(message); + + const QList<QVariant> args = reply.arguments(); + + for(const QVariant &arg : qAsConst(args)) + { + QByteArrayList list; + QDBusArgument a = arg.value<QDBusVariant>().variant().value<QDBusArgument>(); + if(a.currentType() != QDBusArgument::ArrayType) + continue; + a >> list; + + for(const QByteArray &p : qAsConst(list)) + points.append(p); + } + return points; +} + +QString UDisksDevice::deviceFile() const +{ + return QString::fromLatin1(m_block_interface->property("Device").toByteArray()); +} + +QDBusObjectPath UDisksDevice::objectPath() const +{ + return m_path; +} diff --git a/src/plugins/General/udisks/udisksdevice.h b/src/plugins/General/udisks/udisksdevice.h new file mode 100644 index 000000000..e027cd2be --- /dev/null +++ b/src/plugins/General/udisks/udisksdevice.h @@ -0,0 +1,91 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef UDISKS2DEVICE_H +#define UDISKS2DEVICE_H + +#include <QObject> +#include <QDBusObjectPath> +#include <QDBusMetaType> +#include <QDBusArgument> +#include <QByteArray> +#include <QList> +#include <QVariant> + +class QDBusInterface; + +typedef QList<QByteArray> QByteArrayList; +Q_DECLARE_METATYPE(QByteArrayList) + +inline const QDBusArgument &operator>>(const QDBusArgument &arg, QByteArrayList &list) +{ + arg.beginArray(); + list.clear(); + + while (!arg.atEnd()) + { + QByteArray element; + arg >> element; + list.append( element ); + } + arg.endArray(); + return arg; +} + +inline QDBusArgument &operator<<(QDBusArgument &arg, const QByteArrayList &list) +{ + arg.beginArray(qMetaTypeId<QByteArrayList>()); + for (int i = 0; i < list.count(); ++i) + arg << list[i]; + arg.endArray(); + return arg; +} + + +/** + @author Ilya Kotov <forkotov02@ya.ru> +*/ +class UDisksDevice : public QObject +{ + Q_OBJECT +public: + UDisksDevice(QDBusObjectPath o, QObject *parent = nullptr); + + ~UDisksDevice(); + + QVariant property(const QString &key) const; + bool isRemovable() const; + bool isMediaRemovable() const; + bool isAudio() const; + bool isMounted() const; + bool isOptical() const; + QStringList mountPoints() const; + QString deviceFile() const; + QDBusObjectPath objectPath() const; + +signals: + void changed(); + +private: + QDBusInterface *m_block_interface; + QDBusInterface *m_drive_interface; + QDBusObjectPath m_path; +}; + +#endif diff --git a/src/plugins/General/udisks/udisksfactory.cpp b/src/plugins/General/udisks/udisksfactory.cpp new file mode 100644 index 000000000..c9237f65a --- /dev/null +++ b/src/plugins/General/udisks/udisksfactory.cpp @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <QMessageBox> +#include <qmmp/qmmp.h> +#include "settingsdialog.h" +#include "udisksplugin.h" +#include "udisksfactory.h" + +GeneralProperties UDisksFactory::properties() const +{ + GeneralProperties properties; + properties.name = tr("UDisks Plugin"); + properties.shortName = "udisks"; + properties.hasAbout = true; + properties.hasSettings = true; + properties.visibilityControl = false; + return properties; +} + +QObject *UDisksFactory::create(QObject *parent) +{ + return new UDisksPlugin(parent); +} + +QDialog *UDisksFactory::createConfigDialog(QWidget *parent) +{ + return new SettingsDialog(parent); +} + +void UDisksFactory::showAbout(QWidget *parent) +{ + QMessageBox::about (parent, tr("About UDisks Plugin"), + tr("Qmmp UDisks Plugin") + "\n" + + tr("This plugin provides removable devices detection using UDisks") + "\n" + + tr("Written by: Ilya Kotov <forkotov02@ya.ru>")); +} + +QString UDisksFactory::translation() const +{ + return QLatin1String(":/udisks_plugin_"); +} diff --git a/src/plugins/General/udisks/udisksfactory.h b/src/plugins/General/udisks/udisksfactory.h new file mode 100644 index 000000000..ceba73de5 --- /dev/null +++ b/src/plugins/General/udisks/udisksfactory.h @@ -0,0 +1,44 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef UDISKS2FACTORY_H +#define UDISKS2FACTORY_H + +/** + @author Ilya Kotov <forkotov02@ya.ru> +*/ +#include <QObject> + +#include <qmmpui/general.h> +#include <qmmpui/generalfactory.h> + +class UDisksFactory : public QObject, public GeneralFactory +{ +Q_OBJECT +Q_PLUGIN_METADATA(IID "org.qmmp.qmmpui.GeneralFactoryInterface.1.0") +Q_INTERFACES(GeneralFactory) +public: + GeneralProperties properties() const override; + QObject *create(QObject *parent) override; + QDialog *createConfigDialog(QWidget *parent) override; + void showAbout(QWidget *parent) override; + QString translation() const override; +}; + +#endif diff --git a/src/plugins/General/udisks/udisksmanager.cpp b/src/plugins/General/udisks/udisksmanager.cpp new file mode 100644 index 000000000..749f36ab1 --- /dev/null +++ b/src/plugins/General/udisks/udisksmanager.cpp @@ -0,0 +1,91 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <QDBusInterface> +#include <QDBusConnection> +#include <QDBusReply> +#include <QDBusArgument> +#include <QDBusMetaType> +#include <QXmlStreamReader> +#include "udisksmanager.h" + +UDisksManager::UDisksManager(QObject *parent) + : QObject(parent) +{ + m_interface = new QDBusInterface("org.freedesktop.UDisks2", "/org/freedesktop/UDisks2", + "org.freedesktop.DBus.ObjectManager", + QDBusConnection::systemBus(), this); + + m_interface->connection().connect("org.freedesktop.UDisks2", "/org/freedesktop/UDisks2", + "org.freedesktop.DBus.ObjectManager", "InterfacesAdded", + this, SLOT(onInterfacesAdded(QDBusObjectPath,QVariantMapMap))); + + m_interface->connection().connect("org.freedesktop.UDisks2", "/org/freedesktop/UDisks2", + "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved", + this, SIGNAL(onInterfacesRemoved(QDBusObjectPath, QStringList))); +} + + +UDisksManager::~UDisksManager() +{ +} + +QList<QDBusObjectPath> UDisksManager::findAllDevices() +{ + QList<QDBusObjectPath> paths; + QDBusMessage call = QDBusMessage::createMethodCall("org.freedesktop.UDisks2", + "/org/freedesktop/UDisks2/block_devices", + "org.freedesktop.DBus.Introspectable", + "Introspect"); + QDBusPendingReply<QString> reply = QDBusConnection::systemBus().call(call); + + + if (!reply.isValid()) + { + qWarning("UDisks2Manager: error: %s", qPrintable(reply.error().name())); + return paths; + } + QXmlStreamReader xml(reply.value()); + while (!xml.atEnd()) + { + xml.readNext(); + if (xml.tokenType() == QXmlStreamReader::StartElement && xml.name().toString() == "node" ) + { + QString name = xml.attributes().value("name").toString(); + if(!name.isEmpty()) + paths << QDBusObjectPath("/org/freedesktop/UDisks2/block_devices/" + name); + } + } + return paths; +} + +void UDisksManager::onInterfacesAdded(const QDBusObjectPath &object_path, const QVariantMapMap &) +{ + if(object_path.path().startsWith("/org/freedesktop/UDisks2/jobs")) + return; + emit deviceAdded(object_path); +} + +void UDisksManager::onInterfacesRemoved(const QDBusObjectPath &object_path, const QStringList &) +{ + if(object_path.path().startsWith("/org/freedesktop/UDisks2/jobs")) + return; + emit deviceRemoved(object_path); +} diff --git a/src/plugins/General/udisks/udisksmanager.h b/src/plugins/General/udisks/udisksmanager.h new file mode 100644 index 000000000..9e8fc14d2 --- /dev/null +++ b/src/plugins/General/udisks/udisksmanager.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef UDISKS2MANAGER_H +#define UDISKS2MANAGER_H + +#include <QObject> +#include <QList> +#include <QVariantMap> +#include <QDBusObjectPath> + +class QDBusInterface; + +typedef QMap<QString,QVariantMap> QVariantMapMap; +Q_DECLARE_METATYPE(QVariantMapMap) + +/** + @author Ilya Kotov <forkotov02@ya.ru> +*/ +class UDisksManager : public QObject +{ +Q_OBJECT +public: + UDisksManager(QObject *parent = nullptr); + + ~UDisksManager(); + + QList<QDBusObjectPath> findAllDevices(); + +signals: + void deviceAdded(QDBusObjectPath); + void deviceRemoved(QDBusObjectPath); + +private slots: + void onInterfacesAdded(const QDBusObjectPath &object_path, const QVariantMapMap &); + void onInterfacesRemoved(const QDBusObjectPath &object_path, const QStringList &); + +private: + QDBusInterface *m_interface; + +}; + +#endif diff --git a/src/plugins/General/udisks/udisksplugin.cpp b/src/plugins/General/udisks/udisksplugin.cpp new file mode 100644 index 000000000..ac1559270 --- /dev/null +++ b/src/plugins/General/udisks/udisksplugin.cpp @@ -0,0 +1,253 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <QtDBus> +#include <QActionGroup> +#include <QApplication> +#include <QStyle> +#include <qmmpui/uihelper.h> +#include <qmmpui/playlistmanager.h> +#include <qmmpui/playlistitem.h> +#include <qmmp/qmmp.h> +#include "udisksdevice.h" +#include "udisksmanager.h" +#include "udisksplugin.h" + +UDisksPlugin::UDisksPlugin(QObject *parent) : QObject(parent) +{ + qDBusRegisterMetaType<QVariantMapMap>(); + qDBusRegisterMetaType<QByteArrayList>(); + + m_manager = new UDisksManager(this); + m_actions = new QActionGroup(this); + connect(m_manager,SIGNAL(deviceAdded(QDBusObjectPath)), SLOT(addDevice(QDBusObjectPath))); + connect(m_manager,SIGNAL(deviceRemoved(QDBusObjectPath)), SLOT(removeDevice(QDBusObjectPath))); + connect(m_actions,SIGNAL(triggered (QAction *)), SLOT(processAction(QAction *))); + //load settings + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("UDisks2"); + m_detectCDA = settings.value("cda", true).toBool(); + m_detectRemovable = settings.value("removable", true).toBool(); + m_addTracks = false; //do not load tracks on startup + m_addFiles = false; + //find existing devices + const QList<QDBusObjectPath> devs = m_manager->findAllDevices(); + for(const QDBusObjectPath &o : qAsConst(devs)) + addDevice(o); + //load remaining settings + m_addTracks = settings.value("add_tracks", false).toBool(); + m_removeTracks = settings.value("remove_tracks", false).toBool(); + m_addFiles = settings.value("add_files", false).toBool(); + m_removeFiles = settings.value("remove_files", false).toBool(); + settings.endGroup(); +} + +UDisksPlugin::~UDisksPlugin() +{ +} + +void UDisksPlugin::removeDevice(QDBusObjectPath o) +{ + QList<UDisksDevice *>::iterator it = m_devices.begin(); + while(it != m_devices.end()) + { + if((*it)->objectPath() == o) + { + delete (*it); + it = m_devices.erase(it); + qDebug("UDisksPlugin: removed device: \"%s\"", qPrintable(o.path())); + updateActions(); + break; + } + else + { + ++it; + } + } +} + +void UDisksPlugin::addDevice(QDBusObjectPath o) +{ + for(const UDisksDevice *device : qAsConst(m_devices)) //is it already exists? + { + if (device->objectPath() == o) + return; + } + UDisksDevice *device = new UDisksDevice(o, this); + + if(device->isRemovable()) //detect removable devices only + { + qDebug("UDisksPlugin: added device: \"%s\"", qPrintable(o.path())); + m_devices << device; + updateActions(); + connect(device, SIGNAL(changed()), SLOT(updateActions())); + } + else + delete device; +} + +void UDisksPlugin::updateActions() +{ + // add action for cd audio or mounted volume + for(const UDisksDevice *device : qAsConst(m_devices)) + { + QString dev_path; + if (m_detectCDA && device->isAudio()) //cd audio + { + dev_path = "cdda://" + device->deviceFile(); + } + else if (m_detectRemovable && device->isMounted() && + device->property("Size").toLongLong() < 40000000000LL && + (device->property("IdType").toString() == "vfat" || + device->property("IdType").toString() == "iso9660" || + device->property("IdType").toString() == "udf" || + device->property("IdType").toString() == "ext2")) //mounted volume + { + dev_path = device->mountPoints().first(); + } + else + continue; + + if (!findAction(dev_path)) + { + QAction *action = new QAction(this); + QString actionText; + if (device->isAudio()) + { + actionText = QString(tr("Add CD \"%1\"")).arg(device->deviceFile()); + } + else + { + QString name = device->property("IdLabel").toString(); + if (name.isEmpty()) + name = dev_path; + + actionText = QString(tr("Add Volume \"%1\"")).arg(name); + } + + if (device->isOptical()) + { + if(device->property("IdType").toString() == "iso9660") + action->setIcon(qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon)); + else + action->setIcon(qApp->style()->standardIcon(QStyle::SP_DriveCDIcon)); + } + else + action->setIcon(qApp->style()->standardIcon(QStyle::SP_DriveHDIcon)); + + qDebug("UDisksPlugin: added menu item: \"%s\"", qPrintable(dev_path)); + + action->setText(actionText); + action->setData(dev_path); + m_actions->addAction(action); + UiHelper::instance()->addAction(action, UiHelper::ADD_MENU); + addPath(dev_path); + } + } + // remove action if device is unmounted/removed + for(QAction *action : m_actions->actions()) + { + if (!findDevice(action)) + { + qDebug("UDisksPlugin: removed menu item: \"%s\"", qPrintable(action->data().toString())); + m_actions->removeAction(action); + UiHelper::instance()->removeAction(action); + removePath(action->data().toString()); + action->deleteLater(); + } + } +} + +void UDisksPlugin::processAction(QAction *action) +{ + qDebug("UDisksPlugin: action triggered: %s", qPrintable(action->data().toString())); + QString path = action->data().toString(); + PlayListManager::instance()->selectedPlayList()->add(path); +} + +QAction *UDisksPlugin::findAction(const QString &dev_path) +{ + for(QAction *action : m_actions->actions()) + { + if (action->data().toString() == dev_path) + return action; + } + return nullptr; +} + +UDisksDevice *UDisksPlugin::findDevice(QAction *action) +{ + for(UDisksDevice *device : qAsConst(m_devices)) + { + QString dev_path; + if (device->isAudio()) + { + dev_path = "cdda://" + device->deviceFile(); + if (dev_path == action->data().toString()) + return device; + } + if (device->isMounted()) + { + dev_path = device->mountPoints().first(); + if (dev_path == action->data().toString()) + return device; + } + } + return nullptr; +} + +void UDisksPlugin::addPath(const QString &path) +{ + PlayListModel *model = PlayListManager::instance()->selectedPlayList(); + + for(PlayListItem *item : model->items()) // Is it already exist? + { + if(item->isGroup()) + continue; + if (dynamic_cast<PlayListTrack *>(item)->path().startsWith(path)) + return; + } + + if (path.startsWith("cdda://") && m_addTracks) + { + PlayListManager::instance()->selectedPlayList()->add(path); + return; + } + else if (!path.startsWith("cdda://") && m_addFiles) + PlayListManager::instance()->selectedPlayList()->add(path); +} + +void UDisksPlugin::removePath(const QString &path) +{ + if ((path.startsWith("cdda://") && !m_removeTracks) || + (!path.startsWith("cdda://") && !m_removeFiles)) //process settings + return; + + PlayListModel *model = PlayListManager::instance()->selectedPlayList(); + + int i = 0; + while (model->count() > 0 && i < model->count()) + { + if (model->isTrack(i) && model->track(i)->path().startsWith(path)) + model->removeTrack(i); + else + ++i; + } +} diff --git a/src/plugins/General/udisks/udisksplugin.h b/src/plugins/General/udisks/udisksplugin.h new file mode 100644 index 000000000..66727d941 --- /dev/null +++ b/src/plugins/General/udisks/udisksplugin.h @@ -0,0 +1,65 @@ +/*************************************************************************** + * Copyright (C) 2013-2021 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * 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) any later version. * + * * + * 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, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef UDISKS2PLUGIN_H +#define UDISKS2PLUGIN_H + +#include <QDBusObjectPath> +#include <qmmpui/general.h> + +class UDisksManager; +class UDisksDevice; +class QActionGroup; +class QAction; + +/** + @author Ilya Kotov <forkotov02@ya.ru> +*/ + +class UDisksPlugin : public QObject +{ +Q_OBJECT +public: + UDisksPlugin(QObject *parent = nullptr); + + ~UDisksPlugin(); + +private slots: + void removeDevice(QDBusObjectPath); + void addDevice(QDBusObjectPath); + void processAction(QAction *action); + void updateActions(); + +private: + QAction *findAction(const QString &dev_path); + UDisksDevice *findDevice(QAction *action); + void addPath(const QString &path); + void removePath(const QString &path); + UDisksManager *m_manager; + QList <UDisksDevice *> m_devices; + QActionGroup *m_actions; + bool m_detectCDA; + bool m_addTracks; + bool m_removeTracks; + bool m_detectRemovable; + bool m_addFiles; + bool m_removeFiles; +}; + +#endif //UDISKS2PLUGIN_H |
