aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/trackchange
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/trackchange')
-rw-r--r--src/plugins/General/trackchange/settingsdialog.cpp99
-rw-r--r--src/plugins/General/trackchange/settingsdialog.h56
-rw-r--r--src/plugins/General/trackchange/settingsdialog.ui138
-rw-r--r--src/plugins/General/trackchange/songchange.cpp118
-rw-r--r--src/plugins/General/trackchange/songchange.h59
-rw-r--r--src/plugins/General/trackchange/songchange.pro36
-rw-r--r--src/plugins/General/trackchange/songchangefactory.cpp63
-rw-r--r--src/plugins/General/trackchange/songchangefactory.h44
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_cs.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_de.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_es.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_fr.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_he.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_hu.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_it.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_ja.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_kk.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_lt.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_nl.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_pl_PL.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_pt_BR.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_ru.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_sk.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_tr.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_uk_UA.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_zh_CN.ts133
-rw-r--r--src/plugins/General/trackchange/translations/songchange_plugin_zh_TW.ts133
-rw-r--r--src/plugins/General/trackchange/translations/translations.qrc24
28 files changed, 3164 insertions, 0 deletions
diff --git a/src/plugins/General/trackchange/settingsdialog.cpp b/src/plugins/General/trackchange/settingsdialog.cpp
new file mode 100644
index 000000000..d6d84f990
--- /dev/null
+++ b/src/plugins/General/trackchange/settingsdialog.cpp
@@ -0,0 +1,99 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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 <QMenu>
+#include <qmmp/qmmp.h>
+#include "songchange.h"
+#include "settingsdialog.h"
+
+SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
+{
+ m_ui.setupUi(this);
+ addMenu(m_ui.newTrackButton);
+ addMenu(m_ui.endOfTrackButton);
+ addMenu(m_ui.endOfPlayListButton);
+ addMenu(m_ui.titleChangeButton);
+
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ m_ui.newTrackLineEdit->setText(settings.value("SongChange/new_track_command").toString());
+ m_ui.endOfTrackLineEdit->setText(settings.value("SongChange/end_of_track_command").toString());
+ m_ui.endOfPlayListLineEdit->setText(settings.value("SongChange/end_of_pl_command").toString());
+ m_ui.titleChangeLineEdit->setText(settings.value("SongChange/title_change_command").toString());
+}
+
+SettingsDialog::~SettingsDialog()
+{}
+
+void SettingsDialog::accept()
+{
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.setValue("SongChange/new_track_command", m_ui.newTrackLineEdit->text());
+ settings.setValue("SongChange/end_of_track_command", m_ui.endOfTrackLineEdit->text());
+ settings.setValue("SongChange/end_of_pl_command", m_ui.endOfPlayListLineEdit->text());
+ settings.setValue("SongChange/title_change_command", m_ui.titleChangeLineEdit->text());
+ QDialog::accept();
+}
+
+void SettingsDialog::addMenu(QToolButton *button)
+{
+ QMenu *menu = new QMenu(this);
+ menu->addAction(tr("Artist"))->setData("%p");
+ menu->addAction(tr("Album"))->setData("%a");
+ menu->addAction(tr("Title"))->setData("%t");
+ menu->addAction(tr("Track number"))->setData("%n");
+ menu->addAction(tr("Two-digit track number"))->setData("%NN");
+ menu->addAction(tr("Genre"))->setData("%g");
+ menu->addAction(tr("Comment"))->setData("%c");
+ menu->addAction(tr("Composer"))->setData("%C");
+ menu->addAction(tr("Duration"))->setData("%l");
+ menu->addAction(tr("Disc number"))->setData("%D");
+ menu->addAction(tr("File name"))->setData("%f");
+ menu->addAction(tr("File path"))->setData("%F");
+ menu->addAction(tr("Year"))->setData("%y");
+ menu->addAction(tr("Condition"))->setData("%if(%p&%t,%p - %t,%f)");
+ button->setMenu(menu);
+ button->setPopupMode(QToolButton::InstantPopup);
+ connect(menu, SIGNAL(triggered (QAction *)), SLOT(addTemplateString(QAction *)));
+}
+
+void SettingsDialog::addTemplateString(QAction *a)
+{
+ QMenu *menu = qobject_cast<QMenu*> (sender());
+ if(!menu)
+ return;
+
+ if(m_ui.newTrackButton->menu() == menu)
+ {
+ m_ui.newTrackLineEdit->insert(a->data().toString());
+ }
+ else if(m_ui.endOfTrackButton->menu() == menu)
+ {
+ m_ui.endOfTrackLineEdit->insert(a->data().toString());
+ }
+ else if(m_ui.endOfPlayListButton->menu() == menu)
+ {
+ m_ui.endOfPlayListLineEdit->insert(a->data().toString());
+ }
+ else if(m_ui.titleChangeButton->menu() == menu)
+ {
+ m_ui.titleChangeLineEdit->insert(a->data().toString());
+ }
+}
diff --git a/src/plugins/General/trackchange/settingsdialog.h b/src/plugins/General/trackchange/settingsdialog.h
new file mode 100644
index 000000000..e7e55ef0c
--- /dev/null
+++ b/src/plugins/General/trackchange/settingsdialog.h
@@ -0,0 +1,56 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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"
+
+class QAction;
+class QToolButton;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class SettingsDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ SettingsDialog(QWidget *parent = 0);
+
+ ~SettingsDialog();
+
+public slots:
+ void accept();
+
+private slots:
+ void addTemplateString(QAction *);
+
+private:
+ void addMenu(QToolButton *button);
+
+ Ui::SettingsDialog m_ui;
+
+};
+
+
+
+
+#endif
diff --git a/src/plugins/General/trackchange/settingsdialog.ui b/src/plugins/General/trackchange/settingsdialog.ui
new file mode 100644
index 000000000..0fd6a84e2
--- /dev/null
+++ b/src/plugins/General/trackchange/settingsdialog.ui
@@ -0,0 +1,138 @@
+<?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>441</width>
+ <height>249</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>File Operations Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
+ <item row="1" column="0">
+ <widget class="QLineEdit" name="newTrackLineEdit"/>
+ </item>
+ <item row="1" column="1">
+ <widget class="QToolButton" name="newTrackButton">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLineEdit" name="endOfTrackLineEdit"/>
+ </item>
+ <item row="3" column="1">
+ <widget class="QToolButton" name="endOfTrackButton">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLineEdit" name="endOfPlayListLineEdit"/>
+ </item>
+ <item row="5" column="1">
+ <widget class="QToolButton" name="endOfPlayListButton">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0">
+ <widget class="QLineEdit" name="titleChangeLineEdit"/>
+ </item>
+ <item row="7" column="1">
+ <widget class="QToolButton" name="titleChangeButton">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Command to run when Qmmp starts new track</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Command to run toward to end of a track</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Command to run when Qmmp reaches the end of the playlist</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Command to run when title changes (i.e. network streams title)</string>
+ </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>431</x>
+ <y>376</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>155</x>
+ <y>378</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>433</x>
+ <y>381</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>28</x>
+ <y>375</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/plugins/General/trackchange/songchange.cpp b/src/plugins/General/trackchange/songchange.cpp
new file mode 100644
index 000000000..0e79766de
--- /dev/null
+++ b/src/plugins/General/trackchange/songchange.cpp
@@ -0,0 +1,118 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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 <QAction>
+#include <QSettings>
+#include <QApplication>
+#include <QSignalMapper>
+#include <QProgressDialog>
+#include <QMessageBox>
+#include <QFile>
+#include <QDir>
+#include <QProcess>
+#include <qmmp/soundcore.h>
+#include <qmmpui/uihelper.h>
+#include <qmmpui/playlistmodel.h>
+#include <qmmpui/playlistmanager.h>
+#include <qmmpui/playlistitem.h>
+#include <qmmpui/mediaplayer.h>
+#include <qmmpui/metadataformatter.h>
+#include "songchange.h"
+
+SongChange::SongChange(QObject *parent) : QObject(parent)
+{
+ m_core = SoundCore::instance();
+ m_plManager = PlayListManager::instance();
+ connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(onStateChanged(Qmmp::State)));
+ connect(m_core, SIGNAL(metaDataChanged()), SLOT(onMetaDataChanged()));
+ connect(m_core, SIGNAL(finished()), SLOT(onFinised()));
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ m_newTrackCommand = settings.value("SongChange/new_track_command").toString();
+ m_endOfTrackCommand = settings.value("SongChange/end_of_track_command").toString();
+ m_endOfPlCommand = settings.value("SongChange/end_of_pl_command").toString();
+ m_titleChangeCommand = settings.value("SongChange/title_change_command").toString();
+}
+
+SongChange::~SongChange()
+{}
+
+void SongChange::onStateChanged(Qmmp::State state)
+{
+ switch (state)
+ {
+ case Qmmp::Playing:
+ break;
+ default:
+ m_prevMetaData.clear();
+ }
+}
+
+void SongChange::onMetaDataChanged()
+{
+ QMap <Qmmp::MetaData, QString> metaData = m_core->metaData();
+ if(m_prevMetaData != metaData)
+ {
+ if(m_prevMetaData[Qmmp::URL] == metaData[Qmmp::URL])
+ {
+ if(!m_titleChangeCommand.isEmpty())
+ {
+ qDebug("SongChange: startig title change command..");
+ executeCommand(metaData, m_titleChangeCommand);
+ }
+ }
+ else
+ {
+ if(!m_newTrackCommand.isEmpty())
+ {
+ qDebug("SongChange: startig new track command..");
+ executeCommand(metaData, m_newTrackCommand);
+ }
+ }
+ }
+ m_prevMetaData = metaData;
+}
+
+void SongChange::onFinised()
+{
+ if(!m_endOfTrackCommand.isEmpty())
+ {
+ qDebug("SongChange: startig end of track command..");
+ executeCommand(m_prevMetaData, m_endOfTrackCommand);
+ }
+ if(!m_endOfPlCommand.isEmpty() && !m_plManager->currentPlayList()->nextItem())
+ {
+ qDebug("SongChange: startig end of playlist command..");
+ executeCommand(m_prevMetaData, m_endOfPlCommand);
+ }
+}
+
+bool SongChange::executeCommand(const QMap<Qmmp::MetaData, QString> &metaData, const QString &format)
+{
+ MetaDataFormatter formatter(format);
+ QString command = formatter.parse(metaData);
+#ifdef Q_OS_WIN
+ bool ok = QProcess::startDetached(QString("cmd.exe \"%1\"").arg(command));
+#else
+ bool ok = QProcess::startDetached(QString("sh -c \"%1\"").arg(command));
+#endif
+ if(!ok)
+ qWarning("SongChange: unable to start command '%s'", qPrintable(command));
+ return ok;
+}
diff --git a/src/plugins/General/trackchange/songchange.h b/src/plugins/General/trackchange/songchange.h
new file mode 100644
index 000000000..ae026b3eb
--- /dev/null
+++ b/src/plugins/General/trackchange/songchange.h
@@ -0,0 +1,59 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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 SONGCHANGE_H
+#define SONGCHANGE_H
+
+#include <QMap>
+#include <qmmpui/general.h>
+#include <qmmp/qmmp.h>
+
+class QAction;
+class SoundCore;
+class PlayListItem;
+class PlayListManager;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class SongChange : public QObject
+{
+ Q_OBJECT
+public:
+ SongChange(QObject *parent = 0);
+
+ ~SongChange();
+
+private slots:
+ void onStateChanged(Qmmp::State state);
+ void onMetaDataChanged();
+ void onFinised();
+
+private:
+ bool executeCommand(const QMap <Qmmp::MetaData, QString> &metaData, const QString &format);
+ QString m_newTrackCommand;
+ QString m_endOfTrackCommand;
+ QString m_endOfPlCommand;
+ QString m_titleChangeCommand;
+ SoundCore *m_core;
+ PlayListManager *m_plManager;
+ QMap <Qmmp::MetaData, QString> m_prevMetaData;
+};
+
+#endif
diff --git a/src/plugins/General/trackchange/songchange.pro b/src/plugins/General/trackchange/songchange.pro
new file mode 100644
index 000000000..7bf1c046b
--- /dev/null
+++ b/src/plugins/General/trackchange/songchange.pro
@@ -0,0 +1,36 @@
+include(../../plugins.pri)
+
+INCLUDEPATH += ../../../../src
+CONFIG += release \
+warn_on \
+plugin
+
+TARGET =$$PLUGINS_PREFIX/General/songchange
+unix : QMAKE_CLEAN = $$PLUGINS_PREFIX/General/libsongchange.so
+
+
+TEMPLATE = lib
+unix : QMAKE_LIBDIR += ../../../../lib
+unix : LIBS += -lqmmpui -lqmmp
+
+win32 : QMAKE_LIBDIR += ../../../../bin
+win32 : LIBS += -lqmmpui0 -lqmmp0
+
+RESOURCES = translations/translations.qrc
+unix {
+ isEmpty(LIB_DIR){
+ LIB_DIR = /lib
+ }
+ target.path = $$LIB_DIR/qmmp/General
+ INSTALLS += target
+}
+HEADERS += songchangefactory.h \
+ songchange.h \
+ settingsdialog.h
+
+win32 : HEADERS += ../../../../src/qmmpui/general.h
+SOURCES += songchangefactory.cpp \
+ songchange.cpp \
+ settingsdialog.cpp
+
+FORMS += settingsdialog.ui
diff --git a/src/plugins/General/trackchange/songchangefactory.cpp b/src/plugins/General/trackchange/songchangefactory.cpp
new file mode 100644
index 000000000..e85e665d2
--- /dev/null
+++ b/src/plugins/General/trackchange/songchangefactory.cpp
@@ -0,0 +1,63 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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 <QtGui>
+
+#include "songchange.h"
+#include "settingsdialog.h"
+#include "songchangefactory.h"
+
+const GeneralProperties SongChangeFactory::properties() const
+{
+ GeneralProperties properties;
+ properties.name = tr("Song Change Plugin");
+ properties.shortName = "songchange";
+ properties.hasAbout = true;
+ properties.hasSettings = true;
+ properties.visibilityControl = false;
+ return properties;
+}
+
+QObject *SongChangeFactory::create(QObject *parent)
+{
+ return new SongChange(parent);
+}
+
+QDialog *SongChangeFactory::createConfigDialog(QWidget *parent)
+{
+ return new SettingsDialog(parent);
+}
+
+void SongChangeFactory::showAbout(QWidget *parent)
+{
+ QMessageBox::about (parent, tr("About Song Change Plugin"),
+ tr("Qmmp Song Change Plugin")+"\n"+
+ tr("Written by: Ilya Kotov <forkotov02@hotmail.ru>"));
+}
+
+QTranslator *SongChangeFactory::createTranslator(QObject *parent)
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = Qmmp::systemLanguageID();
+ translator->load(QString(":/songchange_plugin_") + locale);
+ return translator;
+}
+
+Q_EXPORT_PLUGIN2(songchange, SongChangeFactory)
diff --git a/src/plugins/General/trackchange/songchangefactory.h b/src/plugins/General/trackchange/songchangefactory.h
new file mode 100644
index 000000000..7e00519ac
--- /dev/null
+++ b/src/plugins/General/trackchange/songchangefactory.h
@@ -0,0 +1,44 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.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 SONGCHANGEFACTORY_H
+#define SONGCHANGEFACTORY_H
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+#include <QObject>
+#include <QTranslator>
+#include <QDialog>
+#include <qmmpui/general.h>
+#include <qmmpui/generalfactory.h>
+
+class SongChangeFactory : public QObject, public GeneralFactory
+{
+Q_OBJECT
+Q_INTERFACES(GeneralFactory)
+public:
+ const GeneralProperties properties() const;
+ QObject *create(QObject *parent);
+ QDialog *createConfigDialog(QWidget *parent);
+ void showAbout(QWidget *parent);
+ QTranslator *createTranslator(QObject *parent);
+};
+
+#endif
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_cs.ts b/src/plugins/General/trackchange/translations/songchange_plugin_cs.ts
new file mode 100644
index 000000000..cfea184e4
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_cs.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_de.ts b/src/plugins/General/trackchange/translations/songchange_plugin_de.ts
new file mode 100644
index 000000000..0af286050
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_de.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de_DE">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_es.ts b/src/plugins/General/trackchange/translations/songchange_plugin_es.ts
new file mode 100644
index 000000000..731def568
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_es.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_ES">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_fr.ts b/src/plugins/General/trackchange/translations/songchange_plugin_fr.ts
new file mode 100644
index 000000000..4958161d4
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_fr.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_he.ts b/src/plugins/General/trackchange/translations/songchange_plugin_he.ts
new file mode 100644
index 000000000..b5c768c0c
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_he.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="he_IL">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_hu.ts b/src/plugins/General/trackchange/translations/songchange_plugin_hu.ts
new file mode 100644
index 000000000..890b3c6e3
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_hu.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu_HU">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_it.ts b/src/plugins/General/trackchange/translations/songchange_plugin_it.ts
new file mode 100644
index 000000000..65bc2540e
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_it.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="it_IT">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_ja.ts b/src/plugins/General/trackchange/translations/songchange_plugin_ja.ts
new file mode 100644
index 000000000..96510a0ee
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_ja.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja_JP">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_kk.ts b/src/plugins/General/trackchange/translations/songchange_plugin_kk.ts
new file mode 100644
index 000000000..35a4c4493
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_kk.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="kk_KZ">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_lt.ts b/src/plugins/General/trackchange/translations/songchange_plugin_lt.ts
new file mode 100644
index 000000000..e9d285a62
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_lt.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="lt_LT">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_nl.ts b/src/plugins/General/trackchange/translations/songchange_plugin_nl.ts
new file mode 100644
index 000000000..cbe6da2ca
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_nl.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nl_NL">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_pl_PL.ts b/src/plugins/General/trackchange/translations/songchange_plugin_pl_PL.ts
new file mode 100644
index 000000000..99b36c5d0
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_pl_PL.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl_PL">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_pt_BR.ts b/src/plugins/General/trackchange/translations/songchange_plugin_pt_BR.ts
new file mode 100644
index 000000000..a2d53283d
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_pt_BR.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pt_BR">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_ru.ts b/src/plugins/General/trackchange/translations/songchange_plugin_ru.ts
new file mode 100644
index 000000000..54b8d6001
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_ru.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru_RU">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_sk.ts b/src/plugins/General/trackchange/translations/songchange_plugin_sk.ts
new file mode 100644
index 000000000..8f3f48c88
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_sk.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sk_SK">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_tr.ts b/src/plugins/General/trackchange/translations/songchange_plugin_tr.ts
new file mode 100644
index 000000000..efccc402a
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_tr.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="tr_TR">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_uk_UA.ts b/src/plugins/General/trackchange/translations/songchange_plugin_uk_UA.ts
new file mode 100644
index 000000000..34728e398
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_uk_UA.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_zh_CN.ts b/src/plugins/General/trackchange/translations/songchange_plugin_zh_CN.ts
new file mode 100644
index 000000000..7d1465121
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_zh_CN.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/songchange_plugin_zh_TW.ts b/src/plugins/General/trackchange/translations/songchange_plugin_zh_TW.ts
new file mode 100644
index 000000000..602085554
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/songchange_plugin_zh_TW.ts
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>File Operations Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="32"/>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <location filename="../settingsdialog.ui" line="52"/>
+ <location filename="../settingsdialog.ui" line="62"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="76"/>
+ <source>Command to run when Qmmp starts new track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="83"/>
+ <source>Command to run toward to end of a track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="90"/>
+ <source>Command to run when Qmmp reaches the end of the playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="97"/>
+ <source>Command to run when title changes (i.e. network streams title)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="58"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="59"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="60"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="61"/>
+ <source>Track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="62"/>
+ <source>Two-digit track number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="65"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="66"/>
+ <source>Duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="67"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="68"/>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="69"/>
+ <source>File path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="70"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="71"/>
+ <source>Condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SongChangeFactory</name>
+ <message>
+ <location filename="../songchangefactory.cpp" line="30"/>
+ <source>Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="50"/>
+ <source>About Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="51"/>
+ <source>Qmmp Song Change Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../songchangefactory.cpp" line="52"/>
+ <source>Written by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/trackchange/translations/translations.qrc b/src/plugins/General/trackchange/translations/translations.qrc
new file mode 100644
index 000000000..8c8eb21ac
--- /dev/null
+++ b/src/plugins/General/trackchange/translations/translations.qrc
@@ -0,0 +1,24 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>songchange_plugin_ru.qm</file>
+ <file>songchange_plugin_uk_UA.qm</file>
+ <file>songchange_plugin_zh_CN.qm</file>
+ <file>songchange_plugin_zh_TW.qm</file>
+ <file>songchange_plugin_tr.qm</file>
+ <file>songchange_plugin_cs.qm</file>
+ <file>songchange_plugin_pt_BR.qm</file>
+ <file>songchange_plugin_de.qm</file>
+ <file>songchange_plugin_pl_PL.qm</file>
+ <file>songchange_plugin_fr.qm</file>
+ <file>songchange_plugin_it.qm</file>
+ <file>songchange_plugin_kk.qm</file>
+ <file>songchange_plugin_lt.qm</file>
+ <file>songchange_plugin_hu.qm</file>
+ <file>songchange_plugin_nl.qm</file>
+ <file>songchange_plugin_ja.qm</file>
+ <file>songchange_plugin_sk.qm</file>
+ <file>songchange_plugin_es.qm</file>
+ <file>songchange_plugin_he.qm</file>
+ </qresource>
+</RCC>