Projects
Multimedia
flacon
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 19
View file
flacon.changes
Changed
@@ -1,4 +1,19 @@ ------------------------------------------------------------------- +Sun Jan 31 22:06:33 UTC 2016 - lazy.kent@opensuse.org + +- Update to 2.0.1. + * Support CUE files with several FILE tags. + * Fix: Flacon crashed if audio file was corrupt. + * Improved stability of the program. + * The program displays the duration of the tracks. + * New visual design of tracks selection. + * Program checks duration of the disk, if disk is shorter than + CUE warning mark is displayed. + * Improves in the texts and messages. + * Translations updated. + * Small fixes for support -Werror=format-security fixses. + +------------------------------------------------------------------- Sat Sep 5 11:43:12 UTC 2015 - sor.alexei@meowr.ru - Update to 1.2.0:
View file
flacon.spec
Changed
@@ -1,7 +1,7 @@ # # spec file for package flacon # -# Copyright (c) 2015 Packman Team <packman@links2linux.de> +# Copyright (c) 2016 Packman Team <packman@links2linux.de> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: flacon -Version: 1.2.0 +Version: 2.0.1 Release: 0 Summary: Split compressed Audio CD images to tracks License: LGPL-2.1+ @@ -25,18 +25,8 @@ Url: http://flacon.github.io/ Source: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: cmake -# Not actually needed for build, but in order to make the build fail -# if the runtime dependencies are not available in the repository: -BuildRequires: faac -BuildRequires: flac BuildRequires: hicolor-icon-theme -BuildRequires: lame -BuildRequires: mac -BuildRequires: shntool -BuildRequires: ttaenc BuildRequires: update-desktop-files -BuildRequires: vorbis-tools -BuildRequires: wavpack BuildRequires: pkgconfig(uchardet) Requires: faac Requires: flac @@ -77,7 +67,7 @@ %build %cmake -make %{?_smp_mflags} +make %{?_smp_mflags} VERBOSE=1 %install %cmake_install
View file
flacon-1.2.0.tar.gz/CMakeLists.txt -> flacon-2.0.1.tar.gz/CMakeLists.txt
Changed
@@ -27,9 +27,9 @@ project(flacon) -set(MAJOR_VERSION 1) -set(MINOR_VERSION 2) -set(PATCH_VERSION 0) +set(MAJOR_VERSION 2) +set(MINOR_VERSION 0) +set(PATCH_VERSION 1) set(FLACON_VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}) add_definitions(-DFLACON_MAJOR_VERSION=\"${MAJOR_VERSION}\") @@ -40,11 +40,13 @@ set(HEADERS tagset.h + cue.h disk.h project.h settings.h inputaudiofile.h internet/dataprovider.h + scanner.h gui/mainwindow.h gui/controls.h @@ -54,7 +56,7 @@ gui/configdialog/configdialog.h gui/aboutdialog/aboutdialog.h gui/aboutdialog/translatorsinfo.h - + gui/cuediskselectdialog/cuediskselectdialog.h converter/converterthread.h converter/converter.h @@ -74,12 +76,14 @@ set(SOURCES tagset.cpp + cue.cpp main.cpp disk.cpp project.cpp settings.cpp inputaudiofile.cpp internet/dataprovider.cpp + scanner.cpp gui/mainwindow.cpp gui/controls.cpp @@ -89,6 +93,7 @@ gui/configdialog/configdialog.cpp gui/aboutdialog/aboutdialog.cpp gui/aboutdialog/translatorsinfo.cpp + gui/cuediskselectdialog/cuediskselectdialog.cpp converter/converterthread.cpp converter/converter.cpp @@ -111,8 +116,8 @@ project.h settings.h tagset.h - internet/dataprovider.h + scanner.h gui/mainwindow.h gui/controls.h @@ -121,6 +126,7 @@ gui/trackviewdelegate.h gui/configdialog/configdialog.h gui/aboutdialog/aboutdialog.h + gui/cuediskselectdialog/cuediskselectdialog.h converter/converterthread.h converter/converter.h @@ -141,6 +147,7 @@ gui/mainwindow.ui gui/configdialog/configdialog.ui gui/aboutdialog/aboutdialog.ui + gui/cuediskselectdialog/cuediskselectdialog.ui outformats/flac_config.ui outformats/aac_config.ui @@ -174,32 +181,11 @@ ) add_definitions(-DTRANSLATIONS_DIR=\"${TRANSLATIONS_DIR}\") - -set(DEF_PATH_ENV_SEPARATOR ":") -# OS/2 *************************************** -if(${CMAKE_SYSTEM_NAME} STREQUAL "OS2") - - set(DEF_BINARY_EXT ".exe") - set(DEF_PATH_ENV_SEPARATOR "\\\\x3B") - -endif() -# ******************************************** - - -macro(setByDefault VAR_NAME VAR_VALUE) - if (NOT DEFINED ${VAR_NAME}) - set (${VAR_NAME} ${VAR_VALUE}) - endif() - add_definitions(-D${VAR_NAME}=\"${VAR_VALUE}\") -endmacro() - -setByDefault(BINARY_EXT "${DEF_BINARY_EXT}") -setByDefault(PATH_ENV_SEPARATOR "${DEF_PATH_ENV_SEPARATOR}") - +include("tools.cmake") ############################################ if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions (-Wall -pedantic -Wno-long-long) + add_definitions (-Wall -pedantic -Wno-long-long -Werror=format-security) endif() include_directories( @@ -238,6 +224,8 @@ qt4_add_resources(QRC_SOURCES ${RESOURCES}) qt4_wrap_ui(UI_HEADERS ${FORMS}) qt4_add_translation(QM_FILES ${TS_FILES}) + + status_message("Using Qt4, for building with Qt5 use -DUSE_QT5=Yes option.") else() cmake_minimum_required(VERSION 2.8.3) find_package(Qt5Widgets REQUIRED QUIET) @@ -258,6 +246,8 @@ qt5_add_resources(QRC_SOURCES ${RESOURCES}) qt5_wrap_ui(UI_HEADERS ${FORMS}) qt5_add_translation(QM_FILES ${TS_FILES}) + + status_message("Using Qt5, for building with Qt4 use -DUSE_QT4=Yes option.") endif() include(FindPkgConfig) @@ -318,24 +308,10 @@ if(BUILD_TESTS STREQUAL "Yes") add_definitions(-DBUILD_TESTS) add_subdirectory(tests) -endif() - - -message(STATUS "*****************************************************") -if(USE_QT4) - message(STATUS "Use Qt4, for building with Qt5 use -DUSE_QT5=Yes option.") else() - message(STATUS "Use Qt5, for building with Qt4 use -DUSE_QT4=Yes option.") -endif() - -if(NOT BUILD_TESTS STREQUAL "Yes") - message(STATUS "") - message(STATUS "For building tests use -DBUILD_TESTS=Yes option.") + status_message("For building tests use -DBUILD_TESTS=Yes option.") endif() -message(STATUS "") -message(STATUS "*****************************************************") - # Man page ************************************** configure_file( @@ -373,3 +349,5 @@ INCLUDE(CPack) # simulate autotools' "make dist" add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) + +show_status()
View file
flacon-1.2.0.tar.gz/converter/converter.cpp -> flacon-2.0.1.tar.gz/converter/converter.cpp
Changed
@@ -98,6 +98,13 @@ return; } + if (mThreads.isEmpty()) + { + qWarning() << "No job for converter"; + emit finished(); + return; + } + startThread(); } @@ -188,14 +195,14 @@ if (! dir.mkpath(".")) { - emit error(tr("I can't create directory \"%1\".").arg(dir.path())); + Project::error(tr("I can't create directory \"%1\".").arg(dir.path())); res = false; continue; } if (!QFileInfo(dir.path()).isWritable()) { - emit error(tr("I can't write to directory \"%1\".").arg(dir.path())); + Project::error(tr("I can't write to directory \"%1\".").arg(dir.path())); res = false; continue; } @@ -400,8 +407,8 @@ s += QString("<li style='margin-top: 4px;'> %1</li>").arg(e); } - emit error(QString("<html>%1<ul>%2</ul></html>").arg( - tr("Conversion is not possible:"), s)); + Project::error(QString("<html>%1<ul>%2</ul></html>") + .arg(tr("Conversion is not possible:"), s)); } return ok;
View file
flacon-1.2.0.tar.gz/converter/converter.h -> flacon-2.0.1.tar.gz/converter/converter.h
Changed
@@ -47,7 +47,6 @@ signals: void finished(); - void error(const QString &message) const; public slots: void start();
View file
flacon-1.2.0.tar.gz/converter/converterthread.cpp -> flacon-2.0.1.tar.gz/converter/converterthread.cpp
Changed
@@ -110,9 +110,10 @@ /************************************************ ************************************************/ -void ConverterThread::debugArguments(const QStringList &args) +void ConverterThread::debugArguments(const QString &prog, const QStringList &args) { QTextStream out(stderr); + out << prog << " "; foreach (QString arg, args) { if (arg.contains(' ') || arg.contains('\t'))
View file
flacon-1.2.0.tar.gz/converter/converterthread.h -> flacon-2.0.1.tar.gz/converter/converterthread.h
Changed
@@ -60,7 +60,7 @@ void error(Track *track, const QString &message); bool deleteFile(const QString &fileName); - void debugArguments(const QStringList &args); + void debugArguments(const QString &prog, const QStringList &args); private: Disk *mDisk; };
View file
flacon-1.2.0.tar.gz/converter/encoder.cpp -> flacon-2.0.1.tar.gz/converter/encoder.cpp
Changed
@@ -117,16 +117,16 @@ } - QStringList args = mFormat->encoderArgs(track(), outFile()); - if (mDebug) - debugArguments(args); - + QStringList args = mFormat->encoderArgs(track(), QDir::toNativeSeparators(outFile())); QString prog = args.takeFirst(); + if (mDebug) + debugArguments(prog, args); + mProcess = new QProcess(); connect(mProcess, SIGNAL(bytesWritten(qint64)), this, SLOT(processBytesWritten(qint64))); - mProcess->start(prog, args); + mProcess->start(QDir::toNativeSeparators(prog), args); mProcess->waitForStarted(); readInputFile(); @@ -135,6 +135,7 @@ mProcess->waitForFinished(-1); if (mProcess->exitCode() != 0) { + debugArguments(prog, args); QString msg = tr("Encoder error:\n") + QString::fromLocal8Bit(mProcess->readAllStandardError()); error(track(), msg); @@ -155,7 +156,7 @@ QFile file(mInputFile); if (!file.open(QFile::ReadOnly)) // | QFile::Unbuffered)) { - error(track(), tr("I can't read %1 file").arg(mInputFile)); + error(track(), tr("I can't read %1 file", "Encoder error. %1 is a file name.").arg(mInputFile)); } mReady = 0;
View file
flacon-1.2.0.tar.gz/converter/gain.cpp -> flacon-2.0.1.tar.gz/converter/gain.cpp
Changed
@@ -28,6 +28,7 @@ #include "outformat.h" #include <QProcess> +#include <QDir> /************************************************ @@ -96,23 +97,23 @@ QHashIterator<Track*, QString> i(mInputFiles); while (i.hasNext()) { i.next(); - files << i.value(); + files << QDir::toNativeSeparators(i.value()); } QStringList args = mFormat->gainArgs(files); - if (mDebug) - debugArguments(args); - QString prog = args.takeFirst(); + if (mDebug) + debugArguments(prog, args); + mProcess = new QProcess(); mProcess->start(prog, args); - mProcess->waitForStarted(); - mProcess->waitForFinished(-1); + if (mProcess->exitCode() != 0) { + debugArguments(prog, args); QString msg = tr("Gain error:\n") + QString::fromLocal8Bit(mProcess->readAllStandardError()); error(mTracks.first(), msg);
View file
flacon-1.2.0.tar.gz/converter/splitter.cpp -> flacon-2.0.1.tar.gz/converter/splitter.cpp
Changed
@@ -39,10 +39,18 @@ #include <QTextCodec> #include <QDebug> +//#define DEBUG_CUE_ON + +#ifdef DEBUG_CUE_ON +#define DEBUG_CUE qDebug() +#else +#define DEBUG_CUE QT_NO_QDEBUG_MACRO() +#endif + class CueCreator { public: - CueCreator(Disk *disk); + explicit CueCreator(Disk *disk); bool write(); QString errorString() const { return mErrorString; } @@ -133,14 +141,14 @@ args << "-n" << "%04d"; args << "-t" << mFilePrefix +"%n"; args << "-d" << mWorkDir; - args << disk()->audioFileName(); + args << QDir::toNativeSeparators(disk()->audioFileName()); //qDebug() << args; QString shntool = settings->value(Settings::Prog_Shntool).toString(); mProcess = new QProcess(); mProcess->setReadChannel(QProcess::StandardError); - mProcess->start(shntool, args); + mProcess->start(QDir::toNativeSeparators(shntool), args); mProcess->waitForStarted(); sendCueData(); @@ -202,6 +210,7 @@ // Splitting [/home/user/inDir/input.wav] (10:00.000) --> [/home/user/outDir/tmp-15196-00000.wav] (0:00.440) : 100% OK QString pattern = "[" + mWorkDir + QDir::separator() + mFilePrefix; + pattern.replace('\\', '/'); QString sbuf = QString::fromLocal8Bit(buf); int n = sbuf.indexOf(pattern, disk()->audioFileName().length() + 20); @@ -242,7 +251,11 @@ emit trackReady(track, fileName); } } - + // ....................................... + else if (c == '\\') + { + buf += '/'; + } // ....................................... else { @@ -266,58 +279,39 @@ bool fakeIndex = (format->createCue() and format->preGapType() == OutFormat::PreGapAddToFirstTrack); - QFile cue(disk()->cueFile()); - cue.open(QFile::ReadOnly); + QString s = QString("FILE \"%1\" WAVE").arg(disk()->audioFileName()); + mProcess->write(s.toLocal8Bit() + "\n"); - int trackNum = 0; - QByteArray line; - while (!cue.atEnd()) + for (int t=0; t<disk()->count(); ++t) { - line = cue.readLine(); - QString str = QString(line).trimmed(); - QString key = str.section(' ', 0, 0).toUpper(); + Track *track = disk()->track(t); + + QString s = QString("TRACK %1 AUDIO").arg(t + 1); + DEBUG_CUE << s; + mProcess->write(s.toLocal8Bit() + "\n"); - if (key == "TRACK") + if (fakeIndex && t == 0) { - trackNum++; - mProcess->write(line); - continue; + QString s = cdQuality ? " INDEX 01 00:00:00" : " INDEX 01 00:00.000"; + DEBUG_CUE << s; + mProcess->write(s.toLocal8Bit() + "\n"); } - - if (key == "INDEX") + else { - int indexNum = str.section(' ', 1, 1).toInt(); - if (fakeIndex && trackNum == 1) + for (int i=0; i<100; ++i) { - if (indexNum == 1) + if (!track->cueIndex(i).isNull()) { - if (cdQuality) - mProcess->write(" INDEX 01 00:00:00\n"); - else - mProcess->write(" INDEX 01 00:00.000\n"); + QString s = QString(" INDEX %1 %2") + .arg(i, 2, 10, QChar('0')) + .arg(track->cueIndex(i).toString(cdQuality)); + DEBUG_CUE << s; + mProcess->write(s.toLocal8Bit() + "\n"); } } - else - { - CueIndex index(str.section(' ', 2)); - mProcess->write(QString(" INDEX %1 %2\n") - .arg(indexNum, 2, 10, QChar('0')) - .arg(index.toString(cdQuality)) - .toLocal8Bit()); - } - continue; } - - if (key == "FILE") - { - mProcess->write(line); - continue; - } - } - - cue.close(); } @@ -438,7 +432,7 @@ { if (!mFile.open(QIODevice::WriteOnly | QIODevice::Text)) { - mErrorString = QObject::tr("I can't write CUE file <b>%1</b>:<br>%2").arg(mFile.fileName(), mFile.errorString()); + mErrorString = QObject::tr("I can't write cue file <b>%1</b>:<br>%2").arg(mFile.fileName(), mFile.errorString()); return false; }
View file
flacon-2.0.1.tar.gz/cue.cpp
Added
@@ -0,0 +1,569 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#include "cue.h" +#include <QFile> +#include <QFileInfo> +#include <QObject> +#include <QDebug> + + +enum CueTagId +{ + CTAG_UNKNOWN, + CTAG_FILE, + CTAG_TRACK, + CTAG_INDEX, + CTAG_DISCID, + CTAG_CATALOG, + CTAG_CDTEXTFILE, + CTAG_TITLE, + CTAG_COMMENT, + CTAG_DATE, + CTAG_FLAGS, + CTAG_GENRE, + CTAG_ISRC, + CTAG_PERFORMER, + CTAG_SONGWRITER +}; + + +/************************************************ + + ************************************************/ +QString cueIndexTagKey(int indexNum) +{ + return QString("CUE_INDEX:%1").arg(indexNum); +} + + +/************************************************ + + ************************************************/ +CueIndex::CueIndex(const QString &str): + mNull(true), + mCdValue(0), + mHiValue(0) +{ + if (!str.isEmpty()) + mNull = !parse(str); +} + + +/************************************************ + + ************************************************/ +QString CueIndex::toString(bool cdQuality) const +{ + if (cdQuality) + { + int min = mCdValue / (60 * 75); + int sec = (mCdValue - min * 60 * 75) / 75; + int frm = mCdValue - (min * 60 + sec) * 75; + + return QString("%1:%2:%3") + .arg(min, 2, 10, QChar('0')) + .arg(sec, 2, 10, QChar('0')) + .arg(frm, 2, 10, QChar('0')); + } + else + { + int min = mHiValue / (60 * 1000); + int sec = (mHiValue - min * 60 * 1000) / 1000; + int msec = mHiValue - (min * 60 + sec) * 1000; + + return QString("%1:%2.%3") + .arg(min, 2, 10, QChar('0')) + .arg(sec, 2, 10, QChar('0')) + .arg(msec, 3, 10, QChar('0')); + } + +} + + +/************************************************ + + ************************************************/ +CueIndex CueIndex::operator -(const CueIndex &other) const +{ + CueIndex res; + res.mCdValue = this->mCdValue - other.mCdValue; + res.mHiValue = this->mHiValue - other.mHiValue; + res.mNull = false; + return res; +} + + +/************************************************ + + ************************************************/ +bool CueIndex::operator ==(const CueIndex &other) const +{ + return this->mHiValue == other.mHiValue; +} + + +/************************************************ + + ************************************************/ +bool CueIndex::operator !=(const CueIndex &other) const +{ + return this->mHiValue != other.mHiValue; +} + + +/************************************************ + + ************************************************/ +bool CueIndex::parse(const QString &str) +{ + QStringList sl = str.split(QRegExp("\\D"), QString::KeepEmptyParts); + + if (sl.length()<3) + return false; + + bool ok; + int min = sl[0].toInt(&ok); + if (!ok) + return false; + + int sec = sl[1].toInt(&ok); + if (!ok) + return false; + + int frm = sl[2].leftJustified(2, '0').toInt(&ok); + if (!ok) + return false; + + int msec = sl[2].leftJustified(3, '0').toInt(&ok); + if (!ok) + return false; + + mCdValue = (min * 60 + sec) * 75 + frm; + mHiValue = (min * 60 + sec) * 1000 + msec; + return true; +} + + +/************************************************ + * + ************************************************/ +QByteArray unQuote(const QByteArray &line) +{ + if (line.length() > 2 && + (line.at(0) == '"' || line.at(0) == '\'') && + line.at(0) == line.at(line.length()-1)) + { + return line.mid(1, line.length() - 2); + } + return line; +} + + +/************************************************ + + ************************************************/ +CueReader::CueReader(const QString &fileName): + mFileName(fileName), + mValid(false) +{ + QFileInfo fi(mFileName); + if (!fi.exists()) + { + mErrorString = QObject::tr("File <b>\"%1\"</b> does not exist").arg(mFileName); + return; + } +
View file
flacon-2.0.1.tar.gz/cue.h
Added
@@ -0,0 +1,105 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#ifndef CUE_H +#define CUE_H + +#include <QString> +#include <QList> +#include "tagset.h" + +class QFile; + +class CueIndex +{ +public: + explicit CueIndex(const QString &str = ""); + + bool isNull() const { return mNull; } + QString toString(bool cdQuality = true) const; + + CueIndex operator-(const CueIndex &other) const; + bool operator==(const CueIndex &other) const; + bool operator!=(const CueIndex &other) const; + + uint milliseconds() const { return mHiValue; } + +private: + bool mNull; + int mCdValue; + int mHiValue; + + bool parse(const QString &str); +}; + + +class CueTagSet: public TagSet +{ +public: + explicit CueTagSet(const QString &uri); + CueTagSet(const CueTagSet &other); + + QString cueFileName() const; + QString fileTag() const; + CueIndex index(int track, int indexNum) const; + bool isMultiFileCue() const; + int diskNumInCue() const; +}; + + +class CueReader +{ +public: + explicit CueReader(const QString &fileName); + + QString fileName() const { return mFileName; } + CueTagSet disk(int index) const { return mDisks.at(index); } + int diskCount() const { return mDisks.count(); } + bool isMultiFileCue() const { return mDisks.count() > 1; } + bool isValid() const { return mValid; } + QString errorString() const { return mErrorString; } +private: + QString mFileName; + QList<CueTagSet> mDisks; + + QString mCodecName; + QByteArray mPerformer; + QByteArray mAlbum; + QByteArray mGenre; + QByteArray mDate; + QByteArray mComment; + QByteArray mSongwriter; + QByteArray mDiskId; + QByteArray mCatalog; + QByteArray mCdTextFile; + + bool parse(QFile &file); + bool parseOneDiskTags(QFile &file, CueTagSet *tags); + bool mValid; + QString mErrorString; +}; + +#endif // CUE_H
View file
flacon-1.2.0.tar.gz/disk.cpp -> flacon-2.0.1.tar.gz/disk.cpp
Changed
@@ -41,115 +41,6 @@ /************************************************ ************************************************/ -CueIndex::CueIndex(const QString &str): - mNull(true), - mCdValue(0), - mHiValue(0) -{ - if (!str.isEmpty()) - mNull = !parse(str); -} - - -/************************************************ - - ************************************************/ -QString CueIndex::toString(bool cdQuality) const -{ - if (cdQuality) - { - int min = mCdValue / (60 * 75); - int sec = (mCdValue - min * 60 * 75) / 75; - int frm = mCdValue - (min * 60 + sec) * 75; - - return QString("%1:%2:%3") - .arg(min, 2, 10, QChar('0')) - .arg(sec, 2, 10, QChar('0')) - .arg(frm, 2, 10, QChar('0')); - } - else - { - int min = mHiValue / (60 * 1000); - int sec = (mHiValue - min * 60 * 1000) / 1000; - int msec = mHiValue - (min * 60 + sec) * 1000; - - return QString("%1:%2.%3") - .arg(min, 2, 10, QChar('0')) - .arg(sec, 2, 10, QChar('0')) - .arg(msec, 3, 10, QChar('0')); - } - -} - - -/************************************************ - - ************************************************/ -CueIndex CueIndex::operator -(const CueIndex &other) const -{ - CueIndex res; - res.mCdValue = this->mCdValue - other.mCdValue; - res.mHiValue = this->mHiValue - other.mHiValue; - res.mNull = false; - return res; -} - - -/************************************************ - - ************************************************/ -bool CueIndex::operator ==(const CueIndex &other) const -{ - return this->mHiValue == other.mHiValue; -} - - -/************************************************ - - ************************************************/ -bool CueIndex::operator !=(const CueIndex &other) const -{ - return this->mHiValue != other.mHiValue; -} - - -/************************************************ - - ************************************************/ -bool CueIndex::parse(const QString &str) -{ - QStringList sl = str.split(QRegExp("\\D"), QString::KeepEmptyParts); - - if (sl.length()<3) - return false; - - bool ok; - int min = sl[0].toInt(&ok); - if (!ok) - return false; - - int sec = sl[1].toInt(&ok); - if (!ok) - return false; - - int frm = sl[2].leftJustified(2, '0').toInt(&ok); - if (!ok) - return false; - - int msec = sl[2].leftJustified(3, '0').toInt(&ok); - if (!ok) - return false; - - mCdValue = (min * 60 + sec) * 75 + frm; - mHiValue = (min * 60 + sec) * 1000 + msec; - return true; -} - - - -/************************************************ - - ************************************************/ Track::Track(Disk *disk, int index): QObject(disk), mDisk(disk), @@ -171,6 +62,29 @@ /************************************************ + * + ************************************************/ +uint Track::duration() const +{ + uint start = cueIndex(1).milliseconds(); + uint end = 0; + if (index() < mDisk->count() - 1) + { + end = mDisk->track(index()+1)->cueIndex(1).milliseconds(); + } + else if (mDisk->audioFile()) + { + end = mDisk->audioFile()->duration(); + } + + if (start > end) + return 0; + + return end - start; +} + + +/************************************************ ************************************************/ QString Track::tag(const QString &tagName) const @@ -371,7 +285,11 @@ if (fileName.isEmpty()) return ""; - return calcResultFilePath() + QDir::separator() + fileName; + QString dir = calcResultFilePath(); + if (dir.endsWith("/") || fileName.startsWith("/")) + return calcResultFilePath() + fileName; + else + return calcResultFilePath() + "/" + fileName; } @@ -382,8 +300,8 @@ { QString settingsDir = settings->value(Settings::OutFiles_Directory).toString(); - if (settingsDir.isEmpty()) - settingsDir = "."; + if (settingsDir == ".") + settingsDir = ""; if (settingsDir.startsWith("~/")) return settingsDir.replace(0, 1, QDir::homePath()); @@ -392,10 +310,10 @@ if (fi.isAbsolute()) return fi.absoluteFilePath(); + if (!disk()->audioFileName().isEmpty()) - { return QFileInfo(disk()->audioFileName()).dir().absolutePath() + QDir::separator() + settingsDir; - } + return QFileInfo(QDir::homePath() + QDir::separator() + settingsDir).absoluteFilePath(); } @@ -434,7 +352,6 @@ Disk::Disk(QObject *parent) : QObject(parent), mTags(0), - mCueTags(0), mStartTrackNum(1), mCount(0), mValid(false), @@ -463,7 +380,6 @@ } - /************************************************ ************************************************/ @@ -471,6 +387,7 @@
View file
flacon-1.2.0.tar.gz/disk.h -> flacon-2.0.1.tar.gz/disk.h
Changed
@@ -28,6 +28,7 @@ #define DISK_H #include "tagset.h" +#include "cue.h" #include <QObject> #include <QList> @@ -36,33 +37,13 @@ #include <QHash> #include <QChar> +class CueReader; class QFile; class Disk; class Track; class InputAudioFile; class DataProvider; -class CueIndex -{ -public: - CueIndex(const QString &str = ""); - - bool isNull() const { return mNull; } - QString toString(bool cdQuality = true) const; - - CueIndex operator-(const CueIndex &other) const; - bool operator==(const CueIndex &other) const; - bool operator!=(const CueIndex &other) const; - -private: - bool mNull; - int mCdValue; - int mHiValue; - - bool parse(const QString &str); -}; - - class Disk: public QObject { @@ -76,14 +57,13 @@ int count() const { return mCount; } Track *preGapTrack() const { return mPreGapTrack; } - void loadFromCue(const QString &cueFile, bool activate = true); + void loadFromCue(const CueTagSet &cueTags, bool activate = true); QString cueFile() const { return mCueFile; } - void findCueFile(); InputAudioFile *audioFile() const { return mAudioFile; } QString audioFileName() const; - void setAudioFile(const QString &fileName); - void findAudioFile(); + void setAudioFile(const InputAudioFile &audio); + int startTrackNum() const { return mStartTrackNum; } void setStartTrackNum(int value); @@ -133,7 +113,7 @@ private: QList<TagSet*> mTagSets; TagSet *mTags; - TagSet *mCueTags; + QList<Track*> mTracks; int mStartTrackNum; int mCount; @@ -144,9 +124,11 @@ Track *mPreGapTrack; QList<DataProvider*> mDownloads; - bool parseCue(QFile &file, TagSet *tags); + void findAudioFile(const CueTagSet &cueTags); + void findCueFile(); }; +typedef QList<Disk*> DiskList; class Track: public QObject { @@ -197,6 +179,7 @@ int index() const { return mIndex; } int trackNum() const; + uint duration() const; CueIndex cueIndex(int indexNum) const; void setCueIndex(int indexNum, const CueIndex &value);
View file
flacon-1.2.0.tar.gz/gui/aboutdialog/aboutdialog.cpp -> flacon-2.0.1.tar.gz/gui/aboutdialog/aboutdialog.cpp
Changed
@@ -165,7 +165,7 @@ "mailto:lazy.kent@opensuse.org", tr("Packaging, testing")); - result.add("Alain-Olivier Breysse", + result.add("", "mailto:yahoe.001@gmail.com", tr("Improvements in the UI")); @@ -184,7 +184,8 @@ { TranslatorsInfo translatorsInfo; return QString("%1<p><ul>%2</ul>").arg( - tr("Flacon is translated into many languages thanks to the work of the translation teams all over the world."), + tr("Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.") + .arg("https://www.transifex.com/sokoloff/flacon/"), translatorsInfo.asHtml() ); }
View file
flacon-1.2.0.tar.gz/gui/configdialog/configdialog.ui -> flacon-2.0.1.tar.gz/gui/configdialog/configdialog.ui
Changed
@@ -190,13 +190,13 @@ <item> <widget class="QGroupBox" name="perTrackCueGroup"> <property name="title"> - <string>Per track CUE</string> + <string>Per track cue sheet</string> </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <widget class="QCheckBox" name="perTrackCueCheck"> <property name="text"> - <string>Create per track CUE</string> + <string>Create per track cue sheet</string> </property> </widget> </item> @@ -263,8 +263,8 @@ <rect> <x>0</x> <y>0</y> - <width>75</width> - <height>16</height> + <width>100</width> + <height>30</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_12">
View file
flacon-1.2.0.tar.gz/gui/controls.cpp -> flacon-2.0.1.tar.gz/gui/controls.cpp
Changed
@@ -384,10 +384,12 @@ ************************************************/ void ProgramEdit::openDialog() { - QString flt = tr("%1 program").arg(mProgramName) + + QString flt = tr("%1 program", + "This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'" + ).arg(mProgramName) + QString(" (%1);;").arg(mProgramName) + - tr("All files") + - " (*.*)"; + tr("All files", "This is part of filter for 'select program' dialog. 'All files (*)'") + + " (*)"; QString fileName = QFileDialog::getOpenFileName(this, tr("Select program file"), "/usr/bin/", flt); if (!fileName.isEmpty())
View file
flacon-1.2.0.tar.gz/gui/controls.h -> flacon-2.0.1.tar.gz/gui/controls.h
Changed
@@ -133,7 +133,7 @@ { Q_OBJECT public: - MultiValuesComboBox(QWidget *parent = 0); + explicit MultiValuesComboBox(QWidget *parent = 0); bool multi() const { return mMultiState == MultiValuesMulti; } public slots: @@ -152,7 +152,7 @@ { Q_OBJECT public: - CodePageComboBox(QWidget *parent = 0); + explicit CodePageComboBox(QWidget *parent = 0); private: void addCodecName(const QString &title, const QString &codecName);
View file
flacon-2.0.1.tar.gz/gui/cuediskselectdialog
Added
+(directory)
View file
flacon-2.0.1.tar.gz/gui/cuediskselectdialog/cuediskselectdialog.cpp
Added
@@ -0,0 +1,116 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#include "cuediskselectdialog.h" +#include "ui_cuediskselectdialog.h" + +#include "../cue.h" + + +/************************************************ + * + ************************************************/ +CueDiskSelectDialog::CueDiskSelectDialog(const CueReader &cue, int selectedDisk, QWidget *parent) : + QDialog(parent), + ui(new Ui::CueDiskSelectDialog), + mCue(cue) +{ + if (selectedDisk < 0 || selectedDisk >= cue.diskCount()) + selectedDisk = 0; + + ui->setupUi(this); + + for (int d=0; d<cue.diskCount(); d++) + { + CueTagSet tags = cue.disk(d); + QTreeWidgetItem *diskItem = new QTreeWidgetItem(ui->diskTree); + diskItem->setText(0, tr("%1 [ disk %2 ]", "Cue disk select dialog, string like 'The Wall [disk 1]'").arg(tags.diskTag("ALBUM")).arg(d+1)); + diskItem->setData(0,Qt::UserRole, d); + if (d == selectedDisk) + { + diskItem->setSelected(true); + ui->diskTree->setCurrentItem(diskItem, 0); + } + + QFont font = diskItem->font(0); + font.setBold(true); + diskItem->setFont(0, font); + + for (int t=0; t<tags.tracksCount(); ++t) + { + QTreeWidgetItem *trackItem = new QTreeWidgetItem(diskItem); + trackItem->setText(0, tags.trackTag(t, "TITLE")); + trackItem->setFlags(Qt::NoItemFlags ); + } + } + ui->diskTree->expandAll(); + + + connect(ui->diskTree, SIGNAL(doubleClicked(QModelIndex)), + this, SLOT(treeDoubleClicked(QModelIndex))); +} + + +/************************************************ + * + ************************************************/ +CueDiskSelectDialog::~CueDiskSelectDialog() +{ + delete ui; +} + + +/************************************************ + * + ************************************************/ +int CueDiskSelectDialog::diskNumber() +{ + return ui->diskTree->currentIndex().row(); +} + + +/************************************************ + * + ************************************************/ +void CueDiskSelectDialog::treeDoubleClicked(const QModelIndex &index) +{ + if (!index.parent().isValid()) + accept(); +} + + +/************************************************ + * + ************************************************/ +int CueDiskSelectDialog::getDiskNumber(const CueReader &cue, int selectedDisk) +{ + CueDiskSelectDialog dialog(cue, selectedDisk); + + if (dialog.exec() == QDialog::Accepted) + return dialog.diskNumber(); + else + return -1; +}
View file
flacon-2.0.1.tar.gz/gui/cuediskselectdialog/cuediskselectdialog.h
Added
@@ -0,0 +1,57 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#ifndef CUEDISKSELECTDIALOG_H +#define CUEDISKSELECTDIALOG_H + +#include <QDialog> +class CueReader; +class QModelIndex; + +namespace Ui { +class CueDiskSelectDialog; +} + +class CueDiskSelectDialog : public QDialog +{ + Q_OBJECT + +public: + explicit CueDiskSelectDialog(const CueReader &cue, int selectedDisk = 0, QWidget *parent = 0); + ~CueDiskSelectDialog(); + + static int getDiskNumber(const CueReader &cue, int selectedDisk = 0); + + int diskNumber(); +private slots: + void treeDoubleClicked(const QModelIndex &index); + +private: + Ui::CueDiskSelectDialog *ui; + const CueReader &mCue; +}; + +#endif // CUEDISKSELECTDIALOG_H
View file
flacon-2.0.1.tar.gz/gui/cuediskselectdialog/cuediskselectdialog.ui
Added
@@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>CueDiskSelectDialog</class> + <widget class="QDialog" name="CueDiskSelectDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Select disk</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="text"> + <property name="text"> + <string>The cue file contains information about multiple disks. Which disk you want to use?</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QTreeWidget" name="diskTree"> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> + <bool>true</bool> + </property> + <property name="itemsExpandable"> + <bool>false</bool> + </property> + <property name="expandsOnDoubleClick"> + <bool>false</bool> + </property> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>CueDiskSelectDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>CueDiskSelectDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui>
View file
flacon-1.2.0.tar.gz/gui/mainwindow.cpp -> flacon-2.0.1.tar.gz/gui/mainwindow.cpp
Changed
@@ -33,6 +33,8 @@ #include "inputaudiofile.h" #include "configdialog/configdialog.h" #include "aboutdialog/aboutdialog.h" +#include "cuediskselectdialog/cuediskselectdialog.h" +#include "scanner.h" #include <QFileDialog> #include <QDir> @@ -43,79 +45,6 @@ #include <QKeyEvent> #include <QMimeData> -class DirScanner -{ -public: - explicit DirScanner(); - void start(const QString &startDir); - void stop() { mAbort = true; } - -private: - bool mActive; - bool mAbort; -}; - -/************************************************ - - ************************************************/ -DirScanner::DirScanner(): - mActive(false), - mAbort(false) -{ -} - - -/************************************************ - - ************************************************/ -void DirScanner::start(const QString &startDir) -{ - mActive = true; - mAbort = false; - - QStringList exts; - foreach(InputAudioFormat format, InputAudioFormat::allFormats()) - exts << QString("*.%1").arg(format.ext()); - - - QQueue<QString> query; - query << startDir; - - QSet<QString> processed; - while (!query.isEmpty()) - { - QDir dir(query.dequeue()); - - QFileInfoList dirs = dir.entryInfoList(QDir::Dirs | QDir::Readable | QDir::NoDotAndDotDot); - foreach(QFileInfo d, dirs) - { - qApp->processEvents(); - if (mAbort) - return; - - if (d.isSymLink()) - d = QFileInfo(d.symLinkTarget()); - - if (!processed.contains(d.absoluteFilePath())) - { - processed << d.absoluteFilePath(); - query << d.absoluteFilePath(); - } - } - - QFileInfoList files = dir.entryInfoList(exts, QDir::Files | QDir::Readable); - foreach(QFileInfo f, files) - { - qApp->processEvents(); - if (mAbort) - return; - - project->addAudioFile(f.absoluteFilePath()); - - } - } -} - /************************************************ @@ -175,22 +104,22 @@ QString pattern; pattern = "%a/{%y - }%A/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); pattern = "%a -{ %y }%A/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); pattern = "{%y }%A - %a/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); pattern = "%a/%A/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); pattern = "%a - %A/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); pattern = "%A - %a/%n - %t"; - outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern").arg(pattern)); + outPatternButton->addFullPattern(pattern, tr("Use \"%1\"", "Predefined out file pattern, string like 'Use \"%a/%A/%n - %t\"'").arg(pattern)); outPatternButton->setFixedWidth(outDirButton->sizeHint().width()); @@ -215,7 +144,6 @@ connect(codepageCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setCodePage())); connect(mConverter, SIGNAL(finished()), this, SLOT(setControlsEnable())); - connect(mConverter, SIGNAL(error(QString)), this, SLOT(showErrorMessage(QString))); connect(trackView, SIGNAL(selectCueFile(Disk*)), this, SLOT(setCueForDisc(Disk*))); connect(trackView, SIGNAL(selectAudioFile(Disk*)), this, SLOT(setAudioForDisk(Disk*))); @@ -241,6 +169,16 @@ /************************************************ + * + ************************************************/ +void MainWindow::showEvent(QShowEvent *event) +{ + if (project->count()) + trackView->selectDisk(project->disk(0)); +} + + +/************************************************ ************************************************/ MainWindow::~MainWindow() @@ -357,26 +295,45 @@ QString flt = getOpenFileFilter(false, true); QString dir; - if (!disk->audioFileName().isEmpty()) - { dir = QFileInfo(disk->audioFileName()).dir().absolutePath(); - } else if (! disk->cueFile().isEmpty()) - { - dir = QFileInfo(disk->cueFile()).dir().absolutePath(); - } + dir = QFileInfo(disk->cueFile()).dir().absolutePath(); else - { dir = settings->value(Settings::Misc_LastDir).toString(); - } - QString fileName = QFileDialog::getOpenFileName(this, tr("Select CUE file", "OpenFile dialog title"), dir, flt); + QString fileName = QFileDialog::getOpenFileName(this, tr("Select cue file", "OpenFile dialog title"), dir, flt); + + if (fileName.isEmpty()) + return; + + CueReader cue(fileName); + if (cue.isValid()) + { + int diskNum = 0; + if (cue.isMultiFileCue()) + { + int proposal = 0; + for (int i=0; i<cue.diskCount(); ++i) + { + if (!project->diskExists(cue.disk(i).uri())) + { + proposal = i; + break; + } + } + + diskNum = CueDiskSelectDialog::getDiskNumber(cue, proposal); + if (diskNum < 0) + return; + } - if (!fileName.isEmpty()) + disk->loadFromCue(cue.disk(diskNum), true); + } + else { - disk->loadFromCue(fileName, true); + Project::error(cue.errorString()); } }
View file
flacon-1.2.0.tar.gz/gui/mainwindow.h -> flacon-2.0.1.tar.gz/gui/mainwindow.h
Changed
@@ -36,7 +36,7 @@ class Project; class Converter; -class DirScanner; +class Scanner; class MainWindow : public QMainWindow, private Ui::MainWindow { @@ -93,11 +93,12 @@ void openAboutDialog(); protected: + void showEvent(QShowEvent * event); void keyPressEvent(QKeyEvent *event); private: Converter *mConverter; - DirScanner *mScanner; + Scanner *mScanner; QString getOpenFileFilter(bool includeAudio, bool includeCue); void initActions();
View file
flacon-1.2.0.tar.gz/gui/mainwindow.ui -> flacon-2.0.1.tar.gz/gui/mainwindow.ui
Changed
@@ -291,6 +291,9 @@ <verstretch>0</verstretch> </sizepolicy> </property> + <property name="tabKeyNavigation"> + <bool>true</bool> + </property> <property name="alternatingRowColors"> <bool>true</bool> </property> @@ -456,7 +459,7 @@ <string>...</string> </property> <property name="toolTip"> - <string comment="Main form tooltip for "Directory" edit">You can browse to the destination directory. You can also input it manually. + <string comment="Main form tooltip for "Directory" edit">You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</string> </property>
View file
flacon-1.2.0.tar.gz/gui/trackview.cpp -> flacon-2.0.1.tar.gz/gui/trackview.cpp
Changed
@@ -54,10 +54,8 @@ mModel = new TrackViewModel(this); setModel(mModel); - //self._selectionModel = TrackViewSelectionModel(mModel) setSelectionModel(new TrackViewSelectionModel(mModel, this)); - //#self.setMouseTracking(True) setUniformRowHeights(false); // Context menu .................................... @@ -129,6 +127,26 @@ /************************************************ + * + ************************************************/ +void TrackView::selectDisk(const Disk *disk) +{ + for (int i=0; i<this->model()->rowCount(); ++i) + { + QModelIndex index = this->model()->index(i, 0); + QObject *obj = static_cast<QObject*>(index.internalPointer()); + + Disk *d = qobject_cast<Disk*>(obj); + if (d && d == disk) + { + this->selectionModel()->select(index, QItemSelectionModel::Clear | QItemSelectionModel::Select); + break; + } + } +} + + +/************************************************ ************************************************/ void TrackView::headerContextMenu(QPoint pos) @@ -187,7 +205,7 @@ QAction *act; - act = new DiskAction(Project::getIcon("document-open", "fileopen", ":/icons/16/select-cue-file"), tr("Select another CUE file"), &menu, disk); + act = new DiskAction(Project::getIcon("document-open", "fileopen", ":/icons/16/select-cue-file"), tr("Select another cue file"), &menu, disk); connect(act, SIGNAL(triggered()), this, SLOT(emitSelectCueFile())); menu.addAction(act); @@ -249,8 +267,12 @@ ************************************************/ void TrackViewSelectionModel::select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) { + if (selection.count() == 0) + return; + QItemSelection newSelection = selection; + QModelIndexList idxs = selection.indexes(); foreach (const QModelIndex &index, idxs) { @@ -321,7 +343,7 @@ connect(act, SIGNAL(triggered()), this, SLOT(emitSelectAudioFile())); menu.addAction(act); - act = new DiskAction(Project::getIcon("document-open", "fileopen", ":/icons/16/select-cue-file"), tr("Select another CUE file"), &menu, disk); + act = new DiskAction(Project::getIcon("document-open", "fileopen", ":/icons/16/select-cue-file"), tr("Select another cue file"), &menu, disk); connect(act, SIGNAL(triggered()), this, SLOT(emitSelectCueFile())); menu.addAction(act); @@ -334,6 +356,64 @@ } + +/************************************************ + + ************************************************/ +void TrackView::drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const +{ + mDelegate->drawBranch(painter, rect, index); +} + + + +/************************************************ + + ************************************************/ +void TrackView::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) + { + case Qt::Key_Left: + { + QModelIndex parent = selectionModel()->currentIndex().parent(); + int row = selectionModel()->currentIndex().row(); + for (int i=selectionModel()->currentIndex().column() - 1; i>=0; --i) + { + QModelIndex idx = model()->index(row, i, parent); + if (idx.isValid() && !isColumnHidden(i)) + { + selectionModel()->setCurrentIndex(idx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + return; + } + } + break; + } + + case Qt::Key_Right: + { + + QModelIndex parent = selectionModel()->currentIndex().parent(); + int cnt = model()->columnCount(parent); + int row = selectionModel()->currentIndex().row(); + for (int i=selectionModel()->currentIndex().column() + 1; i<cnt ; ++i) + { + QModelIndex idx = model()->index(row, i, parent); + if (idx.isValid() && !isColumnHidden(i)) + { + selectionModel()->setCurrentIndex(idx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + return; + } + } + break; + } + + default: + QTreeView::keyPressEvent(event); + } +} + + /************************************************ Open treeview inline editor ************************************************/
View file
flacon-1.2.0.tar.gz/gui/trackview.h -> flacon-2.0.1.tar.gz/gui/trackview.h
Changed
@@ -44,21 +44,23 @@ { ColumnPercent = 0, ColumnTracknum = 0, - ColumnTitle = 1, - ColumnArtist = 2, - ColumnAlbum = 3, - ColumnComment = 4, - ColumnFileName = 5, - ColumnCount = 6 + ColumnDuration = 1, + ColumnTitle = 2, + ColumnArtist = 3, + ColumnAlbum = 4, + ColumnComment = 5, + ColumnFileName = 6, + ColumnCount = 7 }; - TrackView(QWidget *parent = 0); + explicit TrackView(QWidget *parent = 0); QList<Track*> selectedTracks() const; QList<Disk*> selectedDisks() const; public slots: void layoutChanged(); + void selectDisk(const Disk *disk); signals: void selectCueFile(Disk *disk); @@ -66,6 +68,8 @@ protected: void contextMenuEvent(QContextMenuEvent *event); + void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const; + void keyPressEvent(QKeyEvent *event); private slots: void headerContextMenu(QPoint pos);
View file
flacon-1.2.0.tar.gz/gui/trackviewdelegate.cpp -> flacon-2.0.1.tar.gz/gui/trackviewdelegate.cpp
Changed
@@ -41,6 +41,7 @@ #include <QDebug> +#define SELECTION_MARK 8 #define MARGIN 6 #define TOP_PADDING 16 #define BOTTOM_PADDING 2 @@ -153,13 +154,44 @@ /************************************************ ************************************************/ +void TrackViewDelegate::drawSelectionMark(QPainter *painter, const QRect &rect) const +{ + QRect r=rect; + r.setWidth(SELECTION_MARK); + painter->fillRect(r, mTrackView->palette().highlight().color()); +} + + +/************************************************ + + ************************************************/ +void TrackViewDelegate::drawBranch(QPainter *painter, const QRect &rect, const QModelIndex &index) const +{ + QColor bgColor = (index.row() % 2) ? mTrackView->palette().base().color() : mTrackView->palette().alternateBase().color(); + if (rect.isValid()) + painter->fillRect(rect, bgColor); + + if (mTrackView-> selectionModel()->isRowSelected(index.row(), index.parent())) + drawSelectionMark(painter, rect); +} + + +/************************************************ + + ************************************************/ void TrackViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { + QStyleOptionViewItem opt = option; + opt.state &= ~QStyle::State_Selected; + QObject *obj = static_cast<QObject*>(index.internalPointer()); Track *track = qobject_cast<Track*>(obj); if (track) { - paintTrack(painter, option, index, track); + QColor bgColor = (index.row() % 2) ? mTrackView->palette().base().color() : mTrackView->palette().alternateBase().color(); + painter->fillRect(opt.rect, bgColor); + + paintTrack(painter, opt, index, track); return; } @@ -168,7 +200,18 @@ Disk *disk = qobject_cast<Disk*>(obj); if (disk) { - paintDisk(painter, option, index, disk); + QColor bgColor = mTrackView->palette().base().color(); + painter->fillRect(opt.rect, bgColor); + + if (mTrackView-> selectionModel()->isSelected(index)) + { + QRect rect = opt.rect; + if (index.row() > 0) + rect.setTop(rect.top() + TOP_PADDING); + drawSelectionMark(painter, rect); + } + + paintDisk(painter, opt, index, disk); } } } @@ -252,23 +295,15 @@ QRect paintRect = option.rect; paintRect.setLeft(0); - if (option.state & QStyle::State_Selected) - QStyledItemDelegate::paint(painter, option, index); - else - painter->fillRect(option.rect, mTrackView->palette().base().color()); - - - //cache = self.cache(index) painter->save(); painter->setClipRect(option.rect); - QFont titleFont = this->titleFont(painter); - QFont filesFont = this->filesFont(painter); + QFont titleFont = this->titleFont(painter->font()); + QFont filesFont = this->filesFont(painter->font()); - int topPadding = index.row() ? TOP_PADDING : 0; - painter->translate(option.rect.topLeft()); + int topPadding = index.row() ? TOP_PADDING : 0; QRect windowRect(MARGIN + MARGIN, MARGIN + topPadding, option.rect.right() - 2 * MARGIN, @@ -408,19 +443,17 @@ if (!index.parent().isValid()) { - if (!mDiskHeightHint) { int h = 8; - QPainter painter(mTrackView); - QFont titleFont = this->titleFont(&painter); - QFont filesFont = this->filesFont(&painter); + + QFont titleFont = this->titleFont(option.font); + QFont filesFont = this->filesFont(option.font); h += QFontMetrics(titleFont).height(); h += QFontMetrics(filesFont).height() * 2; mDiskHeightHint = qMax(IMG_HEIGHT, h) + 2 * MARGIN + BOTTOM_PADDING; //For Line } - res.rheight() = mDiskHeightHint; if (index.row()) res.rheight() += TOP_PADDING; @@ -533,9 +566,9 @@ /************************************************ ************************************************/ -QFont TrackViewDelegate::titleFont(const QPainter *painter) const +QFont TrackViewDelegate::titleFont(const QFont &font) const { - QFont res = painter->font(); + QFont res = font; res.setPointSize(res.pointSize() + 1); res.setBold(true); return res; @@ -545,9 +578,9 @@ /************************************************ ************************************************/ -QFont TrackViewDelegate::filesFont(const QPainter *painter) const +QFont TrackViewDelegate::filesFont(const QFont &font) const { - QFont res = painter->font(); + QFont res = font; return res; }
View file
flacon-1.2.0.tar.gz/gui/trackviewdelegate.h -> flacon-2.0.1.tar.gz/gui/trackviewdelegate.h
Changed
@@ -50,6 +50,8 @@ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + void drawBranch(QPainter *painter, const QRect &rect, const QModelIndex &index) const; + signals: void trackButtonClicked(const QModelIndex &index, const QRect &buttonRect); void audioButtonClicked(const QModelIndex &index, const QRect &buttonRect); @@ -76,12 +78,13 @@ QMovie mDownloadMovie; mutable int mDiskHeightHint; - QFont titleFont(const QPainter *painter) const; - QFont filesFont(const QPainter *painter) const; + QFont titleFont(const QFont &font) const; + QFont filesFont(const QFont &font) const; void paintTrack(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index, const Track *track) const; void paintDisk(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index, const Disk *disk) const; QRect drawLabel(const QString &text, QRect rect, QPainter *painter) const; QRect drawFile(const QString &text, QRect rect, QPainter *painter) const; + void drawSelectionMark(QPainter *painter, const QRect &rect) const; }; #endif // TRACKVIEWDELEGATE_H
View file
flacon-1.2.0.tar.gz/gui/trackviewmodel.cpp -> flacon-2.0.1.tar.gz/gui/trackviewmodel.cpp
Changed
@@ -65,6 +65,7 @@ switch(section) { case TrackView::ColumnTracknum: return QVariant(tr("Track", "Table header.")); + case TrackView::ColumnDuration: return QVariant(tr("Length", "Table header.")); case TrackView::ColumnTitle: return QVariant(tr("Title", "Table header.")); case TrackView::ColumnArtist: return QVariant(tr("Artist", "Table header.")); case TrackView::ColumnAlbum: return QVariant(tr("Album", "Table header.")); @@ -223,6 +224,9 @@ case TrackView::ColumnTracknum: return QVariant(QString("%1").arg(track->trackNum(), 2, 10, QChar('0'))); + case TrackView::ColumnDuration: + return QVariant(trackDurationToString(track->duration()) + " "); + case TrackView::ColumnTitle: return QVariant(track->title()); @@ -255,6 +259,18 @@ } } + // TextAlignmen ::::::::::::::::::::::::::::::::::::: + if (role == Qt::TextAlignmentRole) + { + switch (index.column()) + { + case TrackView::ColumnDuration: + return Qt::AlignRight + Qt::AlignVCenter; + } + + return QVariant(); + + } // StatusPercent :::::::::::::::::::::::::::::::::::: // if (role == StatusPercentRole) // { @@ -319,7 +335,7 @@ { QString s; if (!disk->canConvert(&s)) - return QVariant(tr("Conversion is not possible.\n%1").arg(s)); + return QVariant(tr("The conversion is not possible.\n%1").arg(s)); else return QVariant(); @@ -347,6 +363,31 @@ /************************************************ + * + ************************************************/ +QString TrackViewModel::trackDurationToString(uint milliseconds) const +{ + if (milliseconds > 0) + { + uint l = milliseconds / 1000; + uint h = l / 3600; + uint m = (l % 3600) / 60; + uint s = l % 60; + + + if (h > 0) + return tr("%1:%2:%3", "Track length, string like '01:02:56'").arg(h).arg(m, 2, 10, QChar('0')).arg(s, 2, 10, QChar('0')); + else + return tr("%1:%2", "Track length, string like '02:56'").arg(m).arg(s, 2, 10, QChar('0')); + } + else + { + return "??"; + } +} + + +/************************************************ ************************************************/ int TrackViewModel::columnCount(const QModelIndex &parent) const
View file
flacon-1.2.0.tar.gz/gui/trackviewmodel.h -> flacon-2.0.1.tar.gz/gui/trackviewmodel.h
Changed
@@ -35,6 +35,7 @@ class Track; class TrackView; + class TrackViewModel : public QAbstractItemModel { Q_OBJECT @@ -74,6 +75,7 @@ private: QVariant trackData(const Track *track, const QModelIndex &index, int role) const; QVariant diskData(const Disk *disk, const QModelIndex &index, int role) const; + QString trackDurationToString(uint milliseconds) const; TrackView *mView; };
View file
flacon-1.2.0.tar.gz/inputaudiofile.cpp -> flacon-2.0.1.tar.gz/inputaudiofile.cpp
Changed
@@ -31,7 +31,8 @@ #include <QByteArray> #include <QTextStream> #include <QDebug> - +#include <QFileInfo> +#include <QDir> void initInputAudioFormat(QList<InputAudioFormat> *formats) { @@ -71,10 +72,12 @@ ************************************************/ InputAudioFile::InputAudioFile(const QString &fileName): mFileName(fileName), - mValid(false) + mValid(false), + mSampleRate(0), + mCdQuality(false), + mDuration(0) + { - mSampleRate = 0; - mCdQuality = false; mValid = load(); } @@ -82,9 +85,37 @@ /************************************************ ************************************************/ +InputAudioFile::InputAudioFile(const InputAudioFile &other) +{ + mFileName = other.mFileName; + mValid = other.mValid; + mErrorString = other.mErrorString; + mSampleRate = other.mSampleRate; + mCdQuality = other.mCdQuality; + mDuration = other.mDuration; +} + + +/************************************************ + + ************************************************/ bool InputAudioFile::load() { - QString shntool = settings->value(Settings::Prog_Shntool).toString(); + if (mFileName == "") + { + qWarning() << "The audio file name is not set"; + mErrorString = QObject::tr("The audio file name is not set"); + return false; + } + + if (!QFileInfo(mFileName).exists()) + { + qWarning() << QString("The audio file <b>\"%1\"</b> does not exist").arg(mFileName); + mErrorString = QObject::tr("The audio file <b>\"%1\"</b> does not exist").arg(mFileName); + return false; + } + + QString shntool = QDir::toNativeSeparators(settings->value(Settings::Prog_Shntool).toString()); if (shntool.isEmpty()) { qWarning() << "Program shntool not found."; @@ -96,20 +127,30 @@ QStringList args; args << "info"; - args << mFileName; + args << QDir::toNativeSeparators(mFileName); proc.start(shntool, args); - if (!proc.waitForStarted()) - return false; - if (!proc.waitForFinished()) + { + qWarning("------------------------------------"); + qWarning() << "Test audio command:" << (shntool + " " + args.join(" ")); + qWarning() << "shntool info waitForFinished faild"; + qWarning() << proc.readAllStandardError(); + qWarning("------------------------------------"); return false; + } + if (proc.exitCode() != 0) { + qWarning("------------------------------------"); + qWarning() << "Test audio command:" << (shntool + " " + args.join(" ")); + qWarning() << "shntool info nonzero exit code:" << proc.exitCode(); + qWarning() << proc.readAllStandardError(); + qWarning("------------------------------------"); mErrorString = QObject::tr("File <b>%1</b> is not a supported audio file. <br>" - "<br>Verify that all required programs are installed and in your preferences."); + "<br>Verify that all required programs are installed and in your preferences.").arg(mFileName); return false; } @@ -132,6 +173,20 @@ continue; } + + if (name == "LENGTH") + { + // 0h 0m 3s - Length: 0:03.00 + // 1h 2m 5s - Length: 62:05.00 + QRegExp re("(\\d+):(\\d+)\\.(\\d+)"); + if (re.exactMatch(value)) + { + mDuration = re.cap(1).toInt() * 60 * 1000 + + re.cap(2).toInt() * 1000 + + re.cap(3).toInt(); + } + continue; + } } return true;
View file
flacon-1.2.0.tar.gz/inputaudiofile.h -> flacon-2.0.1.tar.gz/inputaudiofile.h
Changed
@@ -49,13 +49,15 @@ class InputAudioFile { public: - InputAudioFile(const QString &fileName); + explicit InputAudioFile(const QString &fileName); + InputAudioFile(const InputAudioFile &other); QString fileName() const { return mFileName; } bool isValid() const { return mValid; } bool isCdQuality() const { return mCdQuality; } int sampleRate() const { return mSampleRate; } - + QString errorString() const { return mErrorString; } + uint duration() const { return mDuration; } private: @@ -64,6 +66,7 @@ QString mErrorString; int mSampleRate; bool mCdQuality; + uint mDuration; bool load(); };
View file
flacon-1.2.0.tar.gz/internet/dataprovider.cpp -> flacon-2.0.1.tar.gz/internet/dataprovider.cpp
Changed
@@ -101,7 +101,7 @@ if (reply->isOpen()) reply->abort(); } - project->error(message); + Project::error(message); }
View file
flacon-1.2.0.tar.gz/main.cpp -> flacon-2.0.1.tar.gz/main.cpp
Changed
@@ -28,14 +28,19 @@ #include "mainwindow.h" #include "settings.h" #include "converter/converter.h" +#include "project.h" + #include <QString> #include <QLocale> #include <QTranslator> #include <QLibraryInfo> - #include <QMessageBox> #include <QTextStream> +#include <QDebug> +/************************************************ + * + ************************************************/ void printHelp() { QTextStream out(stdout); @@ -66,7 +71,9 @@ } - +/************************************************ + * + ************************************************/ void printVersion() { QTextStream out(stdout); @@ -80,6 +87,31 @@ out << "There is NO WARRANTY, to the extent permitted by law." << endl; } + +/************************************************ + * + ************************************************/ +void consoleErroHandler(const QString &message) +{ + QString msg(message); + msg.remove(QRegExp("<[^>]*>")); + qWarning() << msg; +} + + +/************************************************ + * + ************************************************/ +void guiErrorHandler(const QString &message) +{ + consoleErroHandler(message); + QMessageBox::critical(0, QObject::tr("Flacon", "Error"), message); +} + + +/************************************************ + * + ************************************************/ void translate(QApplication *app) { QString locale = QLocale::system().name(); @@ -95,6 +127,9 @@ } +/************************************************ + * + ************************************************/ int main(int argc, char *argv[]) { QApplication app(argc, argv); @@ -146,6 +181,7 @@ if (start) { + Project::installErrorHandler(consoleErroHandler); Converter converter; QEventLoop loop; loop.connect(&converter, SIGNAL(finished()), &loop, SLOT(quit())); @@ -154,6 +190,10 @@ loop.exec(); return 0; } + else + { + Project::installErrorHandler(guiErrorHandler); + } window.show(); return app.exec();
View file
flacon-1.2.0.tar.gz/outformats/flac.cpp -> flacon-2.0.1.tar.gz/outformats/flac.cpp
Changed
@@ -53,7 +53,8 @@ { if (project->disk(i)->audioFile()->sampleRate() > 48000) { - *errors << QObject::tr("you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files."); + *errors << QObject::tr("you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.", + "This string should begin with a lowercase letter. This is a part of the complex sentence."); res = false; break; }
View file
flacon-1.2.0.tar.gz/outformats/opus_config.ui -> flacon-2.0.1.tar.gz/outformats/opus_config.ui
Changed
@@ -76,9 +76,9 @@ <property name="toolTip"> <string>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </string> </property> <property name="minimum">
View file
flacon-1.2.0.tar.gz/project.cpp -> flacon-2.0.1.tar.gz/project.cpp
Changed
@@ -27,12 +27,16 @@ #include "project.h" #include "disk.h" #include "settings.h" +#include "cue.h" +#include "inputaudiofile.h" #include <QDebug> #include <QApplication> #include <QMessageBox> #include <QDir> +static void (*errorHandler)(const QString &msg); + /************************************************ ************************************************/ @@ -86,16 +90,6 @@ /************************************************ ************************************************/ -void Project::error(const QString &message) -{ - QMessageBox::critical(0, tr("Flacon", "Error"), message); - qWarning() << message; -} - - -/************************************************ - - ************************************************/ void Project::clear() { QList<Disk*> disks; @@ -125,7 +119,6 @@ Project::Project(QObject *parent) : QObject(parent) { - connect(settings, SIGNAL(changed()), this, SLOT(settingChanged())); } @@ -176,7 +169,8 @@ Disk *disk = disks->at(i); emit beforeRemoveDisk(disk); if (mDisks.removeAll(disk)) - delete disk; + disk->deleteLater(); + emit afterRemoveDisk(); } @@ -194,73 +188,105 @@ /************************************************ - + * ************************************************/ -void Project::addAudioFile(const QString &fileName) +bool Project::diskExists(const QString &cueUri) { - QString canonicalFileName = QFileInfo(fileName).canonicalFilePath(); - - for(int i=0; i<count(); ++i ) + foreach (Disk *d, mDisks) { - if (disk(i)->audioFileName() == canonicalFileName) - return; + if (!d->tagSets().isEmpty() && d->tagSets().first()->uri() == cueUri) + return true; } + return false; +} - Disk *disk = new Disk(); - disk->setAudioFile(canonicalFileName); - if (disk->audioFile()) - { - disk->findCueFile(); - addDisk(disk); - } - else - { - delete disk; - } +/************************************************ + * + ************************************************/ +void Project::error(const QString &msg) +{ + if (errorHandler) + errorHandler(msg); +} + + +/************************************************ + * + ************************************************/ +void Project::installErrorHandler(void (*handler)(const QString &)) +{ + errorHandler = handler; } /************************************************ ************************************************/ -void Project::addCueFile(const QString &fileName) +Disk *Project::addAudioFile(const QString &fileName, bool showErrors) { + QString canonicalFileName = QFileInfo(fileName).canonicalFilePath(); for(int i=0; i<count(); ++i ) { - if (disk(i)->cueFile() == canonicalFileName) - return; + if (disk(i)->audioFileName() == canonicalFileName) + return 0; } - Disk *disk = new Disk(); - disk->loadFromCue(fileName, true); - if (!disk->isValid()) + InputAudioFile audio(canonicalFileName); + if (!audio.isValid()) { - error(disk->errorString()); - delete disk; - return; + if (showErrors) + Project::error(audio.errorString()); + + return 0; } - disk->findAudioFile(); - insertDisk(disk); + Disk *disk = new Disk(); + disk->setAudioFile(audio); + addDisk(disk); + + return disk; +} -#if 0 - qDebug() << Q_FUNC_INFO << "*****************************"; - qDebug() << "Audio" << (disk->audioFile() == 0 ? "None" : disk->audioFile()->fileName()) ; - qDebug() << "Disk ID" << disk->discId(); - qDebug() << "Count" << disk->count(); - for (int i=0; i<disk->count(); ++i) + +/************************************************ + + ************************************************/ +DiskList Project::addCueFile(const QString &fileName, bool showErrors) +{ + DiskList res; + CueReader cueReader(fileName); + if (cueReader.isValid()) { - Track *t = disk->track(i); - qDebug() << " * index" << t->index(); - qDebug() << " * album" << t->album(); - qDebug() << " * title" << t->title(); - qDebug(); + for (int i=0; i<cueReader.diskCount(); ++i) + { + if (diskExists(cueReader.disk(i).uri())) + continue; + + Disk *disk = new Disk(); + disk->loadFromCue(cueReader.disk(i)); + mDisks << disk; + res << disk; + } + emit layoutChanged(); } -#endif + else + { + foreach(Disk *disk, res) + { + mDisks.removeAll(disk); + disk->deleteLater(); + } + + emit layoutChanged(); + if (showErrors) + Project::error(cueReader.errorString()); + } + + return res; } @@ -298,14 +324,3 @@
View file
flacon-1.2.0.tar.gz/project.h -> flacon-2.0.1.tar.gz/project.h
Changed
@@ -59,12 +59,16 @@ void emitDownloadingFinished(DataProvider *provider) { emit downloadingFinished(provider);} static QIcon getIcon(const QString &iconName1, const QString &iconName2="", const QString &iconName3="", const QString &iconName4=""); - static void error(const QString &message); + + bool diskExists(const QString &cueUri); + + static void error(const QString &msg); + static void installErrorHandler(void (*handler)(const QString &msg)); public slots: void clear(); - void addAudioFile(const QString &fileName); - void addCueFile(const QString &fileName); + Disk *addAudioFile(const QString &fileName, bool showErrors); + DiskList addCueFile(const QString &fileName, bool showErrors); signals: void diskChanged(Disk *disk); @@ -76,9 +80,6 @@ void downloadingStarted(DataProvider *provider); void downloadingFinished(DataProvider *provider); -private slots: - void settingChanged(); - private: explicit Project(QObject *parent = 0);
View file
flacon-2.0.1.tar.gz/scanner.cpp
Added
@@ -0,0 +1,108 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#include "scanner.h" +#include "inputaudiofile.h" +#include "project.h" + +#include <QStringList> +#include <QSet> +#include <QQueue> +#include <QDir> +#include <QApplication> + + +/************************************************ + + ************************************************/ +Scanner::Scanner(QObject *parent) : + QObject(parent), + mActive(false), + mAbort(false) +{ + +} + + +/************************************************ + + ************************************************/ +void Scanner::start(const QString &startDir) +{ + mActive = true; + mAbort = false; + + QStringList exts; + foreach(InputAudioFormat format, InputAudioFormat::allFormats()) + exts << QString("*.%1").arg(format.ext()); + + + QQueue<QString> query; + query << startDir; + + QSet<QString> processed; + while (!query.isEmpty()) + { + QDir dir(query.dequeue()); + + QFileInfoList dirs = dir.entryInfoList(QDir::Dirs | QDir::Readable | QDir::NoDotAndDotDot); + foreach(QFileInfo d, dirs) + { + qApp->processEvents(); + if (mAbort) + return; + + if (d.isSymLink()) + d = QFileInfo(d.symLinkTarget()); + + if (!processed.contains(d.absoluteFilePath())) + { + processed << d.absoluteFilePath(); + query << d.absoluteFilePath(); + } + } + + QFileInfoList files = dir.entryInfoList(exts, QDir::Files | QDir::Readable); + foreach(QFileInfo f, files) + { + qApp->processEvents(); + if (mAbort) + return; + + project->addAudioFile(f.absoluteFilePath(), false); + } + } +} + + +/************************************************ + + ************************************************/ +void Scanner::stop() +{ + mAbort = true; +} +
View file
flacon-2.0.1.tar.gz/scanner.h
Added
@@ -0,0 +1,47 @@ +/* BEGIN_COMMON_COPYRIGHT_HEADER + * (c)LGPL2+ + * + * Flacon - audio File Encoder + * https://github.com/flacon/flacon + * + * Copyright: 2012-2015 + * Alexander Sokoloff <sokoloff.a@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library 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 + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * END_COMMON_COPYRIGHT_HEADER */ + + +#ifndef SCANNER_H +#define SCANNER_H + +#include <QObject> + +class Scanner : public QObject +{ + Q_OBJECT +public: + explicit Scanner(QObject *parent = 0); + +public slots: + void start(const QString &startDir); + void stop(); + +private: + bool mActive; + bool mAbort; +}; + +#endif // SCANNER_H
View file
flacon-1.2.0.tar.gz/scripts/cppcheck.sh -> flacon-2.0.1.tar.gz/scripts/cppcheck.sh
Changed
@@ -1,2 +1,2 @@ #!/bin/sh -cppcheck -q --enable=performance,portability,warning,style --library=qt .. +cppcheck -q --force --enable=performance,portability,warning,style --library=qt ..
View file
flacon-1.2.0.tar.gz/settings.cpp -> flacon-2.0.1.tar.gz/settings.cpp
Changed
@@ -36,6 +36,22 @@ #include <QStandardPaths> #endif + + +#ifdef Q_OS_WIN + #define PATH_ENV_SEPARATOR ';' + #define BINARY_EXT ".exe" + +#elif defined(Q_OS_OS2) + #define PATH_ENV_SEPARATOR ';' + #define BINARY_EXT ".exe" + +#else + #define PATH_ENV_SEPARATOR ':' + #define BINARY_EXT "" + +#endif + QString Settings::mFileName; /************************************************
View file
flacon-1.2.0.tar.gz/tagset.cpp -> flacon-2.0.1.tar.gz/tagset.cpp
Changed
@@ -304,9 +304,7 @@ void TagSet::setTrackTag(int track, const QString &tagName, const QByteArray &value, bool encoded) { d->mTags.insert(d->key(track, tagName), Tag(value, encoded)); - - if (track > d->mTrackCount) - d->mTrackCount = track; + d->mTrackCount = qMax(track + 1, d->mTrackCount); if (d->mTags.contains(tagName)) {
View file
flacon-1.2.0.tar.gz/tagset.h -> flacon-2.0.1.tar.gz/tagset.h
Changed
@@ -49,13 +49,16 @@ #define TAG_TITLE "TITLE" #define TAG_DISCID "DISCID" #define TAG_FILE "FILE" +#define TAG_DISKNUM "DISKNUM" +#define TAG_CUE_FILE "CUE_FILE" +#define START_TRACK_NUM "START_TRACK_NUM" #define CODEC_AUTODETECT "AUTODETECT" class TagSet { public: - TagSet(const QString &uri); + explicit TagSet(const QString &uri); TagSet(const TagSet &other); ~TagSet();
View file
flacon-1.2.0.tar.gz/tests/testflacon.cpp -> flacon-2.0.1.tar.gz/tests/testflacon.cpp
Changed
@@ -48,6 +48,28 @@ QTest::qFail(message, __FILE__, __LINE__);\ } while (0) +#ifdef Q_OS_WIN + #define USE_DEV_RANDOM 0 +#elif defined(Q_OS_OS2) + #define USE_DEV_RANDOM 0 +#else + #define USE_DEV_RANDOM 1 +#endif + +/************************************************ + * + ************************************************/ +Disk *loadFromCue(const QString &cueFile) +{ + CueReader cueReader(cueFile); + if (!cueReader.isValid()) + FAIL(cueReader.errorString().toLocal8Bit()); + + Disk *res = new Disk(); + res->loadFromCue(cueReader.disk(0)); + return res; +} + /************************************************ @@ -83,23 +105,24 @@ if (mFfmpeg.isEmpty()) FAIL(QString("Program \"%1\" not found.").arg("avconv/ffmpeg").toLocal8Bit()); - mCdAudioFile = mTmpDir + "CD_10Min.wav"; - createAudioFile(mFfmpeg, mCdAudioFile, 600, true); + mCdAudioFile = mTmpDir + "CD.wav"; + createAudioFile(mFfmpeg, mCdAudioFile, 900, true); - mHdAudioFile = mTmpDir + "HD_10Min.wav"; - createAudioFile(mFfmpeg, mHdAudioFile, 600, false); + mHdAudioFile = mTmpDir + "HD.wav"; + createAudioFile(mFfmpeg, mHdAudioFile, 900, false); } /************************************************ ************************************************/ -bool TestFlacon::createAudioFile(const QString &program, const QString &fileName, int duration, bool cdQuality) +void TestFlacon::createAudioFile(const QString &program, const QString &fileName, int duration, bool cdQuality) { if (QFileInfo(fileName).exists()) - return true; + return; QStringList args; +# if USE_DEV_RANDOM args << "-y"; // Overwrite output files." args << "-ar" << (cdQuality ? "44100" : " 48000"); args << "-f" << "s16le"; @@ -108,19 +131,27 @@ args << "-i" << "/dev/urandom"; args << "-t" << QString("%1").arg(duration); args << fileName; +#else + args << "-y"; // Overwrite output files." + args << "-t" << QString("%1").arg(duration); + args << "-f" << "lavfi"; + args << "-i" << "anullsrc"; + args << "-ar" << (cdQuality ? "44100" : " 48000"); + args << "-acodec" << "pcm_s16le"; + args << "-ac" << "2"; + args << QDir::toNativeSeparators(fileName); +#endif QProcess proc; //proc.setProcessChannelMode(QProcess::ForwardedChannels); proc.start(program, args); - proc.waitForStarted(); - if (proc.state() == QProcess::NotRunning) + proc.waitForFinished(3 * 60 * 10000); + if (proc.exitCode() != 0) { - return false; + QString err = proc.readAllStandardError(); + QFAIL(QString("Can't create audio file: %1").arg(err).toLocal8Bit()); } - - proc.waitForFinished(-1); - return proc.exitCode() == 0; } @@ -270,9 +301,7 @@ cue << " INDEX 01 12:04:72"; writeTextFile(cueFile, cue); - - mStandardDisk = new Disk(this); - mStandardDisk->loadFromCue(cueFile); + mStandardDisk = loadFromCue(cueFile); } return mStandardDisk; @@ -288,11 +317,13 @@ resFile.open(QFile::ReadOnly); QByteArray resData = resFile.readAll(); resFile.close(); + resData.replace("\r\n", "\n"); QFile expFile(expected); expFile.open(QFile::ReadOnly); QByteArray expData = expFile.readAll(); expFile.close(); + expData.replace("\r\n", "\n"); if (resData != expData) { @@ -387,7 +418,6 @@ - /************************************************ ************************************************/ @@ -462,23 +492,29 @@ mResultFiles = resultFiles.split(';', QString::SkipEmptyParts); mExpectedCue = expectedCue; project->clear(); - mDisk = new Disk(); + mDisk = loadFromCue(cueFile); + InputAudioFile audio(audioFile); + mDisk->setAudioFile(audio); project->addDisk(mDisk); - - mDisk->loadFromCue(cueFile); - mDisk->setAudioFile(audioFile); - } /************************************************ ************************************************/ -void ConverterTester::run() +void ConverterTester::run(const QString &name) { Converter conv; QEventLoop loop; loop.connect(&conv, SIGNAL(finished()), &loop, SLOT(quit())); conv.start(); + + if (!conv.isRunning()) + { + QString msg; + mDisk->canConvert(&msg); + QFAIL(QString("Can't start converter: \"%1\"").arg(msg).toLocal8Bit()); + } + loop.exec(); QDir outDir = QFileInfo(mDisk->track(0)->resultFilePath()).dir(); @@ -518,10 +554,11 @@ } if (!msg.isEmpty()) - QFAIL(msg.toLocal8Bit()); + QFAIL(name.toLocal8Bit() + "\n" + msg.toLocal8Bit()); } + /************************************************ ************************************************/ @@ -555,7 +592,7 @@ "04 - Song04.wav;" ); - conv.run(); + conv.run("1.1. With pregap and HTOA, w/o cue"); } //## 1.1 ############################################## @@ -579,7 +616,7 @@ "Artist-Album.cue;" ); - conv.run(); + conv.run("1.2. With pregap and HTOA, with cue"); } //## 1.2 ############################################## @@ -602,7 +639,7 @@ "Artist-Album.cue;" ); - conv.run(); + conv.run("2.1 W/o pregap, w/o HTOA");
View file
flacon-1.2.0.tar.gz/tests/testflacon.h -> flacon-2.0.1.tar.gz/tests/testflacon.h
Changed
@@ -44,7 +44,7 @@ const QString &resultFiles); - void run(); + void run(const QString &name); Disk *disk() { return mDisk; } @@ -96,10 +96,13 @@ void testCueIndex_data(); void testCueIndex(); + void testFindAudioFile_data(); + void testFindAudioFile(); + void testConvert(); private: - bool createAudioFile(const QString &program, const QString &fileName, int duration, bool cdQuality); + void createAudioFile(const QString &program, const QString &fileName, int duration, bool cdQuality); void writeTextFile( const QString &fileName, const QString &content); void writeTextFile( const QString &fileName, const QStringList &content);
View file
flacon-2.0.1.tar.gz/tools.cmake
Added
@@ -0,0 +1,34 @@ +if (NOT CMAKE_BUILD_TYPE) + set ( CMAKE_BUILD_TYPE Release ) +endif (NOT CMAKE_BUILD_TYPE) + +if (CMAKE_BUILD_TYPE MATCHES [Dd]ebug) + add_definitions("-g") +endif() + +set(STATUS_MESSAGES "") + + +macro(status_message message) + set(STATUS_MESSAGES ${STATUS_MESSAGES} ${message}) +endmacro() + + +macro(show_status) + message(STATUS "*****************************************************") + + foreach(msg ${STATUS_MESSAGES}) + message(STATUS "* ${msg}") + message(STATUS "*") + endforeach() + + message(STATUS "*****************************************************") +endmacro() + + +macro(setByDefault VAR_NAME VAR_VALUE) + if (NOT DEFINED ${VAR_NAME}) + set (${VAR_NAME} ${VAR_VALUE}) + endif() + add_definitions(-D${VAR_NAME}=\"${VAR_VALUE}\") +endmacro()
View file
flacon-1.2.0.tar.gz/translations/flacon_cs.ts -> flacon-2.0.1.tar.gz/translations/flacon_cs.ts
Changed
@@ -3,79 +3,79 @@ <name>AboutDialog</name> <message> <source>About Flacon</source> - <translation type="unfinished"/> + <translation>O programu Flacon</translation> </message> <message> <source>About</source> - <translation type="unfinished"/> + <translation>O programu</translation> </message> <message> <source>Author</source> - <translation type="unfinished"/> + <translation>Autor</translation> </message> <message> <source>Thanks</source> - <translation type="unfinished"/> + <translation>Poděkování</translation> </message> <message> <source>Translations</source> - <translation type="unfinished"/> + <translation>Překlady</translation> </message> <message> <source>External programs</source> - <translation type="unfinished"/> + <translation>Vnější programy</translation> </message> <message> <source>Homepage: %1</source> - <translation type="unfinished"/> + <translation>Stránky: %1</translation> </message> <message> <source>License: %1</source> - <translation type="unfinished"/> + <translation>Povolení: %1</translation> </message> <message> <source>Special thanks to:</source> - <translation type="unfinished"/> + <translation>Zvláštní poděkování:</translation> </message> <message> <source>Flacon uses external programs. Many thanks to their authors!</source> - <translation type="unfinished"/> + <translation>Flacon používá vnější programy. Hodně díků jejich autorům!</translation> </message> <message> <source>Extracts individual tracks from one big audio file containing the entire album.</source> - <translation type="unfinished"/> + <translation>Vytáhne jednotlivé skladby z jednoho velkého zvukového souboru, který obsahuje celé album.</translation> </message> <message> <source>Copyright: %1-%2 %3</source> - <translation type="unfinished"/> + <translation>Autorské právo: %1-%2 %3</translation> </message> <message> <source>WavPack support patch</source> - <translation type="unfinished"/> + <translation>Záplata s podporou pro WavPack</translation> </message> <message> <source>Application icon, Packaging</source> - <translation type="unfinished"/> + <translation>Ikona programu, balení</translation> </message> <message> <source>Packaging, testing</source> - <translation type="unfinished"/> + <translation>Balení, zkouška</translation> </message> <message> <source>Improvements in the UI</source> - <translation type="unfinished"/> - </message> - <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"/> + <translation>Vylepšení rozhraní</translation> </message> <message> <source>Flacon account on github.com</source> - <translation type="unfinished"/> + <translation>Účet Flaconu na github.com</translation> </message> <message> <source>Bug tracker %1</source> <comment>About dialog, About tab</comment> + <translation>Sledování chyb %1</translation> + </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> <translation type="unfinished"/> </message> </context> @@ -84,207 +84,239 @@ <message> <source>Auto detect</source> <comment>Codepage auto detection</comment> - <translation type="unfinished"/> + <translation>Automatické zjištění</translation> </message> <message> <source>Unicode (UTF-8)</source> - <translation type="unfinished"/> + <translation>Unicode (UTF-8)</translation> </message> <message> <source>Unicode (UTF-16LE)</source> - <translation type="unfinished"/> + <translation>Unicode (UTF-16LE)</translation> </message> <message> <source>Unicode (UTF-16BE)</source> - <translation type="unfinished"/> + <translation>Unicode (UTF-16BE)</translation> </message> <message> <source>Cyrillic (Win-1251)</source> - <translation type="unfinished"/> + <translation>Cyrilice (Win-1251)</translation> </message> <message> <source>Cyrillic (CP-866)</source> - <translation type="unfinished"/> + <translation>Cyrilice (CP-866)</translation> </message> <message> <source>Latin-1 (ISO-8859-1)</source> - <translation type="unfinished"/> + <translation>Latin-1 (ISO-8859-1)</translation> </message> <message> <source>Latin-2 (ISO-8859-2)</source> - <translation type="unfinished"/> + <translation>Latin-2 (ISO-8859-2)</translation> </message> <message> <source>Latin-3 (ISO-8859-3)</source> - <translation type="unfinished"/> + <translation>Latin-3 (ISO-8859-3)</translation> </message> <message> <source>Latin-4 (ISO-8859-4)</source> - <translation type="unfinished"/> + <translation>Latin-4 (ISO-8859-4)</translation> </message> <message> <source>Latin-5 (ISO-8859-5)</source> - <translation type="unfinished"/> + <translation>Latin-5 (ISO-8859-5)</translation> </message> <message> <source>Latin-6 (ISO-8859-6)</source> - <translation type="unfinished"/> + <translation>Latin-6 (ISO-8859-6)</translation> </message> <message> <source>Latin-7 (ISO-8859-7)</source> - <translation type="unfinished"/> + <translation>Latin-7 (ISO-8859-7)</translation> </message> <message> <source>Latin-8 (ISO-8859-8)</source> - <translation type="unfinished"/> + <translation>Latin-8 (ISO-8859-8)</translation> </message> <message> <source>Latin-9 (ISO-8859-9)</source> - <translation type="unfinished"/> + <translation>Latin-9 (ISO-8859-9)</translation> </message> <message> <source>Latin-10 (ISO-8859-10)</source> - <translation type="unfinished"/> + <translation>Latin-10 (ISO-8859-10)</translation> </message> <message> <source>Latin-13 (ISO-8859-13)</source> - <translation type="unfinished"/> + <translation>Latin-13 (ISO-8859-13)</translation> </message> <message> <source>Latin-14 (ISO-8859-14)</source> - <translation type="unfinished"/> + <translation>Latin-14 (ISO-8859-14)</translation> </message> <message> <source>Latin-15 (ISO-8859-15)</source> - <translation type="unfinished"/> + <translation>Latin-15 (ISO-8859-15)</translation> </message> <message> <source>Latin-16 (ISO-8859-16)</source>
View file
flacon-1.2.0.tar.gz/translations/flacon_cs_CZ.ts -> flacon-2.0.1.tar.gz/translations/flacon_cs_CZ.ts
Changed
@@ -66,10 +66,6 @@ <translation>Vylepšení rozhraní</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon je přeložen do mnoha jazyků díky práci překladatelů z celého světa.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Účet Flaconu na github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Sledování chyb %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Výchozí kódová stránka:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Soubor CUE u skladby</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Vytvořit soubor CUE u skladby</translation> - </message> - <message> <source>First track pregap:</source> <translation>Předmezera před první skladbou:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Vyberte adresář pro dočasné soubory</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -514,9 +514,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -560,22 +560,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Zvukový soubor nenastaven.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Soubor CUE nenastaven.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Soubor <b>%1</b> není platným souborem CUE.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Soubor <b>%1</b> obsahuje několik značek FILE. <br>Tyto soubory CUE ještě nejsou podporovány.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -595,7 +607,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Nelze přečíst soubor %1</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -859,11 +872,6 @@ <translation>Vložit "Žánr"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Vybrat soubor CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Některá alba nebudou převedena, protože obsahují chyby. @@ -885,11 +893,6 @@ <translation>Všechny soubory</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Přidat soubor CUE nebo zvukový soubor</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Vybrat zvukový soubor</translation> @@ -941,18 +944,26 @@ If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>Můžete procházet cílový adresář. Také jej můžete zadat ručně. - -Pokud je cesta ponechána prázdná nebo začíná na "." (tečka), budou výsledné soubory umístěny do téhož adresáře, v jakém se nachází zdroj.</translation> + <translation type="unfinished"/> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Použít "%1"</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -979,43 +990,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>Program %1</translation> + <source>Select program file</source> + <translation>Vyberte soubor s programem</translation> </message> <message> - <source>All files</source> - <translation>Všechny soubory</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Vyberte soubor s programem</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_de.ts -> flacon-2.0.1.tar.gz/translations/flacon_de.ts
Changed
@@ -66,10 +66,6 @@ <translation>Verbesserungen in der Benutzeroberfläche</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"/> - </message> - <message> <source>Flacon account on github.com</source> <translation>Flacon-Konto auf github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation type="unfinished"/> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -211,7 +211,7 @@ </message> <message> <source>The number of threads in the conversion process.</source> - <translation type="unfinished"/> + <translation>Die Anzahl der Threads im Konvertierungsprozess.</translation> </message> <message> <source>Temporary directory:</source> @@ -222,14 +222,6 @@ <translation>Standard-Zeichensatztabelle:</translation> </message> <message> - <source>Per track CUE</source> - <translation>CUE pro Stück</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation type="unfinished"/> - </message> - <message> <source>First track pregap:</source> <translation>Vorlücke des ersten Stücks:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Temporäres Verzeichnis auswählen</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -491,9 +491,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -537,22 +537,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Festplatte auswählen</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ Festplatte %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Audiodatei nicht festgelegt.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>CUE-Datei nicht festgelegt.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Datei <b>%1</b> ist keine gültige CUE-Datei.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Datei <b>%1</b> enthält mehrere FILE-Schlagwörter.<br>Diese CUE-Dateien werden noch nicht unterstützt.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -573,7 +585,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Ich kann die Datei %1 nicht lesen</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -834,14 +847,10 @@ <translation>"Genre" einfügen</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>CUE-Datei auswählen</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> - <translation type="unfinished"/> + <translation>Einige Alben werden nicht konvertiert, weil sie Fehler enthalten. +Möchten Sie fortsetzen?</translation> </message> <message> <source>%1 files</source> @@ -859,11 +868,6 @@ <translation>Alle Dateien</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>CUE- oder Audiodatei hinzufügen</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Audiodatei auswählen</translation> @@ -899,7 +903,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -907,9 +911,19 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> <translation>"%1" verwenden</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -935,42 +949,71 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>%1 Programm</translation> + <source>Select program file</source> + <translation>Programmdatei auswählen</translation> </message> <message> - <source>All files</source> - <translation>Alle Dateien</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/>
View file
flacon-1.2.0.tar.gz/translations/flacon_es.ts -> flacon-2.0.1.tar.gz/translations/flacon_es.ts
Changed
@@ -7,7 +7,7 @@ </message> <message> <source>About</source> - <translation>Acerca</translation> + <translation>Acerca de</translation> </message> <message> <source>Author</source> @@ -66,10 +66,6 @@ <translation>Mejoras de la Interfaz de Usuario</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon es traducido a muchas lenguas gracias al trabajo del equipo de traducción en todo el mundo.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Cuenta de Flacon en github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Seguimiento de fallos %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon es traducido a muchos lenguajes gracias al trabajo del equipo de traductores en <a href='%1'>Transifex</a></translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Página de código predeterminada:</translation> </message> <message> - <source>Per track CUE</source> - <translation>CUE por pistas</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Crear CUE por pistas</translation> - </message> - <message> <source>First track pregap:</source> <translation>Pista pregap:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Seleccione un directorio temporal</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Hoja CUE por pista</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Crear una hoja CUE por pista</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -278,7 +278,7 @@ </message> <message> <source>Bitrate:</source> - <translation>Bitrate:</translation> + <translation>Tasa de bits:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> @@ -345,13 +345,13 @@ </source> <extracomment>ererere</extracomment> <translation><dt>VBR medio</dt> -<dd>Usando un Bitrate Variable medio, este preajuste debe ser casi transparente para la mayoría de gente y la mayoría de música.</dd> +<dd>Usando un Tasa de Bits Variable media, este preajuste debe ser casi transparente para la mayoría de gente y la mayoría de música.</dd> <dt>VBR estándar, VBR estándar rápido</dt> -<dd>Usando un Bitrate Variable estándar, este preajuste debería se transparente para la mayoría de la música y es ya un nivel alto de calidad.</dd> +<dd>Usando un Tasa de Bits Variable estándar, este preajuste debería se transparente para la mayoría de la música y es ya un nivel alto de calidad.</dd> <dt>VBR extremo, VBR extremo rápido</dt> -<dd>Usando el Bitrate Variable más alto, este preajuste ofrece algo más de calidad si usted tiene muy buen oído o un equipo de audio de gama alta.</dd> +<dd>Usando el Tasa de Bits Variable más alta, este preajuste ofrece algo más de calidad si usted tiene muy buen oído o un equipo de audio de gama alta.</dd> <dt>Calidad VBR</dt> <dd>Este valor le permite establecer la calidad de salida.</dd> @@ -360,26 +360,26 @@ <dd>Establece el nuevo VBR rápido para un fichero en particular. Recomendado.</dd> <dt>CBR máximo</dt> -<dd>Si necesita la calidad más alta sin importar el tamaño del archivo, la conseguirá usando este Bitrate Constante.</dd> +<dd>Si necesita la calidad más alta sin importar el tamaño del archivo, la conseguirá usando esta Tasa de Bits Constante.</dd> <dt>CBR kbps</dt> -<dd>Usando este Bitrate Constante, el preajuste le dará una buena calidad al bitrate especificado.</dd> +<dd>Usando esta Tasa de Bits Constante, el preajuste le dará una buena calidad al bitrate especificado.</dd> <dt>ABR kbps</dt> -<dd>Usando este Bitrate Promedio, este preajuste le dará una calidad más alta que el Bitrate Constante para un bitrate específico.</dd> +<dd>Usando esta Tasa de Bits Promedio, este preajuste le dará una calidad más alta que la Tasa de Bits Constante para una Tasa de Bits específica.</dd> </translation> </message> <message> <source>Use bitrate</source> - <translation>Usar bitrate</translation> + <translation>Usar Tasa de Bits</translation> </message> <message> <source>Bitrate:</source> - <translation>Bitrate:</translation> + <translation>Tasa de Bits:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation>Establece un bitrate objetivo (en kb/s).</translation> + <translation>Establece una Tasa de Bits objetivo (en kb/s).</translation> </message> <message> <source>Use quality</source> @@ -446,31 +446,31 @@ </message> <message> <source>Use bitrate</source> - <translation>Usar bitrate</translation> + <translation>Usar Tasa de Bits</translation> </message> <message> <source>Minimal bitrate:</source> - <translation>Bitrate mínimo:</translation> + <translation>Tasa de Bits mínima:</translation> </message> <message> <source>Sets minimum bitrate (in kb/s).</source> - <translation>Establece el bitrate mínimo (en kb/s).</translation> + <translation>Establece la Tasa de Bits mínima (en kb/s).</translation> </message> <message> <source>Nominal bitrate:</source> - <translation>Bitrate nominal:</translation> + <translation>Tasa de Bits nominal:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation>Establece el bitrate objetivo (en kb/s).</translation> + <translation>Establece la Tasa de Bits objetivo (en kb/s).</translation> </message> <message> <source>Maximum bitrate:</source> - <translation>Máximo bitrate:</translation> + <translation>Máxima Tasa de Bits:</translation> </message> <message> <source>Sets maximum bitrate (in kb/s).</source> - <translation>Establece el máximo bitrate (en kb/s).</translation> + <translation>Establece la máxima Tasa de Bits (en kb/s).</translation> </message> <message> <source>ReplayGain</source> @@ -489,19 +489,19 @@ </message> <message> <source>Bitrate type:</source> - <translation>Tipo de Bitrate:</translation> + <translation>Tipo de tasa de bits:</translation> </message> <message> <source>Bitrate:</source> - <translation>Bitrate:</translation> + <translation>Tasa de Bits:</translation> </message> <message> <source>VBR - variable bitrate</source> - <translation>VBR - bitrate variable</translation> + <translation>VBR - Tasa de bits variable</translation> </message> <message> <source>CBR - constrained bitrate</source> - <translation>CBR - bitrate limitado</translation> + <translation>CBR - Tasa de bits limitada</translation> </message> <message> <source><dt>VBR</dt> @@ -509,16 +509,25 @@ <dt>CBR</dt> <dd>Use constrained variable bitrate encoding. Outputs to a specific bitrate. This mode is analogous to CBR in AAC/MP3 encoders and managed mode in vorbis coders. This delivers less consistent quality than VBR mode but consistent bitrate.</dd></source> - <translation type="unfinished"/> + <translation><dt>VBR</dt> +<dd>Usar la codificación de tasa de bits variable (recomendado). En el modo VBR, la tasa de bits puede subir y bajar libremente dependiendo del contenido asegurando la consistencia de la calidad.</dd> + +<dt>CBR</dt> +<dd>Usar la codificación de tasa de bits limitada. La salida se realiza a una tasa específica de bits. Este modo es similar al de los codificadores CBR en AAC/MP3 y se al modo administrado en el codificador vorbis. Consigue una menor calidad lineal, pero más uniformidad en la tasa de bits..</dd></translation> </message> <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p>
View file
flacon-1.2.0.tar.gz/translations/flacon_es_MX.ts -> flacon-2.0.1.tar.gz/translations/flacon_es_MX.ts
Changed
@@ -66,10 +66,6 @@ <translation>Mejoras en la interfase de usuario</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon es traducido a muchos idiomas gracias al trabajo de los equipos de traducción de alrededor del mundo.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Cuenta de Flacon en github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Rastreador de errores %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Código de página predeterminado:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Pista vía CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Crear pista vía CUE</translation> - </message> - <message> <source>First track pregap:</source> <translation>Primera pista pregap:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Seleccionar un directorio temporal</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Hoja cue por pista</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Crear hoja cue por pista</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -345,28 +345,28 @@ </source> <extracomment>ererere</extracomment> <translation><dt>VBR medio</dt> -<dd>Utilizando Tasa de Bits Variable promedio, esta configuración debería ofrece la transparencia suficiente para la mayoría de las personas y la mayoría de la música.</dd> +<dd>Utilizando Tasa de Bits Variable promedio, esta configuración ofrece la transparencia suficiente para la mayoría de las personas y la mayoría de la música.</dd> <dt>VBR estándar, VBR estándar rápido</dt> <dd>Utilizando Tasa de Bits Variable estándar, esta configuración debería ser en general transparente para la mayoría de las personas y la mayoría de la música y es también bastante alta en calidad.</dd> <dt>VBR extremo, VBR extremo rápido</dt> -<dd>Utilizando la Tasa de Bits más alta posible, esta configuración ofrece casi tan alta calidad como el modo estándar si tienes un oído extremadamente bueno o un equipo de audio de alta gama.</dd> +<dd>Utilizando la Tasa de Bits más alta posible, esta configuración ofrece casi tan alta calidad como el modo estándar si se tiene un oído extremadamente bueno o un equipo de audio de alta gama.</dd> <dt>calidad VBR</dt> -<dd>Esta opción para Tasa de Bits variable te permite especificar la calidad de salida.</dd> +<dd>Esta opción para Tasa de Bits variable le permite especificar la calidad de salida.</dd> <dt>opción rápida</dt> <dd>Habilita el nuevo VBR rápido para un perfil en particular. Esta es la opción recomendada.</dd> <dt>CBR insano</dt> -<dd>Si quieres obtener la más alta calidad sin importar el tamaño del archivo, puedes lograrlo utilizando este modo de Tasa de Bits Constante.</dd> +<dd>Si quiere obtener la más alta calidad sin importar el tamaño del archivo, puede lograrlo utilizando este modo de Tasa de Bits Constante.</dd> <dt>CBR kbps</dt> -<dd>Utilizar esta configuración de Tasa de Bits Constante te dará buena calidad a una tasa de bits específica.</dd> +<dd>Utilizar esta configuración de Tasa de Bits Constante le dará buena calidad a una tasa de bits específica.</dd> <dt>ABR kbps</dt> -<dd>Utilizar esta configuración de Tasa de Bits Promedio te dará por regla general una calidad superior a la opción de Tasa de Bits Constante para una tasa de bits específica.</dd> +<dd>Utilizar esta configuración de Tasa de Bits Promedio le dará por regla general una calidad superior a la opción de Tasa de Bits Constante para una tasa de bits específica.</dd> </translation> </message> <message> @@ -489,19 +489,19 @@ </message> <message> <source>Bitrate type:</source> - <translation type="unfinished"/> + <translation>Tipo de tasa de bits:</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Tasa de bits:</translation> </message> <message> <source>VBR - variable bitrate</source> - <translation type="unfinished"/> + <translation>VBR - tasa de bits variable</translation> </message> <message> <source>CBR - constrained bitrate</source> - <translation type="unfinished"/> + <translation>CBR - tasa de bits limitada</translation> </message> <message> <source><dt>VBR</dt> @@ -509,16 +509,25 @@ <dt>CBR</dt> <dd>Use constrained variable bitrate encoding. Outputs to a specific bitrate. This mode is analogous to CBR in AAC/MP3 encoders and managed mode in vorbis coders. This delivers less consistent quality than VBR mode but consistent bitrate.</dd></source> - <translation type="unfinished"/> + <translation><dt>VBR</dt> +<dd>Utiliza una tasa de bits variable (recomendado). En el modo VBR, la tasa de bits puede ir hacia arriba o abajo libremente dependiendo del contenido, asegurando una calidad consistente.</dd> + +<dt>CBR</dt> +<dd>Utiliza una codificación a una tasa de bits variable restringida. Entregada a una tasa de bits específica. Este modo es análogo a CBR en codificadores AAC/MP3 y el modo gestionado en codificadores vorbis. Este entrega una calidad menos consistente que el modo VBR pero una tasa de bits consistente.</dd></translation> </message> <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> - <translation type="unfinished"/> + <translation>Establece la tasa de bits destino en kb/s ( 6-256 por canal) . +< p> +En el modo VBR, establece una tasa promedio para una amplia y variada colección de audio. +< p> +En el modo CBR, establece la tasa de bits específica de salida. +</translation> </message> </context> <context> @@ -560,22 +569,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Seleccionar disco</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [disco %2]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>El archivo cue contiene información de multiples discos. ¿Cuál disco quiere usar?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Archivo de audio no establecido.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Archivo CUE no establecido.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>El archivo <b>%1</b> no es un archivo CUE válido.</translation> + <source>Cue file not set.</source> + <translation>No se especificó archivo cue.</translation> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>El archivo <b>%1</b> contiene varias etiquetas ARCHIVO.<br> Esos archivos CUE no están soportados aún.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Archivo de audio más corto de lo que se esperaba de la hoja cue.</translation> </message> </context> <context> @@ -596,7 +617,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>No pude leer el archivo %1</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation>No se puede leer el archivo %1</translation> </message> </context> <context> @@ -861,11 +883,6 @@ <translation>Introduzca "género"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment>
View file
flacon-2.0.1.tar.gz/translations/flacon_et.ts
Added
@@ -0,0 +1,1144 @@ +<?xml version="1.0" ?><!DOCTYPE TS><TS language="et" version="2.0"> +<context> + <name>AboutDialog</name> + <message> + <source>About Flacon</source> + <translation type="unfinished"/> + </message> + <message> + <source>About</source> + <translation type="unfinished"/> + </message> + <message> + <source>Author</source> + <translation>Autor</translation> + </message> + <message> + <source>Thanks</source> + <translation type="unfinished"/> + </message> + <message> + <source>Translations</source> + <translation>Tõlked</translation> + </message> + <message> + <source>External programs</source> + <translation type="unfinished"/> + </message> + <message> + <source>Homepage: %1</source> + <translation type="unfinished"/> + </message> + <message> + <source>License: %1</source> + <translation>Litsents: %1</translation> + </message> + <message> + <source>Special thanks to:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon uses external programs. Many thanks to their authors!</source> + <translation type="unfinished"/> + </message> + <message> + <source>Extracts individual tracks from one big audio file containing the entire album.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Copyright: %1-%2 %3</source> + <translation type="unfinished"/> + </message> + <message> + <source>WavPack support patch</source> + <translation type="unfinished"/> + </message> + <message> + <source>Application icon, Packaging</source> + <translation type="unfinished"/> + </message> + <message> + <source>Packaging, testing</source> + <translation type="unfinished"/> + </message> + <message> + <source>Improvements in the UI</source> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon account on github.com</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bug tracker %1</source> + <comment>About dialog, About tab</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>CodePageComboBox</name> + <message> + <source>Auto detect</source> + <comment>Codepage auto detection</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Unicode (UTF-8)</source> + <translation>Unicode (UTF-8)</translation> + </message> + <message> + <source>Unicode (UTF-16LE)</source> + <translation>Unicode (UTF-16LE)</translation> + </message> + <message> + <source>Unicode (UTF-16BE)</source> + <translation>Unicode (UTF-16BE)</translation> + </message> + <message> + <source>Cyrillic (Win-1251)</source> + <translation>Cyrillic (Win-1251)</translation> + </message> + <message> + <source>Cyrillic (CP-866)</source> + <translation>Cyrillic (CP-866)</translation> + </message> + <message> + <source>Latin-1 (ISO-8859-1)</source> + <translation>Latin-1 (ISO-8859-1)</translation> + </message> + <message> + <source>Latin-2 (ISO-8859-2)</source> + <translation>Latin-2 (ISO-8859-2)</translation> + </message> + <message> + <source>Latin-3 (ISO-8859-3)</source> + <translation>Latin-3 (ISO-8859-3)</translation> + </message> + <message> + <source>Latin-4 (ISO-8859-4)</source> + <translation>Latin-4 (ISO-8859-4)</translation> + </message> + <message> + <source>Latin-5 (ISO-8859-5)</source> + <translation>Latin-5 (ISO-8859-5)</translation> + </message> + <message> + <source>Latin-6 (ISO-8859-6)</source> + <translation>Latin-6 (ISO-8859-6)</translation> + </message> + <message> + <source>Latin-7 (ISO-8859-7)</source> + <translation>Latin-7 (ISO-8859-7)</translation> + </message> + <message> + <source>Latin-8 (ISO-8859-8)</source> + <translation>Latin-8 (ISO-8859-8)</translation> + </message> + <message> + <source>Latin-9 (ISO-8859-9)</source> + <translation>Latin-9 (ISO-8859-9)</translation> + </message> + <message> + <source>Latin-10 (ISO-8859-10)</source> + <translation>Latin-10 (ISO-8859-10)</translation> + </message> + <message> + <source>Latin-13 (ISO-8859-13)</source> + <translation>Latin-13 (ISO-8859-13)</translation> + </message> + <message> + <source>Latin-14 (ISO-8859-14)</source> + <translation>Latin-14 (ISO-8859-14)</translation> + </message> + <message> + <source>Latin-15 (ISO-8859-15)</source> + <translation>Latin-15 (ISO-8859-15)</translation> + </message> + <message> + <source>Latin-16 (ISO-8859-16)</source> + <translation>Latin-16 (ISO-8859-16)</translation> + </message> + <message> + <source>Windows 1250</source> + <translation>Windows 1250</translation> + </message> + <message> + <source>Windows 1252</source> + <translation>Windows 1252</translation> + </message> + <message> + <source>Windows 1253</source> + <translation>Windows 1253</translation> + </message> + <message> + <source>Windows 1254</source> + <translation>Windows 1254</translation> + </message> + <message> + <source>Windows 1255</source> + <translation>Windows 1255</translation> + </message> + <message> + <source>Windows 1256</source> + <translation>Windows 1256</translation> + </message> + <message> + <source>Windows 1257</source> + <translation>Windows 1257</translation> + </message> + <message> + <source>Windows 1258</source> + <translation>Windows 1258</translation> + </message> +</context> +<context> + <name>ConfigDialog</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_fr.ts -> flacon-2.0.1.tar.gz/translations/flacon_fr.ts
Changed
@@ -7,7 +7,7 @@ </message> <message> <source>About</source> - <translation>À propos de</translation> + <translation>Détails</translation> </message> <message> <source>Author</source> @@ -63,11 +63,7 @@ </message> <message> <source>Improvements in the UI</source> - <translation>Améliorations de l'interface utilisateur</translation> - </message> - <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon est traduit en plusieurs langues grâce au travail des équipes mondiales de traduction.</translation> + <translation>Améliorations de l'IU</translation> </message> <message> <source>Flacon account on github.com</source> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Gestionnaire de bogues %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon est traduit en plusieurs langues grâce au travail des équipes de traduction Flacon sur <a href='%1'>Transifex</a>.</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -219,27 +219,19 @@ </message> <message> <source>Default codepage:</source> - <translation>Page de code par défaut:</translation> - </message> - <message> - <source>Per track CUE</source> - <translation>Fichier CUE par piste</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Créer un fichier CUE par piste</translation> + <translation>Page de code par défaut :</translation> </message> <message> <source>First track pregap:</source> - <translation>Silence préliminaire de la première piste : </translation> + <translation>Présilence de la première piste : </translation> </message> <message> <source>Rescan</source> - <translation>Balayer de nouveau</translation> + <translation>Rebalayer</translation> </message> <message> <source>Full path of the external applications</source> - <translation>Chemin complet vers les applications externes</translation> + <translation>Chemin complet des applications externes</translation> </message> <message> <source>Extract to separate file</source> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Choisir le répertoire temporaire</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Fichier cue par piste</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Créer un fichier cue par piste</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -282,7 +282,7 @@ </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation>Spécifie le débit binaire cible (en kbit/s).</translation> + <translation>Définit le débit binaire cible (en kbit/s).</translation> </message> </context> <context> @@ -345,28 +345,28 @@ </source> <extracomment>ererere</extracomment> <translation><dt>DBV moyen</dt> -<dd>En utilisant un Débit Binaire Variable moyen, cette présélection devrait fournir une quasi transparence à la plupart des personnes pour la plupart des musiques.</dd> +<dd>En utilisant un Débit Binaire Variable moyen, cette présélection devrait fournir une quasi-transparence à la plupart des personnes pour la plupart des musiques.</dd> <dt>DBV standard, DBV standard rapide</dt> -<dd>En utilisant un Débit Binaire Variable standard, ces présélections devraient être transparentes pour la plupart des personnes et la plupart des musiques, et donnent déjà des résultats de haute qualité.</dd> +<dd>En utilisant un Débit Binaire Variable standard, ces présélections devraient être transparentes pour la plupart des personnes et la plupart des musiques. Elles donnent déjà des résultats de haute qualité.</dd> <dt>DBV extrême, DBV extrême rapide</dt> -<dd>En utilisant le plus haut Débit Binaire Variable possible, ces préselections fournissent une qualité légèrement supérieure au mode standard si tu as une très bonne ouïe et un équipement audio haut de gamme .</dd> +<dd>En utilisant le plus haut Débit Binaire Variable possible, ces présélections fournissent une qualité légèrement supérieure au mode standard si vous avez une très bonne oreille et un équipement audio haut de gamme .</dd> <dt>DBV qualité</dt> -<dd>Cette option à Débit Binaire Variable te permet de choisir le niveau final de qualité.</dd> +<dd>Cette option à Débit Binaire Variable vous permet de choisir la qualité du niveau de sortie.</dd> <dt>option rapide</dt> -<dd>Active la nouvelle option DBV rapide pour un profil donné. Ceci est recommandé.</dd> +<dd>Active la nouvelle option DBV rapide pour un profil donné. Cela est recommandé.</dd> <dt>DBC insensé</dt> -<dd>Si tu dois obtenir la plus haute qualité sans te soucier de la taille du fichier, tu l'obtiendras en utilisant ce Débit Binaire Constant.</dd> +<dd>Si vous devez obtenir la plus haute qualité sans vous soucier de la taille du fichier, vous l'obtiendrez en utilisant ce Débit Binaire Constant.</dd> <dt>DBC kbit/s</dt> -<dd>Cette présélection à Débit Binaire Constant te donnera généralement une bonne qualité pour un débit donné.</dd> +<dd>Cette présélection à Débit Binaire Constant vous donnera généralement une bonne qualité pour un débit donné.</dd> <dt>DBM kbit/s</dt> -<dd>Cette présélection à Débit Binaire Moyen te donnera généralement une meilleure qualité pour un débit donné qu'en utilisant l'option à Débit Binaire Constant.</dd></translation> +<dd>Cette présélection à Débit Binaire Moyen vous donnera généralement une meilleure qualité pour un débit donné qu'en utilisant l'option à Débit Binaire Constant.</dd></translation> </message> <message> <source>Use bitrate</source> @@ -378,7 +378,7 @@ </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation>Spécifie le débit binaire cible (en kbit/s).</translation> + <translation>Définit le débit binaire cible (en kbit/s).</translation> </message> <message> <source>Use quality</source> @@ -453,7 +453,7 @@ </message> <message> <source>Sets minimum bitrate (in kb/s).</source> - <translation>Spécifie le débit binaire minimum (en kbit/s).</translation> + <translation>Définit le débit binaire minimum (en kbit/s).</translation> </message> <message> <source>Nominal bitrate:</source> @@ -461,7 +461,7 @@ </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation>Spécifie le débit binaire cible (en kbit/s).</translation> + <translation>Définit le débit binaire cible (en kbit/s).</translation> </message> <message> <source>Maximum bitrate:</source> @@ -469,7 +469,7 @@ </message> <message> <source>Sets maximum bitrate (in kb/s).</source> - <translation>Spécifie le débit binaire maximum (en kbit/s).</translation> + <translation>Définit le débit binaire maximum (en kbit/s).</translation> </message> <message> <source>ReplayGain</source> @@ -509,24 +509,23 @@ <dt>CBR</dt> <dd>Use constrained variable bitrate encoding. Outputs to a specific bitrate. This mode is analogous to CBR in AAC/MP3 encoders and managed mode in vorbis coders. This delivers less consistent quality than VBR mode but consistent bitrate.</dd></source> <translation><dt>DBV</dt> -<dd>Utiliser un encodage à débit binaire variable (recommandé). En mode DBV, le débit binaire peut fluctuer librement d'après le contenu afin d'assurer une qualité constante.</dd> +<dd>Utiliser un encodage à Débit Binaire Variable (recommandé). En mode DBV, le débit binaire peut fluctuer librement d'après le contenu afin d'assurer une qualité constante.</dd> <dt>DBC</dt> -<dd>Utiliser un encodage à débit variable contraint. Génère un débit binaire spécifique. Ce mode est semblable au mode DBC des encodeurs AAC/MP3 et au mode géré des encodeurs Vorbis. Le qualité n'est pas aussi constante qu'en mode DBV, mais le débit binaire l'est.</dd></translation> +<dd>Utiliser un encodage à Débit Variable Contraint. Génère un débit binaire spécifique. Ce mode est semblable au mode DBC des encodeurs AAC/MP3 et au mode géré des encodeurs Vorbis. Le qualité n'est pas aussi constante qu'en mode DBV, mais le débit binaire l'est.</dd></translation> </message> <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation>Définit le débit binaire cible en kbit/s (6-256 par canal). <p> -En mode DBV, ceci définit le débit moyen pour une grande collection audio diversifiée. +En mode DBV, cela définit le débit moyen pour une grande collection audio diversifiée. <p> -En mode DBC, ceci définit le débit binaire spécifique de sortie. - +En mode DBC, cela définit le débit binaire spécifique de sortie. </translation> </message> </context> @@ -557,11 +556,11 @@ <name>Converter</name> <message> <source>I can't create directory "%1".</source> - <translation>Je ne peux pas créer le répertoire "%1".</translation> + <translation>Je ne peux pas créer le répertoire « %1 ».</translation> </message>
View file
flacon-1.2.0.tar.gz/translations/flacon_gl.ts -> flacon-2.0.1.tar.gz/translations/flacon_gl.ts
Changed
@@ -66,10 +66,6 @@ <translation>Melloras na interface gráfica</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon está traducido a diversos idiomas grazas ao traballo de equipos de tradución de todo o mundo.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation type="unfinished"/> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation type="unfinished"/> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Xogo de caracteres predeterminado:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Por pista CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Crear por pista CUE</translation> - </message> - <message> <source>First track pregap:</source> <translation>Salto inicial para a primeira pista:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Seleccione o directorio temporal</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -514,9 +514,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -560,22 +560,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Non se definiu o ficheiro de audio.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Non se definiu o ficheiro CUE.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>O ficheiro <b>%1</b> non é un ficheiro CUE válido.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>O ficheiro <b>%1</b> contén múltiplas etiquetas FILE.<br>Este tipo de ficheiros CUE aínda non son compatíbeis.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -596,7 +608,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Non se puido ler %1 ficheiro</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -861,11 +874,6 @@ <translation>Inserir o «Xénero»</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Seleccione o ficheiro CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Non se puideron converter algúns álbums porque conteñen erros. @@ -887,11 +895,6 @@ <translation>Todos os ficheiros</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Engadir un ficheiro de audio ou CUE</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Seleccione o ficheiro de audio</translation> @@ -927,7 +930,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -935,7 +938,17 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> <translation type="unfinished"/> </message> </context> @@ -963,43 +976,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>%1 programa</translation> + <source>Select program file</source> + <translation>Seleccionar o ficheiro de programa</translation> </message> <message> - <source>All files</source> - <translation>Todos os ficheiros</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Seleccionar o ficheiro de programa</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Non se puido encontrar o programa <b>%1</b>.</translation> + </message>
View file
flacon-1.2.0.tar.gz/translations/flacon_it.ts -> flacon-2.0.1.tar.gz/translations/flacon_it.ts
Changed
@@ -66,10 +66,6 @@ <translation>Miglioramenti all'interfaccia grafica</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon è tradotto in molte lingue grazie al lavoro dei team di traduzione di tutto il mondo.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Account di Flacon su github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Traccia bug %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Tabella dei codici di base:</translation> </message> <message> - <source>Per track CUE</source> - <translation>CUE per traccia</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Crea CUE per traccia</translation> - </message> - <message> <source>First track pregap:</source> <translation>Pregap della prima traccia:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Seleziona cartella temporanea</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -492,9 +492,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -538,22 +538,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Nessun file audio selezionato.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Nessun file CUE selezionato.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Il file <b>%1</b> non è un formato CUE valido.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Il file <b>%1</b> contiene diversi FILE etichetta. <br> Questi file CUE non sono ancora supportati.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -574,7 +586,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Impossibile leggere %1 file</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -839,11 +852,6 @@ <translation>Inserisci "Genere"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Seleziona un file CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Alcuni album non saranno convertiti, contengono errori. @@ -865,11 +873,6 @@ <translation>Tutti i files</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Aggiungi un file CUE o audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Seleziona un file audio</translation> @@ -921,18 +924,26 @@ Se evidenzi parti di testo che contengono un simbolo tra parentesi graffe, queste sezioni saranno nascoste se il simbolo è vuoto.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>Puoi sfogliare la cartella di destinazione. Puoi altresì selezionarla manualmente. - -Se lasci il percorso vuoto o inizia con il "." (punto), i file risultanti saranno posti nella stessa cartella di origine. </translation> + <translation type="unfinished"/> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Usa "%1"</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -959,43 +970,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>%1 programmma</translation> + <source>Select program file</source> + <translation>Seleziona file</translation> </message> <message> - <source>All files</source> - <translation>Tutti i files</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Seleziona file</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_ja_JP.ts -> flacon-2.0.1.tar.gz/translations/flacon_ja_JP.ts
Changed
@@ -66,10 +66,6 @@ <translation>UIの改善</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon が世界の翻訳ワークにより多くの言語に翻訳されていることに感謝します。</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Flacon account on github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Bug tracker %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>デフォルトコードページ:</translation> </message> <message> - <source>Per track CUE</source> - <translation>トラック毎CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>トラック毎CUE作成</translation> - </message> - <message> <source>First track pregap:</source> <translation>最初のトラック プレギャップ:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>一時ディレクトリを選択</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -491,9 +491,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -537,21 +537,33 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>オーディオファイルがセットされていません。</translation> </message> <message> - <source>CUE file not set.</source> - <translation>CUEファイルがセットされていません。</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>File <b>%1</b> 適切なCUEファイルではありません。</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> + <source>Audio file shorter than expected from cue sheet.</source> <translation type="unfinished"/> </message> </context> @@ -573,7 +585,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>%1ファイルが読めません。</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -836,11 +849,6 @@ <translation>"ジャンル"を挿入</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>CUEファイルを選択</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation type="unfinished"/> @@ -861,11 +869,6 @@ <translation>すべてのファイル</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>CUEまたはオーディオファイルを追加</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>オーディオファイルを選択</translation> @@ -901,7 +904,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -909,8 +912,18 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation> "%1"を使う</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -937,43 +950,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>%1 プログラム</translation> + <source>Select program file</source> + <translation>プログラムファイルを選択</translation> </message> <message> - <source>All files</source> - <translation>全ファイル</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>プログラムファイルを選択</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>プログラムを見つけられません。→ <b>%1</b>.</translation> + </message>
View file
flacon-1.2.0.tar.gz/translations/flacon_lt.ts -> flacon-2.0.1.tar.gz/translations/flacon_lt.ts
Changed
@@ -39,7 +39,7 @@ </message> <message> <source>Flacon uses external programs. Many thanks to their authors!</source> - <translation>Flacon naudoja išorinės programas. Didelis ačiū jų autoriams!</translation> + <translation>Flacon naudoja išorines programas. Didelis ačiū jų autoriams!</translation> </message> <message> <source>Extracts individual tracks from one big audio file containing the entire album.</source> @@ -66,10 +66,6 @@ <translation>Patobulinimai naudotojo sąsajoje</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Visame pasaulyje esančių vertimo komandų dėka, programa Flacon yra verčiama į daugelį kalbų.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Flacon paskyra puslapyje github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Klaidų sekimas %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon vertimo komandų darbo <a href='%1'>Transifex</a> puslapyje dėka, programa Flacon yra verčiama į daugelį kalbų.</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Numatytoji koduotė:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Kiekvieno takelio CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Kurti kiekvieno takelio CUE</translation> - </message> - <message> <source>First track pregap:</source> <translation>Pirmo takelio "pregap":</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Pasirinkite laikiną katalogą</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Kiekvieno takelio cue lapas</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Kurti kiekvieno takelio cue lapą</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -518,9 +518,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation>Nustato galutinį pralaidumą, kb/s (6-256 kiekvienam kanalui). <p> @@ -569,22 +569,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Pasirinkti diską</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ diskas %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>Cue faile yra informacijos apie kelis diskus. Kurį diską norėtumėte naudoti?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Nenustatytas garso failas.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Nenustatytas CUE failas.</translation> + <source>Cue file not set.</source> + <translation>Nenustatytas cue failas.</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Failas <b>%1</b> nėra taisyklingas CUE failas.</translation> - </message> - <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Faile <b>%1</b> yra kelios FILE žymės.<br>Šie CUE failai kol kas yra nepalaikomi.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Garso failas yra trumpesnis nei buvo tikimasi cue lape.</translation> </message> </context> <context> @@ -605,6 +617,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation>Nepavyksta perskaityti failo %1</translation> </message> </context> @@ -870,11 +883,6 @@ <translation>Įterpti "Žanrą"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Pasirinkite CUE failą</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Kai kurie albumai nebus konvertuojami, juose yra klaidų. @@ -896,11 +904,6 @@ <translation>Visi failai</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Pridėti CUE ar garso failą</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Pasirinkite garso failą</translation> @@ -952,7 +955,7 @@ Jeigu teksto sekcijas, kuriose yra ženklai, apsupsite riestiniais skliaustais, tuomet, jei ženklas yra tuščias, tos sekcijos bus paslėptos.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -962,9 +965,19 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> <translation>Naudoti "%1"</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Pasirinkite cue failą</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Pridėti cue ar garso failą</translation> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -990,43 +1003,72 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Pasirinkite programos failą</translation> + </message> + <message> <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation>%1 programa</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Visi failai</translation> </message> - <message> - <source>Select program file</source> - <translation>Pasirinkite programos failą</translation> - </message> </context>
View file
flacon-2.0.1.tar.gz/translations/flacon_nb.desktop
Added
@@ -0,0 +1,18 @@ +[Desktop Entry] +Exec=flacon %U +Icon=flacon +Terminal=false +Type=Application +StartupNotify=true +Categories=Qt;AudioVideo;Audio;AudioVideoEditing; +MimeType=application/x-cue; + +Name=Flacon +GenericName=Audio File Encoder +Comment=Extracts audio tracks from an audio CD image to separate tracks. + + + +# Translations +Icon[nb]=flacon +Name[nb]=Flacon
View file
flacon-2.0.1.tar.gz/translations/flacon_nb.ts
Added
@@ -0,0 +1,1143 @@ +<?xml version="1.0" ?><!DOCTYPE TS><TS language="nb" version="2.0"> +<context> + <name>AboutDialog</name> + <message> + <source>About Flacon</source> + <translation>Om Flacon</translation> + </message> + <message> + <source>About</source> + <translation>Om</translation> + </message> + <message> + <source>Author</source> + <translation>Utvikler</translation> + </message> + <message> + <source>Thanks</source> + <translation>Takk</translation> + </message> + <message> + <source>Translations</source> + <translation>Oversettelser</translation> + </message> + <message> + <source>External programs</source> + <translation>Eksterne programmer</translation> + </message> + <message> + <source>Homepage: %1</source> + <translation>Hjemmeside: %1</translation> + </message> + <message> + <source>License: %1</source> + <translation>Lisens: %1</translation> + </message> + <message> + <source>Special thanks to:</source> + <translation>Spesielt takk til:</translation> + </message> + <message> + <source>Flacon uses external programs. Many thanks to their authors!</source> + <translation>Flacon benytter eksterne programmer. Mange takk til utviklerne av disse!</translation> + </message> + <message> + <source>Extracts individual tracks from one big audio file containing the entire album.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Copyright: %1-%2 %3</source> + <translation>Kopirett: %1-%2 %3</translation> + </message> + <message> + <source>WavPack support patch</source> + <translation type="unfinished"/> + </message> + <message> + <source>Application icon, Packaging</source> + <translation type="unfinished"/> + </message> + <message> + <source>Packaging, testing</source> + <translation type="unfinished"/> + </message> + <message> + <source>Improvements in the UI</source> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon account on github.com</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bug tracker %1</source> + <comment>About dialog, About tab</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>CodePageComboBox</name> + <message> + <source>Auto detect</source> + <comment>Codepage auto detection</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Unicode (UTF-8)</source> + <translation>Unicode (UTF-8)</translation> + </message> + <message> + <source>Unicode (UTF-16LE)</source> + <translation>Unicode (UTF-16LE)</translation> + </message> + <message> + <source>Unicode (UTF-16BE)</source> + <translation>Unicode (UTF-16BE)</translation> + </message> + <message> + <source>Cyrillic (Win-1251)</source> + <translation>Kyrillisk (Win-1251)</translation> + </message> + <message> + <source>Cyrillic (CP-866)</source> + <translation>Kyrillisk (CP-866)</translation> + </message> + <message> + <source>Latin-1 (ISO-8859-1)</source> + <translation>Latin-1 (ISO-8859-1)</translation> + </message> + <message> + <source>Latin-2 (ISO-8859-2)</source> + <translation>Latin-2 (ISO-8859-2)</translation> + </message> + <message> + <source>Latin-3 (ISO-8859-3)</source> + <translation>Latin-3 (ISO-8859-3)</translation> + </message> + <message> + <source>Latin-4 (ISO-8859-4)</source> + <translation>Latin-4 (ISO-8859-4)</translation> + </message> + <message> + <source>Latin-5 (ISO-8859-5)</source> + <translation>Latin-5 (ISO-8859-5)</translation> + </message> + <message> + <source>Latin-6 (ISO-8859-6)</source> + <translation>Latin-6 (ISO-8859-6)</translation> + </message> + <message> + <source>Latin-7 (ISO-8859-7)</source> + <translation>Latin-7 (ISO-8859-7)</translation> + </message> + <message> + <source>Latin-8 (ISO-8859-8)</source> + <translation>Latin-8 (ISO-8859-8)</translation> + </message> + <message> + <source>Latin-9 (ISO-8859-9)</source> + <translation>Latin-9 (ISO-8859-9)</translation> + </message> + <message> + <source>Latin-10 (ISO-8859-10)</source> + <translation>Latin-10 (ISO-8859-10)</translation> + </message> + <message> + <source>Latin-13 (ISO-8859-13)</source> + <translation>Latin-13 (ISO-8859-13)</translation> + </message> + <message> + <source>Latin-14 (ISO-8859-14)</source> + <translation>Latin-14 (ISO-8859-14)</translation> + </message> + <message> + <source>Latin-15 (ISO-8859-15)</source> + <translation>Latin-15 (ISO-8859-15)</translation> + </message> + <message> + <source>Latin-16 (ISO-8859-16)</source> + <translation>Latin-16 (ISO-8859-16)</translation> + </message> + <message> + <source>Windows 1250</source> + <translation>Windows 1250</translation> + </message> + <message> + <source>Windows 1252</source> + <translation>Windows 1252</translation> + </message> + <message> + <source>Windows 1253</source> + <translation>Windows 1253</translation> + </message> + <message> + <source>Windows 1254</source> + <translation>Windows 1254</translation> + </message> + <message> + <source>Windows 1255</source> + <translation>Windows 1255</translation> + </message> + <message> + <source>Windows 1256</source> + <translation>Windows 1256</translation> + </message> + <message> + <source>Windows 1257</source> + <translation>Windows 1257</translation> + </message> + <message> + <source>Windows 1258</source> + <translation>Windows 1258</translation> + </message> +</context> +<context> + <name>ConfigDialog</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_pl.ts -> flacon-2.0.1.tar.gz/translations/flacon_pl.ts
Changed
@@ -66,10 +66,6 @@ <translation>Ulepszenia UI programu</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon jest tłumaczony na wiele języków, dzięki pracy zespołów tłumaczy z całego świata.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Konto "Flacon" na github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Bugtracker %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Domyślna strona kodowa:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Pliki CUE dla ścieżek</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Twórz pliki CUE dla poszczególnych ścieżek</translation> - </message> - <message> <source>First track pregap:</source> <translation>Obszar Pre-Gap pierwszej ścieżki</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Wybierz katalog tymczasowy</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -513,9 +513,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -559,22 +559,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Nie określono pliku audio.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Nie określono pliku CUE.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Plik <b>%1</b> nie jest właściwym plikiem CUE.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Plik <b>%1</b> zawiera kilka tagów FILE. <br>Te pliki CUE nie są jeszcze obsługiwane.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -595,7 +607,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Nie można odczytać pliku %1</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -860,11 +873,6 @@ <translation>Wstaw "Gatunek"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Wybierz plik CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Niektóre albumy nie będą konwertowane, ponieważ zawierają błędy. @@ -886,11 +894,6 @@ <translation>Wszystkie pliki</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Dodaj plik CUE lub plik audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Wybierz plik audio</translation> @@ -942,18 +945,26 @@ Otoczenie części tekstu, zawierającej znacznik, klamrami, spowoduje jej ukrycie, jeżeli dany znacznik będzie pusty.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>Możesz wybrać katalog docelowy albo ręcznie wpisać ścieżkę dostępu. - -Jeżeli nie podano ścieżka dostępu lub zaczyna się ona od "." (kropka), pliki wynikowe zostaną umieszczone w tym samym katalogu, co źródło.</translation> + <translation type="unfinished"/> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Użyj "%1"</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -980,43 +991,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>Program %1</translation> + <source>Select program file</source> + <translation>Wybierz plik programu</translation> </message> <message> - <source>All files</source> - <translation>Wszystkie pliki</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Wybierz plik programu</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_pl_PL.ts -> flacon-2.0.1.tar.gz/translations/flacon_pl_PL.ts
Changed
@@ -66,10 +66,6 @@ <translation>Ulepszenia UI programu.</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon jest tłumaczony na wiele języków, dzięki pracy zespołów tłumaczy z całego świata.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Konto "Flacon" na github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Bugtracker %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Domyślna strona kodowa</translation> </message> <message> - <source>Per track CUE</source> - <translation>Pliki CUE dla ścieżek</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Twórz pliki CUE dla poszczególnych ścieżek</translation> - </message> - <message> <source>First track pregap:</source> <translation>Obszar Pre-Gap pierwszej ścieżki</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Wybierz katalog tymczasowy</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -513,9 +513,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -559,22 +559,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Nie określono pliku audio.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Nie określono pliku CUE.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Plik <b>%1</b> nie jest właściwym plikiem CUE.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Plik <b>%1</b> zawiera kilka tagów FILE. <br>Takie pliki CUE nie są jeszcze obsługiwane.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation type="unfinished"/> </message> </context> <context> @@ -595,7 +607,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Nie można odczytać pliku %1</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -860,11 +873,6 @@ <translation>Wstaw "Gatunek"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Wybierz plik CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Niektóre albumy nie będą konwertowane, ponieważ zawierają błędy. @@ -886,11 +894,6 @@ <translation>Wszystkie pliki</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Dodaj plik CUE lub plik audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Wybierz plik audio</translation> @@ -942,18 +945,26 @@ Otoczenie klamrami części tekstu, zawierającej znacznik, spowoduje jej ukrycie, jeżeli dany znacznik będzie pusty.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>Możesz wybrać katalog docelowy albo ręcznie wpisać ścieżkę dostępu. - -Jeżeli nie podano ścieżka dostępu lub zaczyna się ona od "." (kropka), pliki wynikowe zostaną umieszczone w tym samym katalogu, co źródło.</translation> + <translation type="unfinished"/> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Użyj "%1"</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -980,43 +991,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>Program %1</translation> + <source>Select program file</source> + <translation>Wybierz plik programu</translation> </message> <message> - <source>All files</source> - <translation>Wszystkie pliki</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Wybierz plik programu</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name>
View file
flacon-1.2.0.tar.gz/translations/flacon_pt_BR.ts -> flacon-2.0.1.tar.gz/translations/flacon_pt_BR.ts
Changed
@@ -66,10 +66,6 @@ <translation>Aprimoramentos na interface gráfica.</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon é traduzido em muitos idiomas graças ao trabalho das equipes de tradução ao redor do mundo.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Conta do Flacon no github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Rastreador de erros %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon é traduzido para vários idiomas graças ao trabalho das equipes de tradução do Flacon em <a href='%1'>Transifex</a>.</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Codificação padrão:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Arquivo CUE por faixa</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Criar um arquivo CUE por faixa</translation> - </message> - <message> <source>First track pregap:</source> <translation>Intervalo anterior à primeira faixa:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Selecionar diretório temporário</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Arquivo cue por faixa</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Criar um arquivo cue por faixa</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -518,9 +518,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation>Define a taxa de bits desejada em kb/s (6-256 por canal). <p> @@ -569,22 +569,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Selecione o disco</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ disco %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>O arquivo cue contém informações de vários discos. Qual disco deseja usar?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Arquivo de áudio não indicado.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Arquivo CUE não indicado.</translation> + <source>Cue file not set.</source> + <translation>Arquivo cue não indicado.</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>O arquivo <b>%1</br> não é um arquivo CUE válido.</translation> - </message> - <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>O arquivo <b>%1</b> contém várias etiquetas FILE.<br>Não há suporte ainda a estes arquivos CUE.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Arquivo de áudio menor que o esperado do arquivo cue.</translation> </message> </context> <context> @@ -605,6 +617,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation>Não foi possível ler %1 arquivos</translation> </message> </context> @@ -866,11 +879,6 @@ <translation>Insira o "Gênero"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Selecione o arquivo CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Alguns álbuns não serão convertidos, pois possuem erros. @@ -892,11 +900,6 @@ <translation>Todos os arquivos</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Adicione arquivo CUE ou áudio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Selecionar arquivo de áudio</translation> @@ -948,18 +951,28 @@ Se você estiver entre seções que possuam um token com colchetes, estas seções serão ocultadas caso o token esteja vazio.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>Você pode navegar no diretório de destino. Você também pode digitá-lo manualmente. + <translation>Você pode navegar pelo diretório de destino. Você também pode digitá-lo manualmente. -Se o caminho for deixado em branco ou inicia com "." (ponto), os arquivos resultantes serão colocados no mesmo diretório que a fonte.</translation> +Se o caminho for deixado em branco ou iniciar com "." (ponto), os arquivos resultantes serão colocados no mesmo diretório que a fonte.</translation> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Use "%1"</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation>Usar "%1"</translation> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Selecione o arquivo cue</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Adicione arquivo de áudio ou cue</translation> </message> </context> <context> @@ -986,43 +999,72 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Selecione o arquivo do programa</translation> + </message> + <message> <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation>%1 programa</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Todos os arquivos</translation> </message> - <message> - <source>Select program file</source> - <translation>Selecione o arquivo do programa</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source>
View file
flacon-1.2.0.tar.gz/translations/flacon_pt_PT.ts -> flacon-2.0.1.tar.gz/translations/flacon_pt_PT.ts
Changed
@@ -7,35 +7,35 @@ </message> <message> <source>About</source> - <translation type="unfinished"/> + <translation>Sobre</translation> </message> <message> <source>Author</source> - <translation type="unfinished"/> + <translation>Autor</translation> </message> <message> <source>Thanks</source> - <translation type="unfinished"/> + <translation>Agradecimentos</translation> </message> <message> <source>Translations</source> - <translation type="unfinished"/> + <translation>Traduções</translation> </message> <message> <source>External programs</source> - <translation type="unfinished"/> + <translation>Programas externos</translation> </message> <message> <source>Homepage: %1</source> - <translation type="unfinished"/> + <translation>Sítio: %1</translation> </message> <message> <source>License: %1</source> - <translation type="unfinished"/> + <translation>Licença: %1</translation> </message> <message> <source>Special thanks to:</source> - <translation type="unfinished"/> + <translation>Agradecimentos especiais a:</translation> </message> <message> <source>Flacon uses external programs. Many thanks to their authors!</source> @@ -43,39 +43,39 @@ </message> <message> <source>Extracts individual tracks from one big audio file containing the entire album.</source> - <translation type="unfinished"/> + <translation>Extrai faixas individuais de um único ficheiro áudio que contém o álbum.</translation> </message> <message> <source>Copyright: %1-%2 %3</source> - <translation type="unfinished"/> + <translation>Direitos de autor: %1-%2 %3</translation> </message> <message> <source>WavPack support patch</source> - <translation type="unfinished"/> + <translation>Suporte ao patch do WavPack</translation> </message> <message> <source>Application icon, Packaging</source> - <translation type="unfinished"/> + <translation>Ícone da aplicação, Empacotamento</translation> </message> <message> <source>Packaging, testing</source> - <translation type="unfinished"/> + <translation>Empacotamento, testes</translation> </message> <message> <source>Improvements in the UI</source> - <translation type="unfinished"/> - </message> - <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"/> + <translation>Melhorias à interface do utilizador</translation> </message> <message> <source>Flacon account on github.com</source> - <translation type="unfinished"/> + <translation>Conta do Flacon no github.com</translation> </message> <message> <source>Bug tracker %1</source> <comment>About dialog, About tab</comment> + <translation>Registo de erros: %1</translation> + </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> <translation type="unfinished"/> </message> </context> @@ -84,7 +84,7 @@ <message> <source>Auto detect</source> <comment>Codepage auto detection</comment> - <translation>Auto-detectar</translation> + <translation>Auto detectar</translation> </message> <message> <source>Unicode (UTF-8)</source> @@ -164,101 +164,101 @@ </message> <message> <source>Windows 1250</source> - <translation type="unfinished"/> + <translation>Windows 1250</translation> </message> <message> <source>Windows 1252</source> - <translation type="unfinished"/> + <translation>Windows 1252</translation> </message> <message> <source>Windows 1253</source> - <translation type="unfinished"/> + <translation>Windows 1253</translation> </message> <message> <source>Windows 1254</source> - <translation type="unfinished"/> + <translation>Windows 1254</translation> </message> <message> <source>Windows 1255</source> - <translation type="unfinished"/> + <translation>Windows 1255</translation> </message> <message> <source>Windows 1256</source> - <translation type="unfinished"/> + <translation>Windows 1256</translation> </message> <message> <source>Windows 1257</source> - <translation type="unfinished"/> + <translation>Windows 1257</translation> </message> <message> <source>Windows 1258</source> - <translation type="unfinished"/> + <translation>Windows 1258</translation> </message> </context> <context> <name>ConfigDialog</name> <message> <source>Preferences</source> - <translation type="unfinished"/> + <translation>Preferências</translation> </message> <message> <source>General configuration</source> - <translation type="unfinished"/> + <translation>Configuração geral</translation> </message> <message> <source>Thread count:</source> - <translation type="unfinished"/> + <translation>Número de tarefas:</translation> </message> <message> <source>The number of threads in the conversion process.</source> - <translation type="unfinished"/> + <translation>Número de tarefas no processo conversão.</translation> </message> <message> <source>Temporary directory:</source> - <translation type="unfinished"/> + <translation>Pasta temporária:</translation> </message> <message> <source>Default codepage:</source> - <translation type="unfinished"/> - </message> - <message> - <source>Per track CUE</source> - <translation type="unfinished"/> - </message> - <message> - <source>Create per track CUE</source> - <translation type="unfinished"/> + <translation>Página de código padrão:</translation> </message> <message> <source>First track pregap:</source> - <translation type="unfinished"/> + <translation>Intervalo da primeira faixa:</translation> </message> <message> <source>Rescan</source> - <translation type="unfinished"/> + <translation>Reanalisar</translation> </message> <message> <source>Full path of the external applications</source> - <translation type="unfinished"/>
View file
flacon-1.2.0.tar.gz/translations/flacon_ro_RO.ts -> flacon-2.0.1.tar.gz/translations/flacon_ro_RO.ts
Changed
@@ -59,15 +59,11 @@ </message> <message> <source>Packaging, testing</source> - <translation type="unfinished"/> + <translation>Creare fișiere binare, testare</translation> </message> <message> <source>Improvements in the UI</source> - <translation type="unfinished"/> - </message> - <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"/> + <translation>Îmbunătățiri ale interfeței</translation> </message> <message> <source>Flacon account on github.com</source> @@ -76,7 +72,11 @@ <message> <source>Bug tracker %1</source> <comment>About dialog, About tab</comment> - <translation type="unfinished"/> + <translation>Raportare erori %1</translation> + </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon este tradus în multe limbi datorită echipelor de traducere implicate în proiectul Flacon de pe <a href='%1'>Transifex</a>.</translation> </message> </context> <context> @@ -222,16 +222,8 @@ <translation>Codare implicită caractere:</translation> </message> <message> - <source>Per track CUE</source> - <translation>CUE per pistă</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Creare CUE per pistă</translation> - </message> - <message> <source>First track pregap:</source> - <translation type="unfinished"/> + <translation>Pauză înainte de prima pistă:</translation> </message> <message> <source>Rescan</source> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Alegere director fișiere temporare</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Listă de indexare pentru fiecare track</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Creare listă de indexare pentru fiecare pistă</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -297,11 +297,11 @@ </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>NormalizareSunet</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calculează normalizare sunet:</translation> </message> <message> <source>Disabled</source> @@ -316,7 +316,7 @@ </message> <message> <source>Preset:</source> - <translation type="unfinished"/> + <translation>Preconfigurare:</translation> </message> <message> <source><dt>VBR medium</dt> @@ -344,7 +344,30 @@ <dd>Using this Average BitRate preset will usually give you higher quality than the Constant BitRate option for a specified bitrate.</dd> </source> <extracomment>ererere</extracomment> - <translation type="unfinished"/> + <translation><dt>RBV mediu</dt> +<dd>Această pre-configurare este potrivită de obicei pentru toate tipurile de fișiere audio. .</dd> + +<dt>RBV standard, RBV standard rapid<dt> +<dd>Această pre-configurare este potrivită de obicei pentru toate tipurile de fișiere audio, având deja o calitate destul de bună a sunetului</dd> + +<dt>RBV extremă, RBV extremă rapidă</dt> +<dd>Este nivelul cel mai înalt al RBV, care oferă o calitate puțin mia bună decât configurarea standard, dacă aveți auz extrem de fin sau echipamente audio de înaltă calitate..</dd> + +<dt>Calitate RBV/dt> +<dd>Puteți selectat calitatea RBV dorită a fișierului audio rezultat.</dd> + +<dt>rapid</dt> +<dd>Permite activarea RBV rapidă pentru un profil. (recomandat)</dd> + +<dt>RBF „nebună”</dt> +<dd> utilizați această configurare dacă tot ce vreți este cea mai bună calitate a sunetului și nu vă interesează mărimea fișierului rezultat.</dd> + +<dt>RBF kbps</dt> +<dd>Oferă o calitate a sunetului destul de bună la o rată de biți fixă.</dd> + +<dt>RBM kbps</dt> +<dd>Oferă de obicei o calitate a sunetului mai bună decât opțiunea RBF pentru o rată de biți specificată.</dd> +</translation> </message> <message> <source>Use bitrate</source> @@ -356,11 +379,11 @@ </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Alegeți rata de biți pentru fișierul destinație (în kb/s).</translation> </message> <message> <source>Use quality</source> - <translation type="unfinished"/> + <translation>Utilizați calitatea</translation> </message> <message> <source>Quality:</source> @@ -368,58 +391,58 @@ </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>NormalizareSunet</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calculează normalizare sunet:</translation> </message> <message> <source>VBR medium</source> - <translation type="unfinished"/> + <translation>rată de biți variabilă medie</translation> </message> <message> <source>VBR standard</source> - <translation type="unfinished"/> + <translation>Rată de biți standard</translation> </message> <message> <source>VBR standard fast</source> - <translation type="unfinished"/> + <translation>Rată de biți standard rapidă</translation> </message> <message> <source>VBR extreme</source> - <translation type="unfinished"/> + <translation>Rată de biți extremă</translation> </message> <message> <source>VBR extreme fast</source> - <translation type="unfinished"/> + <translation>RBV extrem de rapidă</translation> </message> <message> <source>VBR quality</source> - <translation>Calitate VBR</translation> + <translation>Calitate RBV</translation> </message> <message> <source>CBR insane</source> - <translation type="unfinished"/> + <translation>RBF nebună</translation> </message> <message> <source>CBR kbps</source> - <translation type="unfinished"/> + <translation>RBF kbps</translation> </message> <message> <source>ABR kbps</source> - <translation type="unfinished"/> + <translation>RBM kbps</translation> </message> </context> <context> <name>ConfigPage_Ogg</name> <message> <source>Ogg encoding configuration</source> - <translation type="unfinished"/> + <translation>Configurare pentru codare ogg</translation> </message> <message> <source>Use quality setting (recommended)</source>
View file
flacon-1.2.0.tar.gz/translations/flacon_ru.ts -> flacon-2.0.1.tar.gz/translations/flacon_ru.ts
Changed
@@ -66,10 +66,6 @@ <translation>Улучшения в интерфейсе</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon переведена на множество языков благодаря работе команды переводчиков по всему миру.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Учетная запись "Flacon" на github.com.</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Баг-трекер %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon переведена на множество языков благодаря работе команды переводчиков на сайте <a href='%1'>Transifex</a>..</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Кодировка по умолчанию:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Потрековый CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Создавать потрековый CUE</translation> - </message> - <message> <source>First track pregap:</source> <translation>Прегап первого трека:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Укажите временную директорию</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Потрековый CUE</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Создавать потрековый CUE</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -517,9 +517,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation>Задает битрейт в kb/s (6-256 на канал). <p> @@ -568,22 +568,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Выберите диск</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ диск %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>CUE содержит несколько дисков. Какой диск Вы хотите использовать?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Не задан аудиофайл.</translation> </message> <message> - <source>CUE file not set.</source> + <source>Cue file not set.</source> <translation>Не задан CUE файл.</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation><b>%1</b> не является правильным CUE файлом.</translation> - </message> - <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Файл <b>%1</b> содержит несколько тегов FILE.<br>Такие файлы пока не поддерживаются.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Длина аудиофайла меньше чем указано в CUE</translation> </message> </context> <context> @@ -603,6 +615,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation>Не получается прочитать "%1"</translation> </message> </context> @@ -867,11 +880,6 @@ <translation>Вставить жанр</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Выбрать CUE файл</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Некоторые альбомы не будут обработаны, потому что содержат ошибки. @@ -893,11 +901,6 @@ <translation>Все файлы</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Добавить CUE или аудиофайл</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Выбрать аудиофайл</translation> @@ -949,7 +952,7 @@ Если Вы окружили часть текста фигурными скобками, то эта часть не будет видна, если значения полей будут пустыми.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -959,9 +962,19 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> <translation>Использовать "%1"</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Выбор CUE файла</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Добавление CUE или аудиофайла</translation> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -987,44 +1000,73 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Укажите файл программы</translation> + </message> + <message> <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation>программа %1</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Все файлы</translation> </message> - <message> - <source>Select program file</source> - <translation>Укажите файл программы</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Не могу найти программу <b>%1</b>.</translation> + </message> + <message> + <source>File <b>%1</b> is not a supported audio file. <br><br>Verify that all required programs are installed and in your preferences.</source> + <translation>Формат аудио файла <b>%1</b> не поддерживается. <br><br>Проверьте что установлены все нужные програмы и они указаны в настройках.</translation>
View file
flacon-1.2.0.tar.gz/translations/flacon_sr.ts -> flacon-2.0.1.tar.gz/translations/flacon_sr.ts
Changed
@@ -66,10 +66,6 @@ <translation>Побољшања сучеља</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Флакон је преведен на многе језике захваљујући раду преводилачких тимова широм света.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Флаконов налог на github.com</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Буболовац: %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Подразумевана кодна страница:</translation> </message> <message> - <source>Per track CUE</source> - <translation>ЦУЕ за сваку нумеру</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Направи ЦУЕ за сваку нумеру</translation> - </message> - <message> <source>First track pregap:</source> <translation>Предпразнина прве нумере:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Изаберите привремену фасциклу</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -491,9 +491,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -537,21 +537,33 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation type="unfinished"/> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Није задат аудио фајл.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Није задат ЦУЕ фајл.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation><b>%1</b> није исправан ЦУЕ фајл.</translation> + <source>Cue file not set.</source> + <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> + <source>Audio file shorter than expected from cue sheet.</source> <translation type="unfinished"/> </message> </context> @@ -573,7 +585,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Не могу да читам фајл %1.</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -834,11 +847,6 @@ <translation>Убци „Жанр“</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Изаберите ЦУЕ фајл</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Неки албуи неће бити претворени јер садрже грешке.\n @@ -860,11 +868,6 @@ <translation>Сви фајлови</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Додај ЦУЕ или аудио фајл</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Изаберите аудио фајл</translation> @@ -900,7 +903,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -908,8 +911,18 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Користи „%1“</translation> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> </message> </context> <context> @@ -936,43 +949,71 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>%1 програм</translation> + <source>Select program file</source> + <translation>Изаберите фајл програма</translation> </message> <message> - <source>All files</source> - <translation>Сви фајлови</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation type="unfinished"/> </message> <message> - <source>Select program file</source> - <translation>Изаберите фајл програма</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Не могу да нађем програм <b>%1</b>.</translation> + </message>
View file
flacon-1.2.0.tar.gz/translations/flacon_tr.ts -> flacon-2.0.1.tar.gz/translations/flacon_tr.ts
Changed
@@ -66,10 +66,6 @@ <translation>Kullanıcı arabirimi iyileştirmeleri</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon çok dil desteği sunar ve çalışmaları için dünya çapında tüm çeviri ekiplerimize teşekkür ederiz.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Flacon github.com hesabı</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Hata izleyicisi %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>Varsayılan kod sayfası:</translation> </message> <message> - <source>Per track CUE</source> - <translation>İz başına işaret</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>İz başına işaret oluştur</translation> - </message> - <message> <source>First track pregap:</source> <translation>İlk izin boşluğu:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Geçici dizini seç</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -491,9 +491,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -537,21 +537,33 @@ </message> </context> <context> - <name>Disk</name> + <name>CueDiskSelectDialog</name> <message> - <source>Audio file not set.</source> + <source>Select disk</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> <translation type="unfinished"/> </message> +</context> +<context> + <name>Disk</name> <message> - <source>CUE file not set.</source> + <source>Audio file not set.</source> <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> + <source>Cue file not set.</source> <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> + <source>Audio file shorter than expected from cue sheet.</source> <translation type="unfinished"/> </message> </context> @@ -570,6 +582,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation type="unfinished"/> </message> </context> @@ -828,11 +841,6 @@ <translation type="unfinished"/> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation type="unfinished"/> @@ -853,11 +861,6 @@ <translation type="unfinished"/> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation type="unfinished"/> @@ -893,7 +896,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -901,7 +904,17 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> <translation type="unfinished"/> </message> </context> @@ -929,42 +942,71 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> + <source>Select program file</source> <translation type="unfinished"/> </message> <message> - <source>All files</source> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation type="unfinished"/> </message> <message> - <source>Select program file</source> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation type="unfinished"/> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation type="unfinished"/> + </message> + <message> + <source>File <b>%1</b> is not a supported audio file. <br><br>Verify that all required programs are installed and in your preferences.</source> + <translation type="unfinished"/> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message>
View file
flacon-1.2.0.tar.gz/translations/flacon_uk.ts -> flacon-2.0.1.tar.gz/translations/flacon_uk.ts
Changed
@@ -43,7 +43,7 @@ </message> <message> <source>Extracts individual tracks from one big audio file containing the entire album.</source> - <translation>Витягує окремі доріжки з одного великого аудіофайлу, який містить увесь альбом повністю.</translation> + <translation>Видобуває окремі доріжки з одного великого аудіофайлу, який містить увесь альбом повністю.</translation> </message> <message> <source>Copyright: %1-%2 %3</source> @@ -66,10 +66,6 @@ <translation>Покращення інтерфейсу.</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon перекладена багатьма мовами завдяки праці команди перекладачів з усього світу.</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Обліковий запис "Flacon" на github.com.</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>Баг-трекер %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon перекладена багатьма мовами завдяки праці команди перекладачів на сайті <a href='%1'>Transifex</a>..</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -108,59 +108,59 @@ </message> <message> <source>Latin-1 (ISO-8859-1)</source> - <translation>Латиниця-1 (ISO-8859-1)</translation> + <translation>Латинка-1 (ISO-8859-1)</translation> </message> <message> <source>Latin-2 (ISO-8859-2)</source> - <translation>Латиниця-2 (ISO-8859-2)</translation> + <translation>Латинка-2 (ISO-8859-2)</translation> </message> <message> <source>Latin-3 (ISO-8859-3)</source> - <translation>Латиниця-3 (ISO-8859-3)</translation> + <translation>Латинка-3 (ISO-8859-3)</translation> </message> <message> <source>Latin-4 (ISO-8859-4)</source> - <translation>Латиниця-4 (ISO-8859-4)</translation> + <translation>Латинка-4 (ISO-8859-4)</translation> </message> <message> <source>Latin-5 (ISO-8859-5)</source> - <translation>Латиниця-5 (ISO-8859-5)</translation> + <translation>Латинка-5 (ISO-8859-5)</translation> </message> <message> <source>Latin-6 (ISO-8859-6)</source> - <translation>Латиниця-6 (ISO-8859-6)</translation> + <translation>Латинка-6 (ISO-8859-6)</translation> </message> <message> <source>Latin-7 (ISO-8859-7)</source> - <translation>Латиниця-7 (ISO-8859-7)</translation> + <translation>Латинка-7 (ISO-8859-7)</translation> </message> <message> <source>Latin-8 (ISO-8859-8)</source> - <translation>Латиниця-8 (ISO-8859-8)</translation> + <translation>Латинка-8 (ISO-8859-8)</translation> </message> <message> <source>Latin-9 (ISO-8859-9)</source> - <translation>Латиниця-9 (ISO-8859-9)</translation> + <translation>Латинка-9 (ISO-8859-9)</translation> </message> <message> <source>Latin-10 (ISO-8859-10)</source> - <translation>Латиниця-10 (ISO-8859-10)</translation> + <translation>Латинка-10 (ISO-8859-10)</translation> </message> <message> <source>Latin-13 (ISO-8859-13)</source> - <translation>Латиниця-13 (ISO-8859-13)</translation> + <translation>Латинка-13 (ISO-8859-13)</translation> </message> <message> <source>Latin-14 (ISO-8859-14)</source> - <translation>Латиниця-14 (ISO-8859-14)</translation> + <translation>Латинка-14 (ISO-8859-14)</translation> </message> <message> <source>Latin-15 (ISO-8859-15)</source> - <translation>Латиниця-15 (ISO-8859-15)</translation> + <translation>Латинка-15 (ISO-8859-15)</translation> </message> <message> <source>Latin-16 (ISO-8859-16)</source> - <translation>Латиниця-16 (ISO-8859-16)</translation> + <translation>Латинка-16 (ISO-8859-16)</translation> </message> <message> <source>Windows 1250</source> @@ -222,14 +222,6 @@ <translation>Типове кодування:</translation> </message> <message> - <source>Per track CUE</source> - <translation>Потрековий CUE</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>Створити потрековий CUE</translation> - </message> - <message> <source>First track pregap:</source> <translation>Прегап першої доріжки:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>Вкажіть тимчасову теку</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>Потрековий CUE</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Створювати потрековий CUE</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -518,12 +518,12 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> - <translation>Вказує бітрейт у kb/s (6-256 на канал). -<p> + <translation>Вказує бітрейт в kb/s (6-256 на канал). + <p> Для режиму VBR це усереднений бітрейт. <p> Для режиму CBR файли будуть мати конкретно цей бітрейт. @@ -569,22 +569,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Оберіть диск</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ диск %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>CUE містить декілька дисків. Який диск Ви волієте використовувати?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Аудіофайл не вказано.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>CUE-файл не вказано.</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation><b>%1</b> не є правильним CUE файлом.</translation> + <source>Cue file not set.</source> + <translation>Не вказаний CUE файл.</translation> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Файл <b>%1</b> містить декілька тегів FILE.<br>Такі файли поки не підтримуються.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Довжина аудіофайлу менша ніж вказано в CUE</translation> </message> </context> <context> @@ -605,7 +617,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>Не вдається прочитати %1 файл</translation>
View file
flacon-1.2.0.tar.gz/translations/flacon_zh_CN.ts -> flacon-2.0.1.tar.gz/translations/flacon_zh_CN.ts
Changed
@@ -66,10 +66,6 @@ <translation>UI的改进</translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation>Flacon在世界各地翻译小组的帮助下有了各种语言的版本。</translation> - </message> - <message> <source>Flacon account on github.com</source> <translation>Flacon 在github.com 的网址</translation> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation>出错的曲目 %1</translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation>Flacon 已被翻译到许多种语言,这要感谢 <a href='%1'>Transifex</a> 上的各 Flacon 翻译小组。</translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation>默认字符编码</translation> </message> <message> - <source>Per track CUE</source> - <translation>每个音轨创建CUE文件</translation> - </message> - <message> - <source>Create per track CUE</source> - <translation>每个音轨创建CUE文件</translation> - </message> - <message> <source>First track pregap:</source> <translation>第一个音轨的片首留白:</translation> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation>选择临时目录</translation> </message> + <message> + <source>Per track cue sheet</source> + <translation>为每个音轨创建 cue 表</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>为每个音轨创建 cue 表</translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -517,9 +517,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation>设置目标码率,单位 kb/s(6-256 每个通道)。 <p> @@ -568,22 +568,34 @@ </message> </context> <context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>选择磁盘</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ 磁盘 %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>该 cue 文件包含多个磁盘的信息。您想使用哪个磁盘?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>未设定音频文件。</translation> </message> <message> - <source>CUE file not set.</source> - <translation>未设定 CUE 文件。</translation> - </message> - <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation> <b>%1</b> n' 不是一个有效的 CUE 文件。</translation> + <source>Cue file not set.</source> + <translation>未设定 Cue 文件。</translation> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation> <b>%1</b> 包含多个文件标签。<br> 这样的 CUE 文件目前不被支持。</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>音频文件比预期的 cue 表短。</translation> </message> </context> <context> @@ -604,7 +616,8 @@ </message> <message> <source>I can't read %1 file</source> - <translation>无法读取 "%1" 文件</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation>我无法读取 "%1" 文件</translation> </message> </context> <context> @@ -868,11 +881,6 @@ <translation>插入 "风格"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>选择 CUE 文件</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>由于包含了错误,部分专辑无法转换。⏎ @@ -894,11 +902,6 @@ <translation>全部文件</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>添加 CUE 或音频文件</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>选择音频文件</translation> @@ -950,19 +953,29 @@ 如果将标记包含在括号中, 如果标记所指内容为空, 曲目名称中这些部分会被省略.</translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> - <translation>可以通过文件浏览器设定目录, 也可手动输入. ⏎ -⏎ -如果路径为空或以点号开始 "." (英文标点句号), 输出文件将被放置在与输入文件相同的目录里(相对路径).</translation> + <translation>您可以浏览来选择目标目录,也可手动输入。 + +如果路径为空或以点开始 "." (英文标点句号),输出文件将被放置在与输入文件相同的目录里(相对路径)。</translation> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> <translation>使用“%1”</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>选择 cue 文件</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>添加 cue 或音频文件</translation> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -988,43 +1001,72 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation>1% 程序</translation> + <source>Select program file</source> + <translation>选择程序文件</translation> </message> <message> - <source>All files</source> - <translation>全部文件</translation> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation>%1 程序</translation> </message> <message> - <source>Select program file</source> - <translation>选择程序文件</translation> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation>所有文件</translation> </message> </context>
View file
flacon-1.2.0.tar.gz/translations/flacon_zh_TW.ts -> flacon-2.0.1.tar.gz/translations/flacon_zh_TW.ts
Changed
@@ -66,10 +66,6 @@ <translation type="unfinished"/> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"/> - </message> - <message> <source>Flacon account on github.com</source> <translation type="unfinished"/> </message> @@ -78,6 +74,10 @@ <comment>About dialog, About tab</comment> <translation type="unfinished"/> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"/> + </message> </context> <context> <name>CodePageComboBox</name> @@ -222,14 +222,6 @@ <translation type="unfinished"/> </message> <message> - <source>Per track CUE</source> - <translation type="unfinished"/> - </message> - <message> - <source>Create per track CUE</source> - <translation type="unfinished"/> - </message> - <message> <source>First track pregap:</source> <translation type="unfinished"/> </message> @@ -261,6 +253,14 @@ <source>Select temporary directory</source> <translation type="unfinished"/> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"/> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"/> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -491,9 +491,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"/> </message> @@ -537,21 +537,33 @@ </message> </context> <context> - <name>Disk</name> + <name>CueDiskSelectDialog</name> <message> - <source>Audio file not set.</source> + <source>Select disk</source> <translation type="unfinished"/> </message> <message> - <source>CUE file not set.</source> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> <translation type="unfinished"/> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> <translation type="unfinished"/> </message> +</context> +<context> + <name>Disk</name> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> + <source>Audio file not set.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Cue file not set.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Audio file shorter than expected from cue sheet.</source> <translation type="unfinished"/> </message> </context> @@ -570,6 +582,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation type="unfinished"/> </message> </context> @@ -832,11 +845,6 @@ <translation type="unfinished"/> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation type="unfinished"/> @@ -857,11 +865,6 @@ <translation type="unfinished"/> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation type="unfinished"/> @@ -897,7 +900,7 @@ <translation type="unfinished"/> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -905,7 +908,17 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> <translation type="unfinished"/> </message> </context> @@ -933,42 +946,71 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> + <source>Select program file</source> <translation type="unfinished"/> </message> <message> - <source>All files</source> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation type="unfinished"/> </message> <message> - <source>Select program file</source> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation type="unfinished"/> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation type="unfinished"/> + </message> + <message> + <source>File <b>%1</b> is not a supported audio file. <br><br>Verify that all required programs are installed and in your preferences.</source> + <translation type="unfinished"/> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message>
View file
flacon-1.2.0.tar.gz/translations/src.flacon.ts -> flacon-2.0.1.tar.gz/translations/src.flacon.ts
Changed
@@ -68,10 +68,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Flacon is translated into many languages thanks to the work of the translation teams all over the world.</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Flacon account on github.com</source> <translation type="unfinished"></translation> </message> @@ -80,6 +76,10 @@ <comment>About dialog, About tab</comment> <translation type="unfinished"></translation> </message> + <message> + <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on <a href='%1'>Transifex</a>.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>CodePageComboBox</name> @@ -224,14 +224,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Per track CUE</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Create per track CUE</source> - <translation type="unfinished"></translation> - </message> - <message> <source>First track pregap:</source> <translation type="unfinished"></translation> </message> @@ -263,6 +255,14 @@ <source>Select temporary directory</source> <translation type="unfinished"></translation> </message> + <message> + <source>Per track cue sheet</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>ConfigPage_Aac</name> @@ -493,9 +493,9 @@ <message> <source>Sets the target bitrate in kb/s (6-256 per channel). <p> -In VBR mode this set the average rate for a large and diverse collection of audio. +In VBR mode, this sets the average rate for a large and diverse collection of audio. <p> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> <translation type="unfinished"></translation> </message> @@ -539,21 +539,33 @@ </message> </context> <context> - <name>Disk</name> + <name>CueDiskSelectDialog</name> <message> - <source>Audio file not set.</source> + <source>Select disk</source> <translation type="unfinished"></translation> </message> <message> - <source>CUE file not set.</source> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> <translation type="unfinished"></translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> <translation type="unfinished"></translation> </message> +</context> +<context> + <name>Disk</name> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> + <source>Audio file not set.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cue file not set.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Audio file shorter than expected from cue sheet.</source> <translation type="unfinished"></translation> </message> </context> @@ -572,6 +584,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation type="unfinished"></translation> </message> </context> @@ -830,11 +843,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"></translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation type="unfinished"></translation> @@ -855,11 +863,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"></translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation type="unfinished"></translation> @@ -895,7 +898,7 @@ <translation type="unfinished"></translation> </message> <message> - <source>You can browse to the destination directory. You can also input it manually. + <source>You can browse to the destination directory. You can also input it manually. If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source> <comment>Main form tooltip for "Directory" edit</comment> @@ -903,7 +906,17 @@ </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> <translation type="unfinished"></translation> </message> </context> @@ -931,42 +944,71 @@ <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> + <source>Select program file</source> <translation type="unfinished"></translation> </message> <message> - <source>All files</source> + <source>%1 program</source> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> <translation type="unfinished"></translation> </message> <message> - <source>Select program file</source> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation type="unfinished"></translation> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>File <b>%1</b> is not a supported audio file. <br><br>Verify that all required programs are installed and in your preferences.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"></translation> + </message> <message>
View file
flacon-1.2.0.tar.gz/translations/translators_es_MX.info -> flacon-2.0.1.tar.gz/translations/translators_es_MX.info
Changed
@@ -3,7 +3,7 @@ translator_1_nameEnglish = Wilvert Valdez translator_1_nameNative = Wilvert Valdez -translator_1_contact = ranmaru.hibikiya@gmail.com +translator_1_contact = ranmaru.hibikiya@openmailbox.org translator_2_nameEnglish = - translator_2_nameNative = -
View file
flacon-1.2.0.tar.gz/translations/translators_fr.info -> flacon-2.0.1.tar.gz/translations/translators_fr.info
Changed
@@ -1,7 +1,7 @@ _help = - -translator_1_nameEnglish = AO Breysse +translator_1_nameEnglish = yahoe.001 translator_1_nameNative = - translator_1_contact = https://www.transifex.com/accounts/profile/yahoe.001/
View file
flacon-2.0.1.tar.gz/translations/translators_nb.info
Added
@@ -0,0 +1,14 @@ +_help = Don't translate this text, it is only help. I want to thank you in the "About" dialog. So, please fill the following information about yourself. The number does not matter, all the names will be displayed in alphabetical order. + + +translator_1_nameEnglish = Translator 1. Harald H. +translator_1_nameNative = Translator 1. Harald H. +translator_1_contact = Translator 1. haarektrans@gmail.com + +translator_2_nameEnglish = Translator 2. Your name in English. +translator_2_nameNative = Translator 2. Your name in the native language. +translator_2_contact = Translator 2. Contact information, email or web site address. + +translator_3_nameEnglish = Translator 3. Your name in English. +translator_3_nameNative = Translator 3. Your name in the native language. +translator_3_contact = Translator 3. Contact information, email or web site address.
View file
flacon-1.2.0.tar.gz/translations/translators_pt_PT.info -> flacon-2.0.1.tar.gz/translations/translators_pt_PT.info
Changed
@@ -5,9 +5,9 @@ translator_1_nameNative = André Rendeiro translator_1_contact = afrendeiro@gmail.com -translator_2_nameEnglish = - -translator_2_nameNative = - -translator_2_contact = - +translator_2_nameEnglish = Joaquim Pedro Quental +translator_2_nameNative = Joaquim Pedro Quental +translator_2_contact = jotapequental@gmail.com translator_3_nameEnglish = - translator_3_nameNative = -
View file
flacon-1.2.0.tar.gz/translations/translators_ro_RO.info -> flacon-2.0.1.tar.gz/translations/translators_ro_RO.info
Changed
@@ -1,9 +1,9 @@ _help = Don't translate this text, it is only help. I want to thank you in the "About" dialog. So, please fill the following information about yourself. The number does not matter, all the names will be displayed in alphabetical order. -translator_1_nameEnglish = Translator 1. Vlad Paul Paval -translator_1_nameNative = Translator 1. Vlad Paul Paval -translator_1_contact = Translator 1. wladpaul@yahoo.com +translator_1_nameEnglish = Traducător 1. Vlad Paul Paval +translator_1_nameNative = Traducător 1. Vlad Paul Paval +translator_1_contact = Traducător 1. wladpaul@yahoo.com translator_2_nameEnglish = Translator 2. Your name in English. translator_2_nameNative = Translator 2. Your name in the native language.
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.