diff options
Diffstat (limited to 'src/plugins/Engines')
24 files changed, 2884 insertions, 0 deletions
diff --git a/src/plugins/Engines/CMakeLists.txt b/src/plugins/Engines/CMakeLists.txt new file mode 100644 index 000000000..636972563 --- /dev/null +++ b/src/plugins/Engines/CMakeLists.txt @@ -0,0 +1,5 @@ +SET(USE_MPLAYER TRUE CACHE BOOL "enable/disable mplayer support") + +IF(USE_MPLAYER) +add_subdirectory(mplayer) +ENDIF(USE_MPLAYER) diff --git a/src/plugins/Engines/Engines.pro b/src/plugins/Engines/Engines.pro new file mode 100644 index 000000000..1dddcfd5d --- /dev/null +++ b/src/plugins/Engines/Engines.pro @@ -0,0 +1,4 @@ +include(../../../qmmp.pri) + +SUBDIRS += mplayer +TEMPLATE = subdirs diff --git a/src/plugins/Engines/mplayer/CMakeLists.txt b/src/plugins/Engines/mplayer/CMakeLists.txt new file mode 100644 index 000000000..1dea9477b --- /dev/null +++ b/src/plugins/Engines/mplayer/CMakeLists.txt @@ -0,0 +1,66 @@ +project(libmplayer) + +cmake_minimum_required(VERSION 2.4.7) + +if(COMMAND cmake_policy) +cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + + +# qt plugin +ADD_DEFINITIONS( -Wall ) +ADD_DEFINITIONS(${QT_DEFINITIONS}) +ADD_DEFINITIONS(-DQT_PLUGIN) +ADD_DEFINITIONS(-DQT_NO_DEBUG) +ADD_DEFINITIONS(-DQT_SHARED) +ADD_DEFINITIONS(-DQT_THREAD) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +SET(QT_INCLUDES + ${QT_INCLUDES} + ${CMAKE_CURRENT_BINARY_DIR}/../../../ +) + +# libqmmp +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) + + +SET(libmplayer_SRCS + mplayerenginefactory.cpp + mplayerengine.cpp + mplayermetadatamodel.cpp + settingsdialog.cpp +) + +SET(libmplayer_MOC_HDRS + mplayerenginefactory.h + mplayerengine.h + mplayermetadatamodel.h + settingsdialog.h +) + +SET(libmplayer_RCCS translations/translations.qrc) + +QT4_ADD_RESOURCES(libmplayer_RCC_SRCS ${libmplayer_RCCS}) + +QT4_WRAP_CPP(libmplayer_MOC_SRCS ${libmplayer_MOC_HDRS}) + +# user interface + + +SET(libmplayer_UIS + settingsdialog.ui +) + +QT4_WRAP_UI(libmplayer_UIS_H ${libmplayer_UIS}) +# Don't forget to include output directory, otherwise +# the UI file won't be wrapped! +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +ADD_LIBRARY(mplayer MODULE ${libmplayer_SRCS} ${libmplayer_MOC_SRCS} ${libmplayer_RCC_SRCS} ${libmplayer_UIS_H}) +add_dependencies(mplayer qmmp) +target_link_libraries(mplayer ${QT_LIBRARIES} -lqmmp) +install(TARGETS mplayer DESTINATION ${LIB_DIR}/qmmp/Engines) + diff --git a/src/plugins/Engines/mplayer/mplayer.pro b/src/plugins/Engines/mplayer/mplayer.pro new file mode 100644 index 000000000..dbcde014d --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayer.pro @@ -0,0 +1,34 @@ +include(../../plugins.pri) +HEADERS += mplayerenginefactory.h \ + mplayerengine.h \ + settingsdialog.h \ + mplayermetadatamodel.h +SOURCES += mplayerengine.cpp \ + mplayerenginefactory.cpp \ + settingsdialog.cpp \ + mplayermetadatamodel.cpp +TARGET = $$PLUGINS_PREFIX/Engines/mplayer +QMAKE_CLEAN = $$PLUGINS_PREFIX/Engines/libmplayer.so +INCLUDEPATH += ../../../ +CONFIG += release \ + warn_on \ + plugin +TEMPLATE = lib +QMAKE_LIBDIR += ../../../../lib +LIBS += -lqmmp \ + -L/usr/lib +TRANSLATIONS = translations/mplayer_plugin_ru.ts \ + translations/mplayer_plugin_uk_UA.ts \ + translations/mplayer_plugin_zh_CN.ts \ + translations/mplayer_plugin_zh_TW.ts \ + translations/mplayer_plugin_cs.ts \ + translations/mplayer_plugin_pl.ts \ + translations/mplayer_plugin_de.ts \ + translations/mplayer_plugin_it.ts \ + translations/mplayer_plugin_tr.ts \ + translations/mplayer_plugin_lt.ts +RESOURCES = translations/translations.qrc +isEmpty(LIB_DIR):LIB_DIR = /lib +target.path = $$LIB_DIR/qmmp/Input +INSTALLS += target +FORMS += settingsdialog.ui diff --git a/src/plugins/Engines/mplayer/mplayerengine.cpp b/src/plugins/Engines/mplayer/mplayerengine.cpp new file mode 100644 index 000000000..33a2c69ae --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayerengine.cpp @@ -0,0 +1,262 @@ +/*************************************************************************** + * Copyright (C) 2008-2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <QObject> +#include <QProcess> +#include <QFile> +#include <QApplication> +#include <QAction> +#include <QMetaObject> +#include <QKeyEvent> +#include <QMenu> +#include <QRegExp> +#include <QSettings> +#include <qmmp/buffer.h> +#include <qmmp/output.h> +#include <qmmp/recycler.h> +#include <qmmp/fileinfo.h> +#include <qmmp/decoderfactory.h> +#include <qmmp/inputsource.h> +#include "mplayerengine.h" + +#define MPLAYER_DEBUG + +static QRegExp rx_av("^[AV]: *([0-9,:.-]+)"); +static QRegExp rx_pause("^(.*)=(.*)PAUSE(.*)"); +static QRegExp rx_end("^(.*)End of file(.*)"); +static QRegExp rx_quit("^(.*)Quit(.*)"); +static QRegExp rx_audio("^AUDIO: *([0-9,.]+) *Hz.*([0-9,.]+) *ch.*([0-9]+).* ([0-9,.]+) *kbit.*"); + + +FileInfo *MplayerInfo::createFileInfo(const QString &path) +{ + QRegExp rx_id_length("^ID_LENGTH=([0-9,.]+)*"); + QStringList args; + args << "-slave"; + args << "-identify"; + args << "-frames"; + args << "0"; + args << "-vo"; + args << "null"; + args << "-ao"; + args << "null"; + args << path; + QProcess mplayer_process; + mplayer_process.start("mplayer", args); + mplayer_process.waitForFinished(); + QString str = QString::fromLocal8Bit(mplayer_process.readAll()).trimmed(); + FileInfo *info = new FileInfo(path); + QStringList lines = str.split("\n"); + foreach(QString line, lines) + { + if (rx_id_length.indexIn(line) > -1) + info->setLength((qint64) rx_id_length.cap(1).toDouble()); + } +#ifdef MPLAYER_DEBUG + qDebug("%s",qPrintable(str)); +#endif + return info; +} + +QStringList MplayerInfo::filters() +{ + QStringList filters; + filters << "*.avi" << "*.mpg" << "*.mpeg" << "*.divx" << "*.qt" << "*.mov" << "*.wmv" << "*.asf" + << "*.flv" << "*.3gp" << "*.mkv"; + return filters; +} + +MplayerEngine::MplayerEngine(QObject *parent) + : AbstractEngine(parent) +{ + //m_url = url; + m_bitrate = 0; + m_samplerate = 0; + m_channels = 0; + m_bitsPerSample = 0; + m_length = 0; + m_currentTime = 0; + m_process = new QProcess(this); + connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(readStdOut())); +} + +MplayerEngine::~MplayerEngine() +{ + qDebug("%s",__FUNCTION__); + m_process->close(); +} + +bool MplayerEngine::play() +{ + if(m_process->state() != QProcess::NotRunning) + return FALSE; + startMplayerProcess(); + return TRUE; +} + +bool MplayerEngine::enqueue(InputSource *source) +{ + QString url = source->url(); + QStringList filters = MplayerInfo::filters(); + bool supports = FALSE; + foreach(QString filter, filters) + { + QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); + supports = regexp.exactMatch(source->url()); + if(supports) + break; + } + if(!supports) + return FALSE; + source->deleteLater(); + if(m_process->state() == QProcess::NotRunning) + m_url = url; + else + m_files.enqueue(url); + return TRUE; +} + +bool MplayerEngine::initialize() +{ + FileInfo *info = MplayerInfo::createFileInfo(m_url); + m_length = info->length(); + delete info; + m_args.clear(); + m_args << "-slave"; + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + QString ao_str = settings.value("mplayer/ao","default").toString(); + QString vo_str = settings.value("mplayer/vo","default").toString(); + if (ao_str != "default") + m_args << "ao=" + ao_str; + if (vo_str != "default") + m_args << "vo=" + vo_str; + + if (settings.value("autosync", FALSE).toBool()) + m_args << QString("-autosync %1").arg(settings.value("autosync_factor", 100).toInt()); + + m_args << m_url; + return TRUE; +} + +qint64 MplayerEngine::totalTime() +{ + return m_length * 1000; +} + +void MplayerEngine::seek(qint64 pos) +{ + if (m_process->state() == QProcess::Running) + m_process->write(QString("seek %1 \n").arg(pos/1000 - m_currentTime).toLocal8Bit ()); +} + +void MplayerEngine::stop() +{ + if (m_process->state() == QProcess::Running) + { + m_process->write("quit\n"); + m_process->waitForFinished(1500); + } + StateHandler::instance()->dispatch(Qmmp::Stopped); + m_files.clear(); + m_url.clear(); +} + +void MplayerEngine::pause() +{ + m_process->write("pause\n"); +} + +void MplayerEngine::setEQ(double bands[10], double preamp) +{ + Q_UNUSED(bands[10]); + Q_UNUSED(preamp); +} + +void MplayerEngine::setEQEnabled(bool on) +{ + Q_UNUSED(on); +} + +void MplayerEngine::readStdOut() +{ + QString line = QString::fromLocal8Bit(m_process->readAll ()).trimmed(); + QStringList lines = line.split("\n"); + foreach(line, lines) + { + if (rx_av.indexIn(line) > -1) + { + StateHandler::instance()->dispatch(Qmmp::Playing); + m_currentTime = (qint64) rx_av.cap(1).toDouble(); + StateHandler::instance()->dispatch(m_currentTime * 1000, + m_bitrate, + m_samplerate, + m_bitsPerSample, + m_channels); + } + else if (rx_pause.indexIn(line) > -1) + { + StateHandler::instance()->dispatch(Qmmp::Paused); + } + else if (rx_end.indexIn(line) > -1) + { + if (m_process->state() == QProcess::Running) + m_process->waitForFinished(3500); + emit playbackFinished(); + if(!m_files.isEmpty()) + { + StateHandler::instance()->dispatch(Qmmp::Stopped); + m_url = m_files.dequeue(); + startMplayerProcess(); + } + else + { + StateHandler::instance()->dispatch(Qmmp::Stopped); + return; + } + } + else if (rx_quit.indexIn(line) > -1) + { + if (m_process->state() == QProcess::Running) + m_process->waitForFinished(1500); + StateHandler::instance()->dispatch(Qmmp::Stopped); + } + else if (rx_audio.indexIn(line) > -1) + { + m_samplerate = rx_audio.cap(1).toInt(); + m_channels = rx_audio.cap(2).toInt(); + m_bitsPerSample = rx_audio.cap(3).toDouble(); + m_bitrate = rx_audio.cap(4).toDouble(); + } +#ifdef MPLAYER_DEBUG + else + qDebug("%s",qPrintable(line)); +#endif + } +} + +void MplayerEngine::startMplayerProcess() +{ + initialize(); + m_process->start ("mplayer", m_args); + StateHandler::instance()->dispatch(Qmmp::Playing); + FileInfo *info = MplayerInfo::createFileInfo(m_url); + StateHandler::instance()->dispatch(info->metaData()); + delete info; +} diff --git a/src/plugins/Engines/mplayer/mplayerengine.h b/src/plugins/Engines/mplayer/mplayerengine.h new file mode 100644 index 000000000..cc6b12d16 --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayerengine.h @@ -0,0 +1,83 @@ +/*************************************************************************** + * Copyright (C) 2008-2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef MPLAYERENGINE_H +#define MPLAYERENGINE_H + +#include <QQueue> +#include <QString> +#include <qmmp/statehandler.h> +#include <qmmp/abstractengine.h> + +class Output; +class QIDevice; +class DecoderPhonon; +class QMenu; +class QProcess; +class FileInfo; +class InputSource; + +class MplayerInfo +{ +public: + static FileInfo *createFileInfo(const QString &path); + static QStringList filters(); +}; + +class MplayerEngine : public AbstractEngine +{ + Q_OBJECT +public: + MplayerEngine(QObject *parent); + virtual ~MplayerEngine(); + + // Engine API + bool play(); + bool enqueue(InputSource *source); + bool initialize(); + qint64 totalTime(); + void seek(qint64); + void stop(); + void pause(); + + // Equalizer + void setEQ(double bands[10], double preamp); + void setEQEnabled(bool on); + +private slots: + void readStdOut(); + void startMplayerProcess(); + +private: + int mplayer_pipe[2]; + QString m_url; + QStringList m_args; + QProcess *m_process; + int m_bitrate; + int m_samplerate; + int m_channels; + int m_bitsPerSample; + qint64 m_currentTime; + qint64 m_length; + QQueue <QString> m_files; +}; + + +#endif // MPLAYERENGINE_H diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.cpp b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp new file mode 100644 index 000000000..33ca2e4cf --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp @@ -0,0 +1,96 @@ +/*************************************************************************** + * Copyright (C) 2008-2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include <QtGui> + +#include "mplayermetadatamodel.h" +#include "settingsdialog.h" +#include "mplayerengine.h" +#include "mplayerenginefactory.h" + + +// MplayerEngineFactory + +const EngineProperties MplayerEngineFactory::properties() const +{ + EngineProperties properties; + properties.name = tr("Mplayer Plugin"); + properties.shortName = "mplayer"; + properties.filter = MplayerInfo::filters().join(" "); + properties.description = tr("Video Files"); + //properties.contentType = "application/ogg;audio/x-vorbis+ogg"; + properties.protocols = "file"; + properties.hasAbout = TRUE; + properties.hasSettings = TRUE; + return properties; +} + +bool MplayerEngineFactory::supports(const QString &source) const +{ + QStringList filters = MplayerInfo::filters(); + foreach(QString filter, filters) + { + QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); + if (regexp.exactMatch(source)) + return TRUE; + } + return FALSE; +} + +AbstractEngine *MplayerEngineFactory::create(QObject *parent) +{ + return new MplayerEngine(parent); +} + +QList<FileInfo *> MplayerEngineFactory::createPlayList(const QString &fileName, bool useMetaData) +{ + Q_UNUSED(useMetaData); + QList<FileInfo *> info; + info << MplayerInfo::createFileInfo(fileName); + return info; +} + +MetaDataModel* MplayerEngineFactory::createMetaDataModel(const QString &path, QObject *parent) +{ + return new MplayerMetaDataModel(path, parent); +} + +void MplayerEngineFactory::showSettings(QWidget *parent) +{ + SettingsDialog *s = new SettingsDialog(parent); + s->show(); +} + +void MplayerEngineFactory::showAbout(QWidget *parent) +{ + QMessageBox::about (parent, tr("About MPlayer Plugin"), + tr("Qmmp MPlayer Plugin")+"\n"+ + tr("This plugin uses MPlayer as backend")+"\n"+ + tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>")); +} + +QTranslator *MplayerEngineFactory::createTranslator(QObject *parent) +{ + QTranslator *translator = new QTranslator(parent); + QString locale = Qmmp::systemLanguageID(); + translator->load(QString(":/mplayer_plugin_") + locale); + return translator; +} + +Q_EXPORT_PLUGIN(MplayerEngineFactory) diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.h b/src/plugins/Engines/mplayer/mplayerenginefactory.h new file mode 100644 index 000000000..4c43b15a2 --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (C) 2006-2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef MPLAYERENGINEFACTORY_H +#define MPLAYERENGINEFACTORY_H + +#include <QObject> +#include <QString> +#include <QIODevice> +#include <QWidget> + +#include <qmmp/abstractengine.h> +#include <qmmp/enginefactory.h> +#include <qmmp/fileinfo.h> +#include <qmmp/metadatamodel.h> + +class MplayerEngineFactory : public QObject, EngineFactory +{ +Q_OBJECT +Q_INTERFACES(EngineFactory); + +public: + const EngineProperties properties() const; + bool supports(const QString &source) const; + AbstractEngine *create(QObject *parent = 0); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); + void showSettings(QWidget *parent); + void showAbout(QWidget *parent); + QTranslator *createTranslator(QObject *parent); +}; + +#endif diff --git a/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp new file mode 100644 index 000000000..7aa8b3e3a --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp @@ -0,0 +1,106 @@ +/*************************************************************************** + * Copyright (C) 2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <QRegExp> +#include <QFileInfo> +#include <QStringList> +#include <QProcess> +#include "mplayermetadatamodel.h" + +MplayerMetaDataModel::MplayerMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent) +{ + m_path = path; +} + +MplayerMetaDataModel::~MplayerMetaDataModel() +{} + +QHash<QString, QString> MplayerMetaDataModel::audioProperties() +{ + QHash<QString, QString> vp; + QHash<QString, QString> ap; + ap.insert(tr("Size"), QString("%1 ").arg(QFileInfo(m_path).size ()/1024)+tr("KB")); + //regular expressions + QRegExp rx_id_length("^ID_LENGTH=([0-9,.]+)*"); + QRegExp rx_id_demuxer("^ID_DEMUXER=(.*)"); + QRegExp rx_id_video_bitrate("^ID_VIDEO_BITRATE=([0-9,.]+)*"); + QRegExp rx_id_width("^ID_VIDEO_WIDTH=([0-9,.]+)*"); + QRegExp rx_id_height("^ID_VIDEO_HEIGHT=([0-9,.]+)*"); + QRegExp rx_id_video_format("^ID_VIDEO_FORMAT=(.*)"); + QRegExp rx_id_video_fps("^ID_VIDEO_FPS=([0-9,.]+)*"); + QRegExp rx_id_video_codec("^ID_VIDEO_CODEC=(.*)"); + QRegExp rx_id_video_aspect("^ID_VIDEO_ASPECT=([0-9,.]+)*"); + QRegExp rx_id_audio_bitrate("^ID_AUDIO_BITRATE=([0-9,.]+)*"); + QRegExp rx_id_audio_rate("^ID_AUDIO_RATE=([0-9,.]+)*"); + QRegExp rx_id_audio_nch("^ID_AUDIO_NCH=([0-9,.]+)*"); + QRegExp rx_id_audio_codec("^ID_AUDIO_CODEC=(.*)"); + //prepare and start mplayer process + QStringList args; + args << "-slave"; + args << "-identify"; + args << "-frames"; + args << "0"; + args << "-vo"; + args << "null"; + args << "-ao"; + args << "null"; + args << m_path; + QProcess mplayer_process; + mplayer_process.start("mplayer", args); + mplayer_process.waitForFinished(); + QString str = QString::fromLocal8Bit(mplayer_process.readAll()).trimmed(); + QStringList lines = str.split("\n"); + int height = 0, width = 0; + //mplayer std output parsing + foreach(QString line, lines) + { + //general info + if (rx_id_length.indexIn(line) > -1) + ap.insert(tr("Length"),rx_id_length.cap(1)); //TODO use hh:mm:ss format + else if (rx_id_demuxer.indexIn(line) > -1) + ap.insert(tr("Demuxer"), rx_id_demuxer.cap(1)); + //video info + else if (rx_id_video_format.indexIn(line) > -1) + ap.insert(tr("Video format"), rx_id_video_format.cap(1)); + else if (rx_id_video_fps.indexIn(line) > -1) + ap.insert(tr("FPS"), rx_id_video_fps.cap(1)); + else if (rx_id_video_codec.indexIn(line) > -1) + ap.insert(tr("Video codec"), rx_id_video_codec.cap(1)); + else if (rx_id_video_aspect.indexIn(line) > -1) + ap.insert(tr("Aspect ratio"),rx_id_video_aspect.cap(1)); + else if (rx_id_video_bitrate.indexIn(line) > -1) + ap.insert(tr("Video bitrate"), rx_id_video_bitrate.cap(1)); + else if (rx_id_width.indexIn(line) > -1) + width = rx_id_width.cap(1).toInt(); + else if (rx_id_height.indexIn(line) > -1) + height = rx_id_height.cap(1).toInt(); + //audio info + else if (rx_id_audio_codec.indexIn(line) > -1) + ap.insert(tr("Audio codec"),rx_id_audio_codec.cap(1)); + else if (rx_id_audio_rate.indexIn(line) > -1) + ap.insert(tr("Sample rate"), rx_id_audio_rate.cap(1)); + else if (rx_id_audio_bitrate.indexIn(line) > -1) + ap.insert(tr("Audio bitrate"), rx_id_audio_bitrate.cap(1)); + else if (rx_id_audio_nch.indexIn(line) > -1) + ap.insert(tr("Channels"), rx_id_audio_nch.cap(1)); + } + vp.insert(tr("Resolution"), QString("%1x%2").arg(width).arg(height)); + return ap; +} diff --git a/src/plugins/Engines/mplayer/mplayermetadatamodel.h b/src/plugins/Engines/mplayer/mplayermetadatamodel.h new file mode 100644 index 000000000..3cfe4662c --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.h @@ -0,0 +1,38 @@ +/*************************************************************************** + * Copyright (C) 2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef MPLAYERMETADATAMODEL_H +#define MPLAYERMETADATAMODEL_H + +#include <qmmp/metadatamodel.h> + +class MplayerMetaDataModel : public MetaDataModel +{ +Q_OBJECT +public: + MplayerMetaDataModel(const QString &path, QObject *parent); + ~MplayerMetaDataModel(); + QHash<QString, QString> audioProperties(); + +private: + QString m_path; +}; + +#endif // MPLAYERMETADATAMODEL_H diff --git a/src/plugins/Engines/mplayer/settingsdialog.cpp b/src/plugins/Engines/mplayer/settingsdialog.cpp new file mode 100644 index 000000000..029890eb1 --- /dev/null +++ b/src/plugins/Engines/mplayer/settingsdialog.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** + * Copyright (C) 2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include <QSettings> + +#include <qmmp/qmmp.h> + +#include "settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + setAttribute(Qt::WA_DeleteOnClose); + ui.videoComboBox->addItem(tr("default")); + ui.videoComboBox->addItem("xv"); + ui.videoComboBox->addItem("x11"); + ui.videoComboBox->addItem("gl"); + ui.videoComboBox->addItem("gl2"); + ui.videoComboBox->addItem("dga"); + ui.videoComboBox->addItem("sdl"); + ui.videoComboBox->addItem("null"); + ui.audioComboBox->addItem(tr("default")); + ui.audioComboBox->addItem("oss"); + ui.audioComboBox->addItem("alsa"); + ui.audioComboBox->addItem("pulse"); + ui.audioComboBox->addItem("jack"); + ui.audioComboBox->addItem("nas"); + ui.audioComboBox->addItem("null"); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("mplayer"); + ui.audioComboBox->setEditText(settings.value("ao","default").toString().replace("default", tr("default"))); + ui.videoComboBox->setEditText(settings.value("vo","default").toString().replace("default", tr("default"))); + ui.autoSyncCheckBox->setChecked(settings.value("autosync", FALSE).toBool()); + ui.syncFactorSpinBox->setValue(settings.value("autosync_factor", 100).toInt()); + settings.endGroup(); +} + + +SettingsDialog::~SettingsDialog() +{} + +void SettingsDialog::accept() +{ + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("mplayer"); + settings.setValue("ao",ui.audioComboBox->currentText().replace(tr("default"), "default")); + settings.setValue("vo",ui.videoComboBox->currentText().replace(tr("default"), "default")); + settings.setValue("autosync",ui.autoSyncCheckBox->isChecked()); + settings.setValue("autosync_factor",ui.syncFactorSpinBox->value()); + settings.endGroup(); + QDialog::accept(); +} diff --git a/src/plugins/Engines/mplayer/settingsdialog.h b/src/plugins/Engines/mplayer/settingsdialog.h new file mode 100644 index 000000000..9ba56bce8 --- /dev/null +++ b/src/plugins/Engines/mplayer/settingsdialog.h @@ -0,0 +1,46 @@ +/*************************************************************************** + * Copyright (C) 2009 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include <QDialog> + +#include "ui_settingsdialog.h" + +/** + @author Ilya Kotov <forkotov02@hotmail.ru> +*/ +class SettingsDialog : public QDialog +{ +Q_OBJECT +public: + SettingsDialog(QWidget *parent = 0); + + ~SettingsDialog(); + + +public slots: + virtual void accept(); + +private: + Ui::SettingsDialog ui; +}; + +#endif diff --git a/src/plugins/Engines/mplayer/settingsdialog.ui b/src/plugins/Engines/mplayer/settingsdialog.ui new file mode 100644 index 000000000..86dbfe8f6 --- /dev/null +++ b/src/plugins/Engines/mplayer/settingsdialog.ui @@ -0,0 +1,141 @@ +<?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>259</width> + <height>143</height> + </rect> + </property> + <property name="windowTitle"> + <string>MPlayer 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="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Video:</string> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2"> + <widget class="QComboBox" name="videoComboBox"> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Audio:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QComboBox" name="audioComboBox"> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="2" column="0" colspan="3"> + <widget class="QCheckBox" name="autoSyncCheckBox"> + <property name="text"> + <string>Audio/video auto synchronization</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0" colspan="2"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Synchronization factor:</string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QSpinBox" name="syncFactorSpinBox"> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>999</number> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>SettingsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>205</x> + <y>136</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>76</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>SettingsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>208</x> + <y>136</y> + </hint> + <hint type="destinationlabel"> + <x>40</x> + <y>81</y> + </hint> + </hints> + </connection> + <connection> + <sender>autoSyncCheckBox</sender> + <signal>toggled(bool)</signal> + <receiver>syncFactorSpinBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>216</x> + <y>67</y> + </hint> + <hint type="destinationlabel"> + <x>237</x> + <y>96</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts new file mode 100644 index 000000000..26f09d606 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="cs"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Modul MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Videosoubory</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>O modulu MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Modul Qmmp MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Tento modul používá jako backend MPlayer</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Vzorkovací frekvence:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Zavřít</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Cesta k souboru:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Velikost:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Demultiplexor:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Délka:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Obraz</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Rozlišení:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Datový tok:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Formát:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Kodek:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Poměr stran:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Zvuk</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Kanály:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Podrobnosti</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Obecné informace</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>výchozí</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Nastavení MPlayer</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Video:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Audio:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Automatická A/V synchronizace</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Synchronizační faktor:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts new file mode 100644 index 000000000..2f029c38b --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>MPlayer-Modul</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Videodateien</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>Über MPlayer-Modul</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Qmmp MPlayer-Modul</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Dieses Modul nutzt MPlayer als Backend</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Abtastrate:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Schließen</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Dateipfad:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Größe:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Demuxer:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Länge:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Video</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Auflösung:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Bitrate:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Format:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Codec:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Seitenverhältnis:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Audio</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Kanäle:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Details</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Allgemeine Informationen</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>Standard</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Einstellungen MPlayer-Modul</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Video:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Audio:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Autom. Audio/Video-Synchronisation</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Synchronisationsfaktor:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts new file mode 100644 index 000000000..f405e4505 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Modulo MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Documenti video</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Autore: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>Info sul modulo MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Modulo MPlayer per Qmmp</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Modulo che usa MPlayer come Backend</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Campionamento:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Chiudi</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>File:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Dimensione:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Demuxer:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Durata:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Video</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Risoluzione:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Bitrate:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Formato:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Codec:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Ratio visualizzazione:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Audio</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Canali:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Dettagli</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Informazioni generali</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>Default</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Impostazioni MPlayer</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Video:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Audio:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>sincronizzazione audio/video</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Fattore di sincronizzazione</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts new file mode 100644 index 000000000..87d1c6b33 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="lt"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>MPlayer įskiepis</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Video bylos</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>Apie MPlayer Qmmp įskiepį</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Qmmp MPlayer įskiepis</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Šis įskiepis naudoja Mplayer video grojimui</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Užverti</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Sample rate:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Bylos kelias:</translation> + </message> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Dydis:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Demuxer:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Ilgis:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Video</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Rezoliucija:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Bitrate:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Tipas:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Kodėkas:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Aspect ratio:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Аudio</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Kanalai:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Informacija</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Bendra informacija</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>Numatytas</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>MPlayer nustatymai</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Video:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Аudio:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Audio/Video automatinė sinchronizacija</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Sinchronizacijos:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts new file mode 100644 index 000000000..fadc08ecc --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="pl"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Wtyczka Mplayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Pliki wideo</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>O wtyczce Mplayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Wtyczka Mplayer dla Qmmp</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Ta wtyczka używa Mplayer do odtwarzania</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation></translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Szczegóły</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Ogólne informacje</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Ścieżka do pliku:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Rozmiar:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation></translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Demuxer:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Długość:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Wideo</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Rozdzielczość:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation></translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Format:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>Klatek na sek.:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Kodek:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Format obrazu:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Dźwięk</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Próbkowanie:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Kanały:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Zamknij</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>domyślne</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Ustawienia Mplayer</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Wideo:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Dźwięk:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Auto synchronizacja audio/wideo</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Współczynnik synchro:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts new file mode 100644 index 000000000..b4169c849 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Модуль MPlayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Файлы видео</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>О модуле MPlayer для Qmmp</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Модуль поддержки MPlayer для Qmmp</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>В этом модуле для воспроизведения используется Mplayer</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Закрыть</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Дискретизация:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Путь к файлу:</translation> + </message> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>КБ</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Размер:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Демультиплексор:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Длительность:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Видео</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Разрешение:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Битовая частота:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Формат:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>Частота кадров:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Кодек:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Соотношение сторон:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Аудио</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Каналов:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Информация</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Общая информация</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>по умолчанию</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Настройки MPlayer</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Видео:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Аудио:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Автоматическая синхронизация аудио/видео</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Фактор синхронизации:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts new file mode 100644 index 000000000..f1ba30cb0 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="tr_TR"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Mplayer Eklentisi</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Video Dosyaları</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>MPlayer Eklentisi Hakkında</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Qmmp MPlayer Eklentisi</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Bu eklenti arka uç olarak MPlayer kullanır</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Yazan: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Detaylar</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Genel Bilgiler</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Dosya konumu:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Boyut:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Çözümleyici:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Uzunluk:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Video</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Çözünürlük:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Bit oranı:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Biçim:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Kodek:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>En-boy oranı:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Ses</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Örnekleme oranı:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Kanallar:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Kapat</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>öntanımlı</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>MPlayer Ayarları</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Video:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Ses:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Ses/video otomatik senkronizasyon</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Senkronizasyon faktörü:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts new file mode 100644 index 000000000..95a95ccb6 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="uk"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Модуль Mplayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>Відео файли</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>Розробник: Ілля Котов <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>Про модуль Mplayer</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Модуль Mplayer для Qmmp</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>Цей модуль використовує MPlayer як бекенд</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>Закрити</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>Дискретизація:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>Шлях до файлу:</translation> + </message> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>Кб</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>Розмір:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>Демультиплексор:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>Тривалість:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>Відео</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>Роздільність:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>Бітрейт:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>Формат:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>Кадрів в секунду:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>Кодек:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>Співвідношення:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>Аудіо</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>Канали:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>Детально</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>Головна інформація</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>за умовчанням</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Налаштування MPlayer</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>Відео:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>Аудіо:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>Автоматична синхронізація аудіо/відео</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>Фактор синхронізації:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts new file mode 100644 index 000000000..a20be020d --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_CN"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Mplayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>视频文件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>关于 MPlayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Qmmp MPlayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>此插件使用 MPlayer 后端</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>关闭</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>取样率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>文件路径:</translation> + </message> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>大小:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>流分离:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>长度:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>视频</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>分辨率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>位速率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>格式:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>编解码器:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>宽高比:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>音频</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>声音通道:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>详细资料</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>常规信息</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>默认</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Mplayer 设置</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>视频:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>音频:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>音频/视频自动同步</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>同步系数:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts new file mode 100644 index 000000000..66c75d389 --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_TW"> +<context> + <name>DecoderMplayerFactory</name> + <message> + <location filename="../decodermplayerfactory.cpp" line="50"/> + <source>Mplayer Plugin</source> + <translation>Mplayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="53"/> + <source>Video Files</source> + <translation>視頻檔案</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="97"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="94"/> + <source>About MPlayer Plugin</source> + <translation>關於 Mplayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="95"/> + <source>Qmmp MPlayer Plugin</source> + <translation>Qmmp Mplayer 插件</translation> + </message> + <message> + <location filename="../decodermplayerfactory.cpp" line="96"/> + <source>This plugin uses MPlayer as backend</source> + <translation>此插件使用 Mplayer 後端</translation> + </message> +</context> +<context> + <name>DetailsDialog</name> + <message> + <location filename="../detailsdialog.ui" line="363"/> + <source>Close</source> + <translation>關閉</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="58"/> + <location filename="../detailsdialog.ui" line="72"/> + <location filename="../detailsdialog.ui" line="86"/> + <location filename="../detailsdialog.ui" line="127"/> + <location filename="../detailsdialog.ui" line="147"/> + <location filename="../detailsdialog.ui" line="167"/> + <location filename="../detailsdialog.ui" line="187"/> + <location filename="../detailsdialog.ui" line="207"/> + <location filename="../detailsdialog.ui" line="227"/> + <location filename="../detailsdialog.ui" line="262"/> + <location filename="../detailsdialog.ui" line="282"/> + <location filename="../detailsdialog.ui" line="302"/> + <location filename="../detailsdialog.ui" line="322"/> + <source>-</source> + <translation>-</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="275"/> + <source>Sample rate:</source> + <translation>取樣率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="37"/> + <source>File path:</source> + <translation>檔案路徑:</translation> + </message> + <message> + <location filename="../detailsdialog.cpp" line="33"/> + <source>KB</source> + <translation>KB</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="51"/> + <source>Size:</source> + <translation>大小:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="65"/> + <source>Demuxer:</source> + <translation>流分離:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="79"/> + <source>Length:</source> + <translation>長度:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="102"/> + <source>Video</source> + <translation>視頻</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="114"/> + <source>Resolution:</source> + <translation>分辨率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="140"/> + <location filename="../detailsdialog.ui" line="295"/> + <source>Bitrate:</source> + <translation>位速率:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="160"/> + <source>Format:</source> + <translation>格式:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="180"/> + <source>FPS:</source> + <translation>FPS:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="200"/> + <location filename="../detailsdialog.ui" line="249"/> + <source>Codec:</source> + <translation>編解碼器:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="220"/> + <source>Aspect ratio:</source> + <translation>寬高比:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="237"/> + <source>Audio</source> + <translation>聲訊</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="315"/> + <source>Channels:</source> + <translation>音頻通道:</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="13"/> + <source>Details</source> + <translation>詳細資料</translation> + </message> + <message> + <location filename="../detailsdialog.ui" line="31"/> + <source>General information</source> + <translation>常規資訊</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.cpp" line="31"/> + <location filename="../settingsdialog.cpp" line="39"/> + <location filename="../settingsdialog.cpp" line="48"/> + <location filename="../settingsdialog.cpp" line="49"/> + <location filename="../settingsdialog.cpp" line="63"/> + <location filename="../settingsdialog.cpp" line="64"/> + <source>default</source> + <translation>預設</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>MPlayer Settings</source> + <translation>Mplayer 設置</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Video:</source> + <translation>視頻:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="43"/> + <source>Audio:</source> + <translation>聲訊:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="57"/> + <source>Audio/video auto synchronization</source> + <translation>音頻/視頻自動同步</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Synchronization factor:</source> + <translation>同步系數:</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Engines/mplayer/translations/translations.qrc b/src/plugins/Engines/mplayer/translations/translations.qrc new file mode 100644 index 000000000..7a98c5a7f --- /dev/null +++ b/src/plugins/Engines/mplayer/translations/translations.qrc @@ -0,0 +1,15 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource> + <file>mplayer_plugin_it.qm</file> + <file>mplayer_plugin_ru.qm</file> + <file>mplayer_plugin_uk_UA.qm</file> + <file>mplayer_plugin_zh_CN.qm</file> + <file>mplayer_plugin_zh_TW.qm</file> + <file>mplayer_plugin_pl.qm</file> + <file>mplayer_plugin_cs.qm</file> + <file>mplayer_plugin_de.qm</file> + <file>mplayer_plugin_tr.qm</file> + <file>mplayer_plugin_lt.qm</file> + </qresource> +</RCC> |
