Projects
Multimedia
flacon
Sign Up
Log In
Username
Password
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; + } + + QFile file(fi.canonicalFilePath()); + if (!file.open(QIODevice::ReadOnly)) + { + mErrorString = file.errorString(); + return; + } + + // Detect codepage and skip BOM ............. + QByteArray magic = file.read(3); + int seek = 0; + if (magic.startsWith("\xEF\xBB\xBF")) + { + mCodecName = "UTF-8"; + seek = 3; + } + + else if (magic.startsWith("\xFE\xFF")) + { + mCodecName = "UTF-16BE"; + seek = 2; + } + + else if (magic.startsWith("\xFF\xFE")) + { + mCodecName = "UTF-16LE"; + seek = 2; + } + + file.seek(seek); + // Detect codepage and skip BOM ............. + + + mValid = parse(file); + file.close(); + + if (mDisks.isEmpty()) + { + mValid = false; + mErrorString = QObject::tr("<b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.").arg(mFileName); + } + + int startTrackNum = 1; + for (int i=0; i<mDisks.count(); ++i) + { + if (disk(i).tracksCount() == 0) + { + mValid = false; + mErrorString = QObject::tr("<b>%1</b> is not a valid cue file. Disk %2 has no tags.").arg(mFileName).arg(i); + break; + } + + mDisks[i].setDiskTag(START_TRACK_NUM, QString("%1").arg(startTrackNum).toLatin1()); + startTrackNum += disk(i).tracksCount(); + } +} + + +/************************************************ + + ************************************************/ +QByteArray leftPart(const QByteArray &line, const QChar separator) +{ + int n = line.indexOf(separator); + if (n > -1) + return line.left(n); + else + return line; +} + + +/************************************************ + + ************************************************/ +QByteArray rightPart(const QByteArray &line, const QChar separator) +{ + int n = line.indexOf(separator); + if (n > -1) + return line.right(line.length() - n - 1); + else + return QByteArray(); +} + + +/************************************************ + + ************************************************/ +void parseLine(const QByteArray &line, CueTagId &tag, QByteArray &value) +{ + QByteArray l = line.trimmed(); + + if (l.isEmpty()) + tag = CTAG_UNKNOWN; + + + QByteArray tagStr = leftPart(l, ' ').toUpper(); + value = rightPart(l, ' ').trimmed(); + + + if (tagStr == "REM") + { + tagStr = leftPart(value, ' ').toUpper(); + value = rightPart(value, ' ').trimmed(); + } + + value = unQuote(value); + + //============================= + if (tagStr == "FILE") tag = CTAG_FILE; + else if (tagStr == "TRACK") tag = CTAG_TRACK; + else if (tagStr == "INDEX") tag = CTAG_INDEX; + else if (tagStr == "DISCID") tag = CTAG_DISCID; + else if (tagStr == "CATALOG") tag = CTAG_CATALOG; + else if (tagStr == "CDTEXTFILE") tag = CTAG_CDTEXTFILE; + else if (tagStr == "TITLE") tag = CTAG_TITLE; + else if (tagStr == "COMMENT") tag = CTAG_COMMENT; + else if (tagStr == "DATE") tag = CTAG_DATE; + else if (tagStr == "FLAGS") tag = CTAG_FLAGS; + else if (tagStr == "GENRE") tag = CTAG_GENRE; + else if (tagStr == "ISRC") tag = CTAG_ISRC; + else if (tagStr == "PERFORMER") tag = CTAG_PERFORMER; + else if (tagStr == "SONGWRITER") tag = CTAG_SONGWRITER; + else tag = CTAG_UNKNOWN; +} + + +/************************************************ + + ************************************************/ +QByteArray extractFileFromFileTag(const QByteArray &value) +{ + int n = value.lastIndexOf(' '); + if (n>-1) + return unQuote(value.left(n)); + + return unQuote(value); +} + + +/************************************************ + Complete cue sheet syntax documentation + http://digitalx.org/cue-sheet/syntax/ + ************************************************/ +bool CueReader::parse(QFile &file) +{ + CueTagId tag; + QByteArray value; + QFileInfo cueFileInfo = QFileInfo(mFileName); + + int diskNum = -1; + while (!file.atEnd()) + { + parseLine(file.readLine(), tag, value); + + switch (tag) + { + case CTAG_FILE: + { + diskNum++; + + CueTagSet tags(cueFileInfo.canonicalFilePath() + QString(" [%1]").arg(diskNum)); + if (!mCodecName.isEmpty()) + tags.setTextCodecName(mCodecName); + tags.setDiskTag(TAG_CUE_FILE, mFileName); + tags.setDiskTag(TAG_FILE, extractFileFromFileTag(value), false); + tags.setDiskTag(TAG_DISKNUM, QString("%1").arg(diskNum).toLatin1(), true); + tags.setDiskTag(TAG_DISCID, mDiskId, true); + tags.setDiskTag(TAG_CATALOG, mCatalog, false); + tags.setDiskTag(TAG_CDTEXTFILE, mCdTextFile, false); + + bool ok = parseOneDiskTags(file, &tags); + if (!ok) + return false; + + mDisks << tags; + } + break; + + case CTAG_DISCID: mDiskId = value; break; + case CTAG_CATALOG: mCatalog = value; break; + case CTAG_CDTEXTFILE: mCdTextFile = value; break; + case CTAG_TITLE: mAlbum = value; break; + case CTAG_COMMENT: mComment = value; break; + case CTAG_DATE: mDate = value; break; + case CTAG_GENRE: mGenre = value; break; + case CTAG_PERFORMER: mPerformer = value; break; + case CTAG_SONGWRITER: mSongwriter = value; break; + + case CTAG_FLAGS: + case CTAG_ISRC: + case CTAG_UNKNOWN: + case CTAG_TRACK: + case CTAG_INDEX: + break; + } + } + + for (int i=0; i< mDisks.count(); ++i) + { + CueTagSet &tags = mDisks[i]; + if (mDisks.count() == 1) + { + tags.setTitle(cueFileInfo.fileName()); + } + else + { + tags.setTitle(cueFileInfo.fileName() + QObject::tr(" [disk %1]").arg(i + 1)); + tags.setDiskTag("MULTI_FILE", "1"); + } + } + + return true; +} + + +/************************************************ + Complete cue sheet syntax documentation + http://digitalx.org/cue-sheet/syntax/ + ************************************************/ +bool CueReader::parseOneDiskTags(QFile &file, CueTagSet *tags) +{ + int trackIdx = -1; + CueTagId tag; + QByteArray value; + + while (!file.atEnd()) + { + qint64 pos = file.pos(); + QByteArray line = file.readLine(); + parseLine(line, tag, value); + + // Common tags .......................... + switch (tag) + { + case CTAG_FILE: + file.seek(pos); + return true; + + case CTAG_TRACK: + trackIdx++; + tags->setTrackTag(trackIdx, TAG_PERFORMER, mPerformer, false); + tags->setTrackTag(trackIdx, TAG_ALBUM, mAlbum, false); + tags->setTrackTag(trackIdx, TAG_GENRE, mGenre, false); + tags->setTrackTag(trackIdx, TAG_DATE, mDate, false); + tags->setTrackTag(trackIdx, TAG_COMMENT, mComment, false); + tags->setTrackTag(trackIdx, TAG_SONGWRITER, mSongwriter, false); + continue; + break; + + default: + break; + } + + + // Per track tags ....................... + if (trackIdx < 0) + { + qWarning() << "Unexpected tag in line" << line << ", file: " << mFileName << " pos: " << pos; + continue; + } + + switch (tag) + { + + case CTAG_INDEX: + { + bool ok; + int num = leftPart(value, ' ').toInt(&ok); + if (!ok) + { + mErrorString = QObject::tr("<b>%1</b> is not a valid cue file. Incorrect track index at %2.", "Cue parser error. %2 is file position").arg(mFileName).arg(pos); + return false; + } + + if (num < 0 || num > 99) + { + mErrorString = QObject::tr("<b>%1</b> is not a valid cue file. Incorrect track index at %2.", "Cue parser error. %2 is file position").arg(mFileName).arg(pos); + return false; + } + + tags->setTrackTag(trackIdx, cueIndexTagKey(num), rightPart(value, ' ')); + } + break; + + case CTAG_DISCID: tags->setDiskTag(TAG_DISCID, value, true); break; + case CTAG_CATALOG: tags->setDiskTag(TAG_CATALOG, value, true); break; + case CTAG_CDTEXTFILE: tags->setDiskTag(TAG_CDTEXTFILE, value, true); break; + + case CTAG_TITLE: tags->setTrackTag(trackIdx, TAG_TITLE, value, false); break; + case CTAG_COMMENT: tags->setTrackTag(trackIdx, TAG_COMMENT, value, false); break; + case CTAG_DATE: tags->setTrackTag(trackIdx, TAG_DATE, value, false); break; + case CTAG_GENRE: tags->setTrackTag(trackIdx, TAG_GENRE, value, false); break; + case CTAG_PERFORMER: tags->setTrackTag(trackIdx, TAG_PERFORMER, value, false); break; + case CTAG_SONGWRITER: tags->setTrackTag(trackIdx, TAG_SONGWRITER, value, false); break; + case CTAG_ISRC: tags->setTrackTag(trackIdx, TAG_ISRC, value, true); break; + case CTAG_FLAGS: tags->setTrackTag(trackIdx, TAG_FLAGS, value, true); break; + + case CTAG_FILE: + case CTAG_TRACK: + case CTAG_UNKNOWN: + break; + } + } + + return true; +} + + +/************************************************ + + ************************************************/ +CueTagSet::CueTagSet(const QString &uri): + TagSet(uri) +{ +} + + +/************************************************ + + ************************************************/ +CueTagSet::CueTagSet(const CueTagSet &other): + TagSet(other) +{ +} + + +/************************************************ + + ************************************************/ +QString CueTagSet::cueFileName() const +{ + return diskTag(TAG_CUE_FILE); +} + + +/************************************************ + + ************************************************/ +QString CueTagSet::fileTag() const +{ + return diskTag(TAG_FILE); +} + + +/************************************************ + + ************************************************/ +CueIndex CueTagSet::index(int track, int indexNum) const +{ + return CueIndex(trackTag(track, cueIndexTagKey(indexNum))); +} + + +/************************************************ + + ************************************************/ +bool CueTagSet::isMultiFileCue() const +{ + return (diskTag("MULTI_FILE") != ""); +} + + +/************************************************ + + ************************************************/ +int CueTagSet::diskNumInCue() const +{ + return diskTag(TAG_DISKNUM).toInt(); +} + +
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 @@ { bool res = true; QStringList msg; + if (!mAudioFile || !mAudioFile->isValid()) { msg << tr("Audio file not set."); @@ -479,10 +396,24 @@ if (count() < 1) { - msg << tr("CUE file not set."); + msg << tr("Cue file not set."); res = false; } + if (res) + { + uint duration = 0; + for (int i=0; i<mTracks.count()-1; ++i) + duration += track(i)->duration(); + + if (mAudioFile->duration() <= duration) + { + msg << tr("Audio file shorter than expected from cue sheet."); + res = false; + } + + } + if (description) *description = msg.join("\n"); @@ -535,282 +466,78 @@ /************************************************ ************************************************/ -void Disk::loadFromCue(const QString &cueFile, bool activate) +void Disk::loadFromCue(const CueTagSet &cueTags, bool activate) { - mErrorString.clear(); - mCount = 0; + mCount = cueTags.tracksCount(); + mCueFile = cueTags.cueFileName(); - QFileInfo fi(cueFile); - TagSet *tags = new TagSet(fi.canonicalFilePath()); - tags->setTitle(fi.fileName()); + for (int i=mTracks.count(); i<mCount; ++i) + mTracks.append(new Track(this, i)); - QFile file(fi.canonicalFilePath()); - if (!file.open(QIODevice::ReadOnly)) - { - mErrorString = file.errorString(); - } - - int seek = 0; - QByteArray magic = file.read(3); + while (mTracks.count() > mCount) + mTracks.takeLast()->deleteLater(); - if (magic.startsWith("\xEF\xBB\xBF")) + for (int t=0; t<cueTags.tracksCount(); ++t) { - tags->setTextCodecName("UTF-8"); - seek = 3; + for (int idx=0; idx<100; ++idx) + mTracks[t]->setCueIndex(idx, cueTags.index(t, idx)); } - else if (magic.startsWith("\xFE\xFF")) - { - tags->setTextCodecName("UTF-16BE"); - seek = 2; - } - - else if (magic.startsWith("\xFF\xFE")) - { - tags->setTextCodecName("UTF-16LE"); - seek = 2; - } - - file.seek(seek); - mValid = parseCue(file, tags); - file.close(); + if (mTagSets.isEmpty()) + mTagSets << 0; + else + delete mTagSets.first(); - if (!mValid) - { - delete tags; - return; - } + mTagSets[0] = new TagSet(cueTags); + setStartTrackNum(cueTags.diskTag(START_TRACK_NUM).toInt()); - if (mCueTags) - { - mTagSets.removeAll(mCueTags); - delete mCueTags; - } + if (!mAudioFile) + findAudioFile(cueTags); - mCueFile = cueFile; - mCueTags = tags; - mTagSets.append(tags); - if (!mTags || activate) + if (activate || !mTags) { - mTags = mCueTags; + mTags = mTagSets.first(); project->emitLayoutChanged(); } - -} - -/************************************************ - - ************************************************/ -QByteArray leftPart(const QByteArray &line, const QChar separator) -{ - int n = line.indexOf(separator); - if (n > -1) - return line.left(n); - else - return line; } /************************************************ ************************************************/ -QByteArray rightPart(const QByteArray &line, const QChar separator) +QFileInfoList matchedAudioFiles(const CueTagSet &cueTags, const QFileInfoList &audioFiles) { - int n = line.indexOf(separator); - if (n > -1) - return line.right(line.length() - n - 1); - else - return QByteArray(); -} - + QFileInfoList res; + QFileInfo cueFile(cueTags.cueFileName()); -/************************************************ - Complete cue sheet syntax documentation - http://digitalx.org/cue-sheet/syntax/ - ************************************************/ -bool Disk::parseCue(QFile &file, TagSet *tags) -{ - Track *track = 0; - int trackIdx = -1; - QByteArray performer; - QByteArray album; - QByteArray genre; - QByteArray date; - QByteArray comment; - QByteArray songwriter; - - while (!file.atEnd()) + QStringList patterns; + if (!cueTags.isMultiFileCue()) { + patterns << QFileInfo(cueTags.diskTag("FILE")).completeBaseName(); + patterns << QString("%1.*").arg(cueFile.completeBaseName()); + } + else + { + patterns << QFileInfo(cueTags.diskTag("FILE")).completeBaseName(); + patterns << cueFile.completeBaseName() + QString("(.*\\D)?" "0*" "%1" "(.*\\D)?").arg(cueTags.diskNumInCue() + 1); + patterns << QString(".*" "(disk|disc|side)" "(.*\\D)?" "0*" "%1" "(.*\\D)?").arg(cueTags.diskNumInCue() + 1); + } - QByteArray line = file.readLine().trimmed(); - - if (line.isEmpty()) - continue; - - QByteArray tag = leftPart(line, ' ').toUpper(); - QByteArray value = rightPart(line, ' ').trimmed(); - - - if (tag == "REM") - { - tag = leftPart(value, ' ').toUpper(); - value = rightPart(value, ' ').trimmed(); - } - - if (value.length() > 2 && (value.at(0) == '"' || value.at(0) == '\'')) - value = value.mid(1, value.length() - 2); - - - //============================= - if (tag == "TRACK") - { - bool ok; - leftPart(value, ' ').toInt(&ok); - if (!ok) - { - mErrorString = tr("File <b>%1</b> is not a valid CUE file.").arg(file.fileName()); - return false; - } - - trackIdx++; - - if (trackIdx < mTracks.count()) - { - track = mTracks.at(trackIdx); - } - else - { - track = new Track(this, trackIdx); - mTracks.append(track); - } - - tags->setTrackTag(trackIdx, TAG_PERFORMER, performer, false); - tags->setTrackTag(trackIdx, TAG_ALBUM, album, false); - tags->setTrackTag(trackIdx, TAG_GENRE, genre, false); - tags->setTrackTag(trackIdx, TAG_DATE, date, false); - tags->setTrackTag(trackIdx, TAG_COMMENT, comment, false); - tags->setTrackTag(trackIdx, TAG_SONGWRITER, songwriter, false); - } - - //============================= - else if (tag == "INDEX") - { - if (track) - { - bool ok; - int num = leftPart(value, ' ').toInt(&ok); - if (!ok) - { - mErrorString = tr("File <b>%1</b> is not a valid CUE file.").arg(file.fileName()); - return false; - } - - QString time = rightPart(value, ' '); - track->setCueIndex(num, CueIndex(time)); - } - } - - //============================= - else if (tag == "DISCID") - { - tags->setDiskTag(TAG_DISCID, value, true); - } - - //============================= - else if (tag == "TITLE") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_TITLE, value, false); - else - album = value; - } - - //============================= - else if (tag == "CATALOG") - { - tags->setDiskTag(TAG_CATALOG, value, false); - } - - //============================= - else if (tag == "CDTEXTFILE") - { - tags->setDiskTag(TAG_CDTEXTFILE, value, false); - } - - //============================= - else if (tag == "COMMENT") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_COMMENT, value, false); - else - comment = value; - } - - //============================= - else if (tag == "DATE") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_DATE, value, false); - else - date = value; - } - - //============================= - else if (tag == "FLAGS") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_FLAGS, value, true); - } - - //============================= - else if (tag == "GENRE") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_GENRE, value, false); - else - genre = value; - } - - //============================= - else if (tag == "ISRC") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_ISRC, value, true); - } - - //============================= - else if (tag == "PERFORMER") - { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_PERFORMER, value, false); - else - performer = value; - } + QString audioExt; + foreach (InputAudioFormat format, InputAudioFormat::allFormats()) + audioExt += (audioExt.isEmpty() ? "\\." : "|\\.") + format.ext(); - //============================= - else if (tag == "SONGWRITER") + foreach (const QString &pattern, patterns) + { + QRegExp re(QString("%1(%2)+").arg(pattern).arg(audioExt), Qt::CaseInsensitive, QRegExp::RegExp2); + foreach (const QFileInfo &audio, audioFiles) { - if (trackIdx > -1) - tags->setTrackTag(trackIdx, TAG_SONGWRITER, value, false); - else - songwriter = value; - } - - //============================= - else if (tag == "FILE") - { - if (trackIdx > -1) - { - mErrorString = tr("File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.").arg(tags->uri()); - return false; - } - else - tags->setDiskTag(TAG_FILE, value, false); + if (re.exactMatch(audio.fileName())) + res << audio; } } - mCount = trackIdx + 1; - return true; + return res; } @@ -822,18 +549,33 @@ if (!mAudioFile) return; - QStringList exts; - exts << "*.cue"; + QFileInfo audio(mAudioFile->fileName()); + QList<CueReader> cueReaders; + QFileInfoList files = audio.dir().entryInfoList(QStringList() << "*.cue", QDir::Files | QDir::Readable); + foreach(QFileInfo f, files) + { + CueReader c(f.absoluteFilePath()); + if (c.isValid()) + cueReaders << c; + } - QFileInfo fi(mAudioFile->fileName()); - QString pattern = fi.completeBaseName(); + if (cueReaders.count() && cueReaders.first().diskCount() == 1) + { + loadFromCue(cueReaders.first().disk(0), true); + return; + } - QFileInfoList files = fi.dir().entryInfoList(exts, QDir::Files | QDir::Readable); - foreach(QFileInfo f, files) + foreach (const CueReader &cue, cueReaders) { - if (f.fileName().startsWith(pattern)) - loadFromCue(f.absoluteFilePath()); + for (int i=0; i<cue.diskCount(); ++i) + { + if (!matchedAudioFiles(cue.disk(i), QFileInfoList() << audio).isEmpty()) + { + loadFromCue(cue.disk(i), i); + return; + } + } } } @@ -854,69 +596,49 @@ /************************************************ ************************************************/ -void Disk::setAudioFile(const QString &fileName) +void Disk::setAudioFile(const InputAudioFile &audio) { - QFileInfo fi(fileName); - InputAudioFile *audio = new InputAudioFile(fi.absoluteFilePath()); + if (mAudioFile) + delete mAudioFile; - if (audio->isValid()) - { - if (mAudioFile) - delete mAudioFile; + mAudioFile = new InputAudioFile(audio); - mAudioFile = audio; - project->emitDiskChanged(this); - } - else - { - delete audio; - } + if (mTagSets.isEmpty()) + findCueFile(); } /************************************************ ************************************************/ -void Disk::findAudioFile() +void Disk::findAudioFile(const CueTagSet &cueTags) { + if (mTagSets.isEmpty()) + return; + QStringList exts; foreach (InputAudioFormat format, InputAudioFormat::allFormats()) exts << QString("*.%1").arg(format.ext()); - QFileInfo fi(mCueFile); - - QSet<QString> patterns; - patterns << fi.completeBaseName(); - - QString ft = fileTag(); - if (! ft.isEmpty()) - patterns << QFileInfo(ft).completeBaseName(); + QFileInfo cueFile(mCueFile); + QFileInfoList files = cueFile.dir().entryInfoList(exts, QDir::Files | QDir::Readable); + if (!cueTags.isMultiFileCue() && files.count() == 1) + { + InputAudioFile audio(files.first().filePath()); + if (audio.isValid()) + setAudioFile(audio); + return; + } - QFileInfoList files = fi.dir().entryInfoList(exts, QDir::Files | QDir::Readable); - foreach(QFileInfo f, files) + QFileInfoList audioFiles = matchedAudioFiles(cueTags, files); + foreach (const QFileInfo &file, audioFiles) { - QSetIterator<QString> i(patterns); - while (i.hasNext()) + InputAudioFile audio(file.filePath()); + if (audio.isValid()) { - QString pattern = i.next(); - - if (f.fileName().startsWith(pattern)) - { - InputAudioFile *audio = new InputAudioFile(f.absoluteFilePath()); - if (audio->isValid()) - { - if (mAudioFile) - delete mAudioFile; - - mAudioFile = audio; - return; - } - else - { - delete audio; - } - } + setAudioFile(audio); + return; } } } @@ -1018,9 +740,10 @@ { if (t->uri() == tagSet.uri()) { - mTagSets.removeAll(t); if (mTags == t) mTags = 0; + + mTagSets.removeAll(t); delete t; } } @@ -1028,7 +751,7 @@ TagSet *newTagSet = new TagSet(tagSet); mTagSets << newTagSet; - if (mTags == 0 || activate) + if (activate || mTags == 0) { mTags = newTagSet; project->emitLayoutChanged();
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()); } } @@ -643,16 +600,12 @@ { QString flt = getOpenFileFilter(true, true); QString lastDir = settings->value(Settings::Misc_LastDir).toString(); - QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Add CUE or audio file", "OpenFile dialog title"), lastDir, flt); + QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Add cue or audio file", "OpenFile dialog title"), lastDir, flt); foreach(const QString &fileName, fileNames) { - //fileName = self._fixFileNameBug(fileName) settings->setValue(Settings::Misc_LastDir, QFileInfo(fileName).dir().path()); - - QApplication::setOverrideCursor(Qt::WaitCursor); addFileOrDir(fileName); - QApplication::restoreOverrideCursor(); } } @@ -667,25 +620,23 @@ QString dir; if (!disk->cueFile().isEmpty()) - { dir = QFileInfo(disk->cueFile()).dir().absolutePath(); - } else if (! disk->audioFileName().isEmpty()) - { dir = QFileInfo(disk->audioFileName()).dir().absolutePath(); - } else - { dir = settings->value(Settings::Misc_LastDir).toString(); - } QString fileName = QFileDialog::getOpenFileName(this, tr("Select audio file", "OpenFile dialog title"), dir, flt); - if (!fileName.isEmpty()) - { - disk->setAudioFile(fileName); - } + if (fileName.isEmpty()) + return; + + InputAudioFile audio(fileName); + if (audio.isValid()) + disk->setAudioFile(audio); + else + Project::error(audio.errorString()); } @@ -694,11 +645,13 @@ ************************************************/ void MainWindow::addFileOrDir(const QString &fileName) { + DiskList addedDisks; + QApplication::setOverrideCursor(Qt::WaitCursor); QFileInfo fi = QFileInfo(fileName); if (fi.isDir()) { - mScanner = new DirScanner; + mScanner = new Scanner; setControlsEnable(); mScanner->start(fi.absoluteFilePath()); delete mScanner; @@ -707,13 +660,16 @@ } else if (fi.size() > 102400) { - project->addAudioFile(fi.canonicalFilePath()); + addedDisks << project->addAudioFile(fileName, true); } else { - project->addCueFile(fi.canonicalFilePath()); + addedDisks << project->addCueFile(fileName, true); } QApplication::restoreOverrideCursor(); + + if (!addedDisks.isEmpty()) + this->trackView->selectDisk(addedDisks.first()); }
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 @@ { emit layoutChanged(); } - - - -/************************************************ - - ************************************************/ -void Project::settingChanged() -{ -} - -
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"); } //## 2.1 ############################################## @@ -626,7 +663,7 @@ "Artist-Album.cue;" ); - conv.run(); + conv.run("2.2. W/o pregap, w/o HTOA"); } //## 2.2 ############################################## @@ -649,7 +686,7 @@ "Artist-Album.cue;" ); - conv.run(); + conv.run("3. With pregap, w/o HTOA"); } //## 3 ################################################ @@ -672,7 +709,7 @@ "Artist-Album.cue;" ); - conv.run(); + conv.run("4. All tags"); } //## 4 ################################################ @@ -705,7 +742,7 @@ track->setDate("2013"); } - conv.run(); + conv.run("5. Cue w/o tags + tags form the separate file"); } //## 5 ################################################ @@ -727,7 +764,7 @@ "04 - Song04.wav;" ); - conv.run(); + conv.run("6. Garbage in the CUE"); } //## 6 ################################################# @@ -757,7 +794,7 @@ "04 - Song04.wav;" ); - conv.run(); + conv.run("7. With pregap and HTOA"); } //## 7 ################################################# @@ -780,7 +817,7 @@ "04 - Song04.wav;" ); - conv.run(); + conv.run("8. With pregap and HTOA"); } //## 8 ################################################# @@ -799,10 +836,9 @@ settings->setValue(Settings::OutFiles_Pattern, pattern); settings->setValue(Settings::OutFiles_Format, "WAV"); - Disk disk; - disk.loadFromCue(cueFile); + Disk *disk = loadFromCue(cueFile); - QString result = disk.track(0)->resultFileName(); + QString result = disk->track(0)->resultFileName(); //QCOMPARE(result, expected); if (result != expected) @@ -813,7 +849,7 @@ expected); QFAIL(msg.toLocal8Bit()); } - + disk->deleteLater(); } @@ -929,12 +965,12 @@ } + /************************************************ ************************************************/ void TestFlacon::testTrackResultFilePath() { - //QFETCH(QString, cueFile); QFETCH(QString, outDir); QFETCH(QString, pattern); QFETCH(QString, expected); @@ -944,13 +980,18 @@ settings->setValue(Settings::OutFiles_Pattern, pattern); settings->setValue(Settings::OutFiles_Format, "WAV"); - Disk disk; - disk.loadFromCue(mDataDir + "simple.cue"); + Disk *disk = loadFromCue(mDataDir + "simple.cue"); if (!audioFile.isEmpty()) - disk.setAudioFile(audioFile); + { + InputAudioFile audio(audioFile); + if (!audio.isValid()) + QFAIL(audio.errorString().toLocal8Bit().data()); + + disk->setAudioFile(audio); + } - QString result = disk.track(0)->resultFilePath(); + QString result = disk->track(0)->resultFilePath(); if (QFileInfo(result).absoluteFilePath() != QFileInfo(expected).absoluteFilePath()) { QString msg = QString("Compared values are not the same\n Actual: %1 [%2]\n Expected: %3\n AudioFile: %4").arg( @@ -960,6 +1001,7 @@ QFAIL(msg.toLocal8Bit()); } //QCOMPARE(result, expected); + disk->deleteLater(); } @@ -975,47 +1017,48 @@ QTest::addColumn<QString>("audioFile"); - QTest::newRow("1") + QTest::newRow("1: /home/user/music") << "/home/user/music" << "%a/%y - %A/%n - %t" << "/home/user/music/Artist/2013 - Album/01 - Song01.wav" << ""; - QTest::newRow("2") + QTest::newRow("2: ~/music") << "~/music" << "%a/%y - %A/%n - %t" << QDir::homePath() + "/music/Artist/2013 - Album/01 - Song01.wav" << ""; - QTest::newRow("3") + QTest::newRow("3: /music") << "/music" << "%a/%y - %A/%n - %t" << "/music/Artist/2013 - Album/01 - Song01.wav" << ""; - QTest::newRow("4") + QTest::newRow("4: empty") << "" << "%a/%y - %A/%n - %t" << QDir::homePath() + "/Artist/2013 - Album/01 - Song01.wav" << ""; - QTest::newRow("5") + QTest::newRow("5: dot (.) with CdAudioFile") << "." << "%a/%y - %A/%n - %t" << mTmpDir + "/Artist/2013 - Album/01 - Song01.wav" << mCdAudioFile; - QTest::newRow("6") + QTest::newRow("6. empty with CdAudioFile") << "" << "%a/%y - %A/%n - %t" << mTmpDir + "/Artist/2013 - Album/01 - Song01.wav" << mCdAudioFile; } + /************************************************ ************************************************/ @@ -1046,17 +1089,15 @@ if (!QFile::copy(testDataDir + cueFile, testCueFile)) QFAIL(QString("Can't copy file %1 to %2").arg(testDataDir + cueFile, testCueFile).toLocal8Bit().data()); - Disk disk; - if (!codepageBefore.isEmpty()) settings->setValue(Settings::Tags_DefaultCodepage, codepageBefore); else settings->setValue(Settings::Tags_DefaultCodepage, "UTF-8"); - disk.loadFromCue(testCueFile); + Disk *disk = loadFromCue(testCueFile); if (!codepageAfter.isEmpty()) - disk.setTextCodecName(codepageAfter); + disk->setTextCodecName(codepageAfter); QStringList expected = this->readFile(TEST_DATA_DIR + sampleFile); @@ -1064,11 +1105,11 @@ // Result ************************* //result << "GENRE:" << tracks.genre() << "\n"; //resultSl << "ALBUM:" << tracks.album() << "\n"; - result << "DISCID:" << disk.discId() << "\n"; + result << "DISCID:" << disk->discId() << "\n"; - for(int i=0; i<disk.count(); ++i) + for(int i=0; i<disk->count(); ++i) { - Track *track = disk.track(i); + Track *track = disk->track(i); result << "Track " << (i + 1) << "\n"; result << " " << "INDEX:" << track->index() << "\n"; result << " " << "TRACKNUM:" << track->trackNum() << "\n"; @@ -1093,6 +1134,8 @@ QString cmd = QString("diff %1 %2").arg(expectedFile, resultFile); QFAIL((msg + "\n " + cmd).toLocal8Bit()); } + + disk->deleteLater(); } @@ -1493,7 +1536,6 @@ } - /************************************************ ************************************************/ @@ -1705,4 +1747,213 @@ QTest::newRow("HI 40:20:240 - 10:30:300") << "29:49.940"; } +/************************************************ + + ************************************************/ +void TestFlacon::testFindAudioFile() +{ + QFETCH(QString, fileTag); + QFETCH(QString, cueFileName); + QFETCH(QString, audioFiles); + QFETCH(QString, expected); + + static int dirNum = 0; + dirNum++; + QString dir = QString("%1testFindAudioFile/%2/").arg(mTmpDir).arg(dirNum, 4, 20, QChar('0')); + QDir(dir).mkpath("."); + clearDir(dir); + + + + QStringList fileTags = fileTag.split(",", QString::SkipEmptyParts); + + QString cueFile = dir + cueFileName; + { + QStringList cue; + cue << "REM DATE 2013"; + cue << "REM DISCID 123456789"; + cue << "REM COMMENT \"ExactAudioCopy v0.99pb4\""; + cue << "PERFORMER \"Artist\""; + for (int i=0; i<fileTags.count(); ++i) + { + cue << "FILE \"" + fileTags[i].trimmed() +"\" WAVE"; + cue << " TRACK 01 AUDIO"; + cue << " TITLE \"Song01\""; + cue << " INDEX 01 00:00:00"; + } + writeTextFile(cueFile, cue); + } + + foreach (QString f, audioFiles.split(",")) + { + QFile(mCdAudioFile).link(dir + f.trimmed()); + } + + + QStringList expectedLists = expected.split(",", QString::SkipEmptyParts); + CueReader cue(cueFile); + if (!cue.isValid()) + FAIL("Cue isn't valid:" + cue.errorString().toLocal8Bit()); + + for (int i=0; i<cue.diskCount(); ++i) + { + Disk disk; + disk.loadFromCue(cue.disk(i)); + QString expected = expectedLists.at(i).trimmed(); + if (expected == "''") + expected = ""; + else + expected = dir + expected; + + QString real = disk.audioFileName(); + QCOMPARE(real, expected); + + } +} + + +/************************************************ + + ************************************************/ +void TestFlacon::testFindAudioFile_data() +{ + QTest::addColumn<QString>("fileTag"); + QTest::addColumn<QString>("cueFileName"); + QTest::addColumn<QString>("audioFiles"); + QTest::addColumn<QString>("expected"); + + QTest::newRow("1") + << "Album.wav" + << "Album.cue" + << "Album.ape" + << "Album.ape"; + + + QTest::newRow("2") + << "Album.wav" + << "Garbage.cue" + << "Album.ape, Garbage.ape" + << "Album.ape"; + + + QTest::newRow("3") + << "Garbage.wav" + << "Disk.cue" + << "Disk.ape" + << "Disk.ape"; + + QTest::newRow("Multi disk => CueFile_1.ape") + << "FileTag1.wav, FileTag2.wav" + << "CueFile.cue" + << "CueFile.ape," "CueFile_1.ape," "CueFile_2.ape" + << "CueFile_1.ape," "CueFile_2.ape"; + + QTest::newRow("4") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album_Side1.ape, Album_Side2.ape" + << "Album_Side1.ape, Album_Side2.ape"; + + QTest::newRow("5") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album Side1.ape, Album Side2.ape" + << "Album Side1.ape, Album Side2.ape"; + + QTest::newRow("6") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album_Disk1.ape, Album_Disk2.ape" + << "Album_Disk1.ape, Album_Disk2.ape"; + + QTest::newRow("Multi disk => CUE+Disk1") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album Disk1.ape, Album Disk2.ape" + << "Album Disk1.ape, Album Disk2.ape"; + + QTest::newRow("Multi disk => CUE+[Disk 1]") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album [Disk 1].ape, Album [Disk 2].ape" + << "Album [Disk 1].ape, Album [Disk 2].ape"; + + QTest::newRow("Multi disk => CUE+[Disk #1]") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album [Disk #1].ape, Album [Disk #2].ape" + << "Album [Disk #1].ape, Album [Disk #2].ape"; + + QTest::newRow("Multi disk => CUE+[Disk №1]") + << "Garbage1.wav, Garbage2.wav" + << "Album.cue" + << "Album.ape, Album [Disk №1].ape, Album [Disk №2].ape" + << "Album [Disk №1].ape, Album [Disk №2].ape"; + + + QTest::newRow("Multi disk => CUE+Disk 001") + << "Garbage1.wav," + "Garbage2.wav" + << "Album.cue" + << "Album.ape," + "Album Disk 001.ape," + "Album Disk 002.ape" + << "Album Disk 001.ape," + "Album Disk 002.ape"; + + QTest::newRow("") + << "FileTag1.wav," + "FileTag2.wav" + << "CueFile.cue" + << "FileTag1.wav," + "FileTag2.wav," + "CueFile.ape," + "CueFile Disk1.ape," + "CueFile Disk2.ape" + << "FileTag1.wav," + "FileTag2.wav"; + + QTest::newRow("Not confuse 1 and 11") + << "FileTag1.wav," "FileTag2.wav" + << "CueFile.cue" + << "CueFile_11.flac," "CueFile_2.flac" + << "''," "CueFile_2.flac"; + + QTest::newRow("Multi disk => Side 1") + << "Garbage1.wav," + "Garbage2.wav" + << "Album.cue" + << "Album.ape," + "Side 1.flac," + "Side 2.flac" + << "Side 1.flac," + "Side 2.flac"; + + QTest::newRow("Multi disk => Disk 0001") + << "Garbage1.wav," + "Garbage2.wav" + << "Album.cue" + << "Album.ape," + "Disk 0001.ape," + "Disk 0002.ape" + << "Disk 0001.ape," + "Disk 0002.ape"; + + QTest::newRow("Multi dot") + << "FileTag.wav" + << "CueFile.cue" + << "CueFile.ape.flac" + << "CueFile.ape.flac"; + + QTest::newRow("Multi dot") + << "FileTag.wav" + << "CueFile.cue" + << "CueFile_AditionalText.flac" + << "CueFile_AditionalText.flac"; +} + + + + + QTEST_MAIN(TestFlacon)
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> - <translation type="unfinished"/> + <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> <message> <source>Preferences</source> - <translation type="unfinished"/> + <translation>Nastavení</translation> </message> <message> <source>General configuration</source> - <translation type="unfinished"/> + <translation>Obecné nastavení</translation> </message> <message> <source>Thread count:</source> - <translation type="unfinished"/> + <translation>Počet vláken:</translation> </message> <message> <source>The number of threads in the conversion process.</source> - <translation type="unfinished"/> + <translation>Počet vláken při převodu.</translation> </message> <message> <source>Temporary directory:</source> - <translation type="unfinished"/> + <translation>Adresář s dočasnými soubory:</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>Výchozí kódová stránka:</translation> </message> <message> <source>First track pregap:</source> - <translation type="unfinished"/> + <translation>Předmezera před první skladbou:</translation> </message> <message> <source>Rescan</source> - <translation type="unfinished"/> + <translation>Prohledat znovu</translation> </message> <message> <source>Full path of the external applications</source> - <translation type="unfinished"/> + <translation>Celá cesta k vnějšímu programu</translation> </message> <message> <source>Extract to separate file</source> - <translation type="unfinished"/> + <translation>Vytáhnout do samostatného souboru</translation> </message> <message> <source>Add to first track</source> - <translation type="unfinished"/> + <translation>Přidat k první skladbě</translation> </message> <message> <source>General</source> - <translation type="unfinished"/> + <translation>Obecné</translation> </message> <message> <source>Programs</source> - <translation type="unfinished"/> + <translation>Programy</translation> </message> <message> <source>Select temporary directory</source> - <translation type="unfinished"/> + <translation>Vyberte adresář pro dočasné soubory</translation> + </message> + <message> + <source>Per track cue sheet</source> + <translation>List CUE u skladby</translation> + </message> + <message> + <source>Create per track cue sheet</source> + <translation>Vytvořit list CUE u skladby</translation> </message> </context> <context> <name>ConfigPage_Aac</name> <message> <source>AAC encoding configuration</source> - <translation type="unfinished"/> + <translation>Nastavení kódování AAC</translation> </message> <message> <source>Use quality setting (recommended)</source> - <translation type="unfinished"/> + <translation>Použít nastavení kvality (doporučeno)</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Použít datový tok</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Datový tok:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Nastaví cílový datový tok (v kb/s).</translation> </message> </context> <context> <name>ConfigPage_Flac</name> <message> <source>Flac encoding configuration</source> - <translation type="unfinished"/> + <translation>Nastavení kódování FLAC</translation> </message> <message> <source>Compression:</source> - <translation type="unfinished"/> + <translation>Zhuštění:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>Vyrovnání hlasitosti</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Spočítat zesílení:</translation> </message> <message> <source>Disabled</source> - <translation type="unfinished"/> + <translation>Zakázáno</translation> </message> </context> <context> <name>ConfigPage_Mp3</name> <message> <source>MP3 encoding configuration</source> - <translation type="unfinished"/> + <translation>Nastavení kódování MP3</translation> </message> <message> <source>Preset:</source> - <translation type="unfinished"/> + <translation>Přednastavení:</translation> </message> <message> <source><dt>VBR medium</dt> @@ -312,175 +344,258 @@ <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>Proměnlivý datový tok (VBR) Střední</dt> +<dd>Při použití středního proměnlivého datového toku by toto přednastavení mělo většině lidí u většiny hudby poskytnout téměř průzračnost.</dd> + +<dt>Proměnlivý datový tok (VBR), obvyklý, Proměnlivý datový tok (VBR), obvyklý, rychle</dt> +<dd>Při použití obvyklého proměnlivého datového toku by toto přednastavení mělo obecně pro většinu lidí u většiny hudby být průzračné a jakost záznamu je již docela vysoká.</dd> + +<dt>Proměnlivý datový tok (VBR), dokonalý, Proměnlivý datový tok (VBR), dokonalý, rychle</dt> +<dd>Pokud máte hodně dobrý sluch nebo velice dobré zařízení, toto přednastavení vám poskytne lehce vyšší jakost, než jakou obdržíte při režimu běžné kvality.</dd> + +<dt>Proměnlivý datový tok (VBR), jakost</dt> +<dd>Tato volba pro proměnlivý datový tok (VBR) vám umožní zadat jakost výstupu.</dd> + +<dt>Rychlá volba</dt> +<dd>Povolí nový rychlý proměnlivý datový tok (VBR) pro zvláštní profil. Toto se doporučuje.</dd> + +<dt>Stálý datový tok (CBR), zázračný</dt> +<dd>Pokud musíte mít naprosto nejvyšší kvalitu bez ohledu na velikost souboru, dosáhnete toho použitím tohoto stálého datového toku.</dd> + +<dt>Kb/s stálého datového toku (CBR )</dt> +<dd>Použití tohoto přednastavení pro stálý datový tok vám obvykle dá dobrou kvalitu při zadaném datovém toku.</dd> + +<dt>Kb/s průměrného datového toku (ABR )</dt> +<dd>Použití tohoto přednastavení pro průměrný datový tok vám obvykle dá vyšší kvalitu, než jakou vám dá volba pro stálý datový tok pro zadaný datový tok.</dd> +</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Použít datový tok</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Datový tok:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Nastaví cílový datový tok (v kb/s).</translation> </message> <message> <source>Use quality</source> - <translation type="unfinished"/> + <translation>Použít kvalitu</translation> </message> <message> <source>Quality:</source> - <translation type="unfinished"/> + <translation>Kvalita:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>Vyrovnání hlasitosti</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Spočítat zesílení:</translation> </message> <message> <source>VBR medium</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), střední</translation> </message> <message> <source>VBR standard</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), obvyklý</translation> </message> <message> <source>VBR standard fast</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), obvyklý, rychle</translation> </message> <message> <source>VBR extreme</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), dokonalý</translation> </message> <message> <source>VBR extreme fast</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), dokonalý, rychle</translation> </message> <message> <source>VBR quality</source> - <translation type="unfinished"/> + <translation>Proměnlivý datový tok (VBR), jakost</translation> </message> <message> <source>CBR insane</source> - <translation type="unfinished"/> + <translation>Stálý datový tok (CBR), zázračný</translation> </message> <message> <source>CBR kbps</source> - <translation type="unfinished"/> + <translation>Kb/s stálého datového toku (CBR)</translation> </message> <message> <source>ABR kbps</source> - <translation type="unfinished"/> + <translation>Kb/s průměrného datového toku (ABR)</translation> </message> </context> <context> <name>ConfigPage_Ogg</name> <message> <source>Ogg encoding configuration</source> - <translation type="unfinished"/> + <translation>Nastavení kódování Ogg</translation> </message> <message> <source>Use quality setting (recommended)</source> - <translation type="unfinished"/> + <translation>Použít nastavení kvality (doporučeno)</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Použít datový tok</translation> </message> <message> <source>Minimal bitrate:</source> - <translation type="unfinished"/> + <translation>Nejmenší datový tok:</translation> </message> <message> <source>Sets minimum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Nastaví nejmenší datový tok (v kb/s).</translation> </message> <message> <source>Nominal bitrate:</source> - <translation type="unfinished"/> + <translation>Jmenovitý datový tok:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Nastaví cílový datový tok (v kb/s).</translation> </message> <message> <source>Maximum bitrate:</source> - <translation type="unfinished"/> + <translation>Největší datový tok:</translation> </message> <message> <source>Sets maximum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Nastaví největší datový tok (v kb/s).</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>Vyrovnání hlasitosti</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Spočítat zesílení:</translation> + </message> +</context> +<context> + <name>ConfigPage_Opus</name> + <message> + <source>Opus encoding configuration</source> + <translation>Nastavení kódování Opus</translation> + </message> + <message> + <source>Bitrate type:</source> + <translation>Typ datového toku:</translation> + </message> + <message> + <source>Bitrate:</source> + <translation>Datový tok:</translation> + </message> + <message> + <source>VBR - variable bitrate</source> + <translation>VBR - proměnlivý datový tok</translation> + </message> + <message> + <source>CBR - constrained bitrate</source> + <translation>CBR - stálý datový tok</translation> + </message> + <message> + <source><dt>VBR</dt> +<dd>Use variable bitrate encoding (recommended). In VBR mode, the bitrate may go up and down freely depending on the content ensure quality consistency.</dd> + +<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>VBR</dt> +<dd>Použít kódování proměnlivého datového toku (doporučeno). V režimu proměnlivého datového toku (PDT; VBR) může jít datový tok volně nahoru a dolů v závislosti v závistlosti na důslednosti zajištění jakosti obsahu.</dd> + +<dt>CBR</dt> +<dd>Použít kódování vynuceného datového toku. Výstup je prováděn do určitého datového toku. Tento režim je obdobou stálého datového toku v kodérech AAC/MP3 (CBR) a řízenému režimu v kodérech Vorbis. Dává méně stálou jakost než režim proměnlivého datového toku, ale stálý datový tok.</dd></translation> + </message> + <message> + <source>Sets the target bitrate in kb/s (6-256 per channel). +<p> +In VBR mode, this sets the average rate for a large and diverse collection of audio. +<p> +In CBR mode, it sets the specific output bitrate. +</source> + <translation>Nastavuje cílový datový tok v kb/s (6-256 na kanál). +<p> +V režimu proměnlivého datového toku nastavuje průměrný tok pro rozsáhlé a rozmanité sbírky zvukových záznamů. +<p> +V režimu vynuceného datového toku nastavuje určitý výstupní datový tok.</translation> </message> </context> <context> <name>ConfigPage_Wv</name> <message> <source>WavPack encoding configuration</source> - <translation type="unfinished"/> + <translation>Nastavení kódování WavPack</translation> </message> <message> <source>Compression:</source> - <translation type="unfinished"/> + <translation>Komprese:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>Vyrovnání hlasitosti</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Spočítat zesílení:</translation> </message> <message> <source>Disabled</source> - <translation type="unfinished"/> + <translation>Zakázáno</translation> </message> </context> <context> <name>Converter</name> <message> <source>I can't create directory "%1".</source> - <translation type="unfinished"/> + <translation>Nelze vytvořit adresář "%1".</translation> </message> <message> <source>I can't write to directory "%1".</source> - <translation type="unfinished"/> + <translation>Nelze zapisovat do adresáře "%1".</translation> </message> <message> <source>Conversion is not possible:</source> - <translation type="unfinished"/> + <translation>Převod není možný:</translation> </message> </context> <context> - <name>Disk</name> + <name>CueDiskSelectDialog</name> <message> - <source>Audio file not set.</source> - <translation type="unfinished"/> + <source>Select disk</source> + <translation>Vybrat disk</translation> </message> <message> - <source>CUE file not set.</source> - <translation type="unfinished"/> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [disk %2]</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation type="unfinished"/> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>Soubor CUE obsahuje údaje o více discích. Který disk chcete použít?</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> - <translation type="unfinished"/> + <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>Audio file shorter than expected from cue sheet.</source> + <translation>Zvukový soubor je kratší než očekáváno podle listu CUE.</translation> </message> </context> <context> @@ -489,58 +604,65 @@ <source>I can't delete file: %1 %2</source> - <translation type="unfinished"/> + <translation>Nelze smazat soubor: +%1 +%2</translation> </message> <message> <source>Encoder error: </source> - <translation type="unfinished"/> + <translation>Chyba kodéru:</translation> </message> <message> <source>I can't read %1 file</source> - <translation type="unfinished"/> + <comment>Encoder error. %1 is a file name.</comment> + <translation>Nelze přečíst soubor %1</translation> </message> </context> <context> <name>EncoderConfigPage</name> <message> <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> - <translation type="unfinished"/> + <translation>Nastaví kvalitu kódování, mezi %1 (nejnižší) a %2 (nejvyšší).</translation> </message> <message> <source>Sets compression level, between %1 (fastest) and %2 (highest compression). This only affects the file size. All settings are lossless.</source> - <translation type="unfinished"/> + <translation>Nastaví úroveň zhuštění mezi %1 (nejrychlejší) a %2 (nejvyšší zhuštění). +Ovlivní to jenom velikost souboru. Všechna nastavení jsou bezztrátová.</translation> </message> <message> <source>Disabled</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>Zakázáno</translation> </message> <message> <source>Per Track</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>U skladby</translation> </message> <message> <source>Per Album</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>U alba</translation> </message> <message> <source>ReplayGain is a standard to normalize the perceived loudness of computer audio formats. The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. Using the album-gain analysis will preserve the volume differences within an album.</source> - <translation type="unfinished"/> + <translation>Vyrovnání hlasitosti je běžným postupem při normalizaci vnímané hlasitosti počítačových zvukových formátů. + +Zpracování je možné provést u jednotlivých skladeb, takže při přehrávání budou mít všechny skladby tutéž úroveň hlasitosti. +Použití zpracování zesílení u alba zachová rozdíly v hlasitosti v rámci alba.</translation> </message> <message> <source>%1 kbps</source> - <translation type="unfinished"/> + <translation>%1 kb/s</translation> </message> <message> <source>Default</source> - <translation type="unfinished"/> + <translation>Výchozí</translation> </message> </context> <context> @@ -549,7 +671,9 @@ <source>I can't rename file: %1 to %2 %3</source> - <translation type="unfinished"/> + <translation>Nelze přejmenovat soubor:⏎ +%1 na %2⏎ +%3</translation> </message> </context> <context> @@ -557,247 +681,238 @@ <message> <source>Gain error: </source> - <translation type="unfinished"/> + <translation>Chyba zesílení:</translation> </message> </context> <context> <name>MainWindow</name> <message> <source>Flacon</source> - <translation type="unfinished"/> + <translation>Flacon</translation> </message> <message> <source>Result Files</source> - <translation type="unfinished"/> + <translation>Výsledné soubory</translation> </message> <message> <source>Directory:</source> - <translation type="unfinished"/> + <translation>Adresář:</translation> </message> <message> <source>Pattern:</source> - <translation type="unfinished"/> + <translation>Vzor:</translation> </message> <message> <source>Format:</source> - <translation type="unfinished"/> + <translation>Formát:</translation> </message> <message> <source>Output format</source> <comment>Main form tooltip for "Format" edit</comment> - <translation type="unfinished"/> + <translation>Výstupní formát</translation> </message> <message> <source>Tags</source> - <translation type="unfinished"/> + <translation>Značky</translation> </message> <message> <source>Genre:</source> - <translation type="unfinished"/> + <translation>Žánr:</translation> </message> <message> <source>Year:</source> - <translation type="unfinished"/> + <translation>Rok:</translation> </message> <message> <source>Artist:</source> - <translation type="unfinished"/> + <translation>Umělec:</translation> </message> <message> <source>Album:</source> - <translation type="unfinished"/> + <translation>Album:</translation> </message> <message> <source>Start num:</source> - <translation type="unfinished"/> + <translation>Začít číslovat od:</translation> </message> <message> <source>Disc ID:</source> - <translation type="unfinished"/> + <translation>Číslo disku:</translation> </message> <message> <source>Codepage:</source> - <translation type="unfinished"/> + <translation>Kódová stránka:</translation> </message> <message> <source>&File</source> - <translation type="unfinished"/> + <translation>&Soubor</translation> </message> <message> <source>&Settings</source> - <translation type="unfinished"/> + <translation>&Nastavení</translation> </message> <message> <source>&Help</source> - <translation type="unfinished"/> + <translation>&Nápověda</translation> </message> <message> <source>Add file</source> - <translation type="unfinished"/> + <translation>Přidat soubor</translation> </message> <message> <source>Add CUE or audio file</source> - <translation type="unfinished"/> + <translation>Přidat soubor CUE nebo zvukový soubor</translation> </message> <message> <source>Ctrl+O</source> - <translation type="unfinished"/> + <translation>Ctrl+O</translation> </message> <message> <source>Convert</source> - <translation type="unfinished"/> + <translation>Převést</translation> </message> <message> <source>Start conversion process</source> - <translation type="unfinished"/> + <translation>Spustit převod</translation> </message> <message> <source>Ctrl+W</source> - <translation type="unfinished"/> + <translation>Ctrl+W</translation> </message> <message> <source>Abort</source> - <translation type="unfinished"/> + <translation>Přerušit</translation> </message> <message> <source>Abort conversion process</source> - <translation type="unfinished"/> + <translation>Zrušit převod</translation> </message> <message> <source>Exit</source> - <translation type="unfinished"/> + <translation>Ukončit</translation> </message> <message> <source>Ctrl+Q</source> - <translation type="unfinished"/> + <translation>Ctrl+Q</translation> </message> <message> <source>&Preferences</source> - <translation type="unfinished"/> + <translation>&Nastavení</translation> </message> <message> <source>Program preferences</source> - <translation type="unfinished"/> + <translation>Nastavení programu</translation> </message> <message> <source>&About Flacon</source> - <translation type="unfinished"/> + <translation>&O programu Flacon</translation> </message> <message> <source>Remove album</source> - <translation type="unfinished"/> + <translation>Odstranit album</translation> </message> <message> <source>Remove album from project</source> - <translation type="unfinished"/> + <translation>Odstranit album z projektu</translation> </message> <message> <source>Ctrl+Del</source> - <translation type="unfinished"/> + <translation>Ctrl+Delete</translation> </message> <message> <source>Configure encoder</source> - <translation type="unfinished"/> + <translation>Nastavit kodek</translation> </message> <message> <source>...</source> - <translation type="unfinished"/> + <translation>...</translation> </message> <message> <source>Select result directory</source> - <translation type="unfinished"/> + <translation>Vybrat adresář s výsledky</translation> </message> <message> <source>Get from CDDB</source> - <translation type="unfinished"/> + <translation>Získat z CDDB</translation> </message> <message> <source>Get album information from CDDB</source> - <translation type="unfinished"/> + <translation>Získat informace o albu z CDDB</translation> </message> <message> <source>Ctrl+I</source> - <translation type="unfinished"/> + <translation>Ctrl+I</translation> </message> <message> <source>Scan</source> - <translation type="unfinished"/> + <translation>Prohledat</translation> </message> <message> <source>Recursive album search</source> - <translation type="unfinished"/> + <translation>Rekurzivní hledání alb</translation> </message> <message> <source>Insert "Track number"</source> - <translation type="unfinished"/> + <translation>Vložit "Číslo skladby"</translation> </message> <message> <source>Insert "Total number of tracks"</source> - <translation type="unfinished"/> + <translation>Vložit "Celkový počet skladeb"</translation> </message> <message> <source>Insert "Artist"</source> - <translation type="unfinished"/> + <translation>Vložit "Umělec"</translation> </message> <message> <source>Insert "Album title"</source> - <translation type="unfinished"/> + <translation>Vložit "Název alba"</translation> </message> <message> <source>Insert "Track title"</source> - <translation type="unfinished"/> + <translation>Vložit "Název skladby"</translation> </message> <message> <source>Insert "Year"</source> - <translation type="unfinished"/> + <translation>Vložit "Rok"</translation> </message> <message> <source>Insert "Genre"</source> - <translation type="unfinished"/> - </message> - <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Vložit "Žánr"</translation> </message> <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> - <translation type="unfinished"/> + <translation>Některá alba nebudou převedena, protože obsahují chyby. +Chcete pokračovat?</translation> </message> <message> <source>%1 files</source> <comment>OpenFile dialog filter line, like "WAV files"</comment> - <translation type="unfinished"/> + <translation>Soubory %1</translation> </message> <message> <source>All supported formats</source> <comment>OpenFile dialog filter line</comment> - <translation type="unfinished"/> + <translation>Všechny podporované formáty</translation> </message> <message> <source>All files</source> <comment>OpenFile dialog filter line like "All files"</comment> - <translation type="unfinished"/> - </message> - <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Všechny soubory</translation> </message> <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Vybrat zvukový soubor</translation> </message> <message> <source>Select directory</source> - <translation type="unfinished"/> + <translation>Vybrat adresář</translation> </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation type="unfinished"/> + <translation>Flacon</translation> </message> <message> <source><style type="text/css"> @@ -818,150 +933,212 @@ <br><br> If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> <comment>Main form tooltip for "Pattern" edit</comment> - <translation type="unfinished"/> + <translation><style type="text/css"> +.term {font-weight: bold;} +.def { white-space: nowrap; } +</style> +Symboly začínají %. Můžete použít následující symboly: +<table> +<tr><td class="term">%n</td> <td class="def"> - Číslo skladby </td> + <td class="term">%N</td> <td class="def"> - Celkový počet skladeb</td></tr> +<tr><td class="term">%a</td> <td class="def"> - Umělec</td> + <td class="term">%A</td> <td class="def"> - Název alba</td></tr> +<tr><td class="term">%t</td> <td class="def"> - Název skladby</td> + <td class="term">%y</td> <td class="def"> - Rok</td></tr> +<tr><td class="term">%g</td> <td class="def"> - Žánr</td> + <td class="term"></td> <td class="def"></td></tr> +</table> +<br><br> +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 type="unfinished"/> + <translation>Můžete procházet adresáři do cílového adresáře. Také jej můžete zadat ručně. + +Pokud je cesta ponechána prázdná nebo začíná "." (tečkou), výsledné soubory budou umístěny ve stejném adresáři jako zdroj.</translation> + </message> + <message> + <source>Use "%1"</source> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation>Použít "%1"</translation> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Vybrat soubor CUE</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> </context> <context> <name>MultiValuesComboBox</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Více hodnot</translation> </message> </context> <context> <name>MultiValuesLineEdit</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Více hodnot</translation> </message> </context> <context> <name>MultiValuesSpinBox</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Více hodnot</translation> </message> </context> <context> <name>ProgramEdit</name> <message> - <source>%1 program</source> - <translation type="unfinished"/> + <source>Select program file</source> + <translation>Vyberte soubor s programem</translation> </message> <message> - <source>All files</source> - <translation type="unfinished"/> + <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>Program %1</translation> </message> <message> - <source>Select program file</source> - <translation type="unfinished"/> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation>Všechny soubory</translation> </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nelze najít program <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>Soubor <b>%1</b> není podporovaným zvukovým souborem. <br><br>Ověřte, že jsou nainstalovány všechny požadované programy, a že jsou v nastavení.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [disk %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation type="unfinished"/> + <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation type="unfinished"/> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>Nelze zapisovat soubor CUE <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation type="unfinished"/> + <source>File <b>"%1"</b> does not exist</source> + <translation>Soubor <b>"%1"</b> neexistuje</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"/> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> není platným souborem CUE. Disk %2 nemá žádné značky.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Název zvukového souboru není nastaven</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation type="unfinished"/> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>Vyrovnání hlasitosti nemůžete použít na soubory se vzorkovacím kmitočtem nad 48 kHz. Metaflac takové soubory nepodporuje.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> není platným souborem CUE. List CUE nemá žádnou značku SOUBOR (FILE).</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> není platným souborem CUE.Nesprávné číslo skladby na %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Zvukový soubor <b>"%1"</b> neexistuje</translation> </message> </context> <context> <name>Splitter</name> <message> <source>The number of tracks is higher than expected.</source> - <translation type="unfinished"/> + <translation>Počet skladeb je vyšší než očekáváno.</translation> </message> </context> <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation type="unfinished"/> - </message> - <message> <source>Get data from CDDB</source> - <translation type="unfinished"/> + <translation>Získat data z CDDB</translation> </message> <message> <source>Edit</source> - <translation type="unfinished"/> + <translation>Upravit</translation> </message> <message> <source>Select another audio file</source> - <translation type="unfinished"/> + <translation>Vybrat jiný zvukový soubor</translation> + </message> + <message> + <source>Select another cue file</source> + <translation>Vybrat jiný soubor CUE</translation> </message> </context> <context> <name>TrackViewDelegate</name> <message> <source>Error</source> - <translation type="unfinished"/> + <translation>Chyba</translation> </message> <message> <source>Aborted</source> - <translation type="unfinished"/> + <translation>Přerušeno</translation> </message> <message> <source>OK</source> - <translation type="unfinished"/> + <translation>OK</translation> </message> <message> <source>Extracting</source> - <translation type="unfinished"/> + <translation>Vytahuje se</translation> </message> <message> <source>Encoding</source> - <translation type="unfinished"/> + <translation>Kóduje se</translation> </message> <message> <source>Queued</source> - <translation type="unfinished"/> + <translation>Zařazeno</translation> </message> <message> <source>Calculate gain</source> - <translation type="unfinished"/> + <translation>Spočítání zesílení</translation> </message> <message> <source>Wait gain</source> - <translation type="unfinished"/> + <translation>Čekání na zesílení</translation> </message> <message> <source>Write gain</source> - <translation type="unfinished"/> + <translation>Zápis zesílení</translation> </message> <message> <source>Tracks:</source> - <translation type="unfinished"/> + <translation>Stopy:</translation> </message> <message> <source>Audio:</source> - <translation type="unfinished"/> + <translation>Zvuk:</translation> </message> </context> <context> @@ -969,41 +1146,57 @@ <message> <source>Track</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Skladba</translation> </message> <message> <source>Title</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Název</translation> </message> <message> <source>Artist</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Umělec</translation> </message> <message> <source>Album</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Album</translation> </message> <message> <source>Comment</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Poznámka</translation> </message> <message> <source>File</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Soubor</translation> </message> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Více hodnot</translation> + </message> + <message> + <source>Length</source> + <comment>Table header.</comment> + <translation>Délka</translation> </message> <message> - <source>Conversion is not possible. + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation type="unfinished"/> + <translation>Převod není možný. +%1</translation> </message> </context> </TS> \ No newline at end of file
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> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nelze najít program <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>Soubor <b>%1</b> není podporovaným zvukovým souborem. <br><br>Ověřte, že jsou nainstalovány všechny požadované programy, a že jsou v nastavení.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Nelze zapisovat soubor CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Nelze najít program <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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>Soubor <b>%1</b> není podporovaným zvukovým souborem. <br><br>Ověřte, že jsou nainstalovány všechny požadované programy, a že jsou v nastavení.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>Vyrovnání hlasitosti nemůžete použít na soubory se vzorkovacím kmitočtem nad 48kHz. Metaflac takové soubory nepodporuje.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1028,10 +1068,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Vybrat jiný soubor CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Získat data z CDDB</translation> </message> @@ -1043,6 +1079,10 @@ <source>Select another audio file</source> <translation>Vybrat jiný zvukový soubor</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1128,10 +1168,24 @@ <translation>Více hodnot</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Převod není možný. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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"/> </message> <message> - <source>Select program file</source> - <translation>Programmdatei auswählen</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>Ich kann das Programm <b>%1</b> nicht finden.</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"/> + </message> + <message> + <source> [disk %1]</source> + <translation> [Festplatte %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Ich kann die CUE-Datei <b>%1</b>:<br>%2 nicht schreiben</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Ich kann das Programm <b>%1</b> nicht finden.</translation> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"/> </message> </context> @@ -984,10 +1027,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Wählen Sie eine andere CUE-Datei aus</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Daten von CDDB abrufen</translation> </message> @@ -999,6 +1038,10 @@ <source>Select another audio file</source> <translation>Wählen Sie eine andere Audiodatei aus</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1084,10 +1127,24 @@ <translation>Mehrere Werte</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Länge</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Konvertierung ist nicht möglich. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> -In CBR mode it set the specific output bitrate. +In CBR mode, it sets the specific output bitrate. </source> - <translation type="unfinished"/> + <translation>Establecer la tasa de bits objetivo in kb/s (6-256 por canal). +<p> +En el modo VBR, se establece la tasa promedio para una gran y diversa colección de audio. +<p> +En el modo CBR, se 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>Seleccione 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 quieres usar?</translation> + </message> +</context> +<context> <name>Disk</name> <message> <source>Audio file not set.</source> <translation>Archivo de audio no seleccionado.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Archivo CUE no seleccionado.</translation> + <source>Cue file not set.</source> + <translation>El fichero CUE no se ha 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 fichero 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>El archivo <b>%1</b> contiene varias etiquetas de fichero.<br>Este tipo de archivos CUE no están soportados aún.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>El archivo de audio es más pequeño de lo esperado por la hoja CUE.</translation> </message> </context> <context> @@ -596,6 +617,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation>No puedo leer el archivo %1</translation> </message> </context> @@ -861,11 +883,6 @@ <translation>Insertar "Género"</translation> </message> <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Seleccione archivo CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Algunos álbumes no serán convertidos, ya que contienen errores. @@ -874,7 +891,7 @@ <message> <source>%1 files</source> <comment>OpenFile dialog filter line, like "WAV files"</comment> - <translation>%1 archivos</translation> + <translation>Archivos %1</translation> </message> <message> <source>All supported formats</source> @@ -887,11 +904,6 @@ <translation>Todos los archivos</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Añadir CUE o archivo de audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Seleccione archivo de audio</translation> @@ -943,18 +955,28 @@ Si usa entre llaves secciones de texto que contengan una variable, dichas secciones serán omitidas si el valor de la variable está vacio.</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>Puede navegar al directorio de destino. También puede introducirlo manualmente. -Si la ruta se deja vacía o comienza con "."(un punto), los archivos procesados serán almacenados en el mismo directorio que los originales.</translation> +Si la ruta está vacía o comienza con un "." (punto), los archivos de salida se guardarán en el mismo directorio que el origen.</translation> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation>Utilice "%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>Selecciona el archivo CUE</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Añadir archivo de audio o CUE</translation> </message> </context> <context> @@ -981,44 +1003,73 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Seleccione archivo de programa</translation> + </message> + <message> <source>%1 program</source> - <translation>%1 programa</translation> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation>Programa %1</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Todos los archivos</translation> </message> - <message> - <source>Select program file</source> - <translation>Seleccione archivo de programa</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>No puedo encontrar el programa <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>El archivo <b>%1</b> no es un formato de audio soportado.<br><br>Verifique que todos los programas requeridos están instalados en sus preferencias.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [disco %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation>No puedo escribir el archivo CUE <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>No puedo encontrar el programa <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>El archivo <b>"%1"</b> no existe</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>El archivo <b>%1</b> no es un formato de audio soportado.<br><br>Verifique que todos los programas requeridos están instalados en sus preferencias.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> no es un archivo CUE válido. El disco %2 no tiene etiquetas.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>El nombre del archivo de audio no se ha establecido</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> <translation>No puede usar 'ReplayGain' en archivos con frecuencias de muestreo superiores a 48kHz. Metaflac no soporta estos archivos.</translation> </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> no es un archivo cue válido. La hoja cue no tiene la etiqueta FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> no es un archivo cue válido. Índice incorrecto de pista en %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>El archivo de audio <b>"%1"</b> no existe</translation> + </message> </context> <context> <name>Splitter</name> @@ -1030,10 +1081,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Seleccione otro archivo CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Obtener información de CDDB</translation> </message> @@ -1045,6 +1092,10 @@ <source>Select another audio file</source> <translation>Seleccione otro archivo de audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Elija otro archivo CUE</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1130,9 +1181,24 @@ <translation>Múltiples valores</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Tamaño</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>La conversión no es posible + <translation>La conversión no es posible. %1</translation> </message> </context>
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> - <translation>Seleccione un archivo CUE</translation> - </message> - <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> <translation>Algunos álbumes no serán convertidos, contienen errores. ¿Quiere continuar?</translation> @@ -886,11 +903,6 @@ <translation>Todos los archivos</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Agregar archivo CUE o de audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Seleccionar archivo de audio</translation> @@ -942,19 +954,29 @@ Si la sección de texto que contiene un identificador está rodeado por llaves, estas secciones se ocultarán si el identificador está vacio.</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>Puede navegar al directorio destino. Puede además introducirlo manualmente. + <translation>Puede navegar al directorio destino. Puede además escribirla manualmente. -Si la ruta está vacia o inicia con "." (punto), los archivos resultantes serán puestos en el mismo directorio que el origen.</translation> +Si la ruta queda vacía o inicia con "." (punto), el archivo resultante será colocado en el mismo directorio que el archivo fuente.</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>Use "%1"</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Seleccione archivo cue</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Agregue un archivo de audio o cue</translation> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -980,43 +1002,72 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Seleccionar un archivo de programa</translation> + </message> + <message> <source>%1 program</source> - <translation>%1 programa</translation> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation>Programa %1</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Todos los archivos</translation> </message> - <message> - <source>Select program file</source> - <translation>Seleccionar un archivo de programa</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>No pude encontrar el programa <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>El archivo <b>%1</b> no es un archivo de audio soportado.<br><br>Verifique que todos los programas requeridos estén instalados y en sus preferencias.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation>[disco %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>No pude escribir el archivo CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>No se puede escribir el archivo cue <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>No pude encontrar el programa <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>El archivo <b>"%1"</b> no existe</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>El archivo <b>%1</b> no es un archivo de audio soportado.<br><br>Verifique que todos los programas requeridos estén instalados y en sus preferencias.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> no es un archivo válido. Disco %2 no tiene etiquetas.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>El nombre del archivo de audio no está establecido</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>No puede usar 'ReplayGain' para archivos con ratios de muestra por encima de 48Hz. Metaflac no soporta ese tipo de archivos.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>No puede usar "ReplayGain" para archivos con ratio sobre los 48Hz. Metaflac no soporta dichos archivos.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> no es un archivo cue válido. La hoja cue no posee etiqueta FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> no es un archivo cue válido. Índice de pista incorrecto en %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>El archivo de audio <b>"%1"</b> no existe</translation> </message> </context> <context> @@ -1029,10 +1080,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Seleccionar otro archivo CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Obtener información de CDDB</translation> </message> @@ -1044,6 +1091,10 @@ <source>Select another audio file</source> <translation>Seleccionar otro archivo de audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Seleccione otro archivo cue</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1129,7 +1180,22 @@ <translation>Multiples valores</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Longitud</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>La conversión no es posible. %1</translation>
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> + <message> + <source>Preferences</source> + <translation>Eelistused</translation> + </message> + <message> + <source>General configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Thread count:</source> + <translation type="unfinished"/> + </message> + <message> + <source>The number of threads in the conversion process.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Temporary directory:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Default codepage:</source> + <translation type="unfinished"/> + </message> + <message> + <source>First track pregap:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Rescan</source> + <translation type="unfinished"/> + </message> + <message> + <source>Full path of the external applications</source> + <translation type="unfinished"/> + </message> + <message> + <source>Extract to separate file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Add to first track</source> + <translation type="unfinished"/> + </message> + <message> + <source>General</source> + <translation type="unfinished"/> + </message> + <message> + <source>Programs</source> + <translation>Programmid</translation> + </message> + <message> + <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> + <message> + <source>AAC encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Use quality setting (recommended)</source> + <translation type="unfinished"/> + </message> + <message> + <source>Use bitrate</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bitrate:</source> + <translation>Bitikiirus:</translation> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Flac</name> + <message> + <source>Flac encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Compression:</source> + <translation type="unfinished"/> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <translation>Keelatud</translation> + </message> +</context> +<context> + <name>ConfigPage_Mp3</name> + <message> + <source>MP3 encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Preset:</source> + <translation type="unfinished"/> + </message> + <message> + <source><dt>VBR medium</dt> +<dd>By using a medium Variable BitRate, this preset should provide near transparency to most people and most music.</dd> + +<dt>VBR standard, VBR standard fast</dt> +<dd>By using a standard Variable BitRate, this preset should generally be transparent to most people on most music and is already quite high in quality.</dd> + +<dt>VBR extreme, VBR extreme fast</dt> +<dd>By using the highest possible Variable BitRate, this preset provides slightly higher quality than the standard mode if you have extremely good hearing or high-end audio equipment .</dd> + +<dt>VBR quality</dt> +<dd>This Variable BitRate option lets you specify the output quality.</dd> + +<dt>fast option</dt> +<dd>Enables the new fast VBR for a particular profile. This is recommended.</dd> + +<dt>CBR insane</dt> +<dd>If you must have the absolute highest quality with no regard to file size, you'll achieve it by using this Constant BitRate.</dd> + +<dt>CBR kbps</dt> +<dd>Using this Constant BitRate preset will usually give you good quality at a specified bitrate.</dd> + +<dt>ABR kbps</dt> +<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"/> + </message> + <message> + <source>Use bitrate</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bitrate:</source> + <translation>Bitikiirus:</translation> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation type="unfinished"/> + </message> + <message> + <source>Use quality</source> + <translation type="unfinished"/> + </message> + <message> + <source>Quality:</source> + <translation>Kvaliteet:</translation> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR medium</source> + <translation>VBR medium</translation> + </message> + <message> + <source>VBR standard</source> + <translation>VBR standard</translation> + </message> + <message> + <source>VBR standard fast</source> + <translation>VBR standard fast</translation> + </message> + <message> + <source>VBR extreme</source> + <translation>VBR extreme</translation> + </message> + <message> + <source>VBR extreme fast</source> + <translation>VBR extreme fast</translation> + </message> + <message> + <source>VBR quality</source> + <translation>VBR quality</translation> + </message> + <message> + <source>CBR insane</source> + <translation>CBR insane</translation> + </message> + <message> + <source>CBR kbps</source> + <translation>CBR kbps</translation> + </message> + <message> + <source>ABR kbps</source> + <translation>ABR kbps</translation> + </message> +</context> +<context> + <name>ConfigPage_Ogg</name> + <message> + <source>Ogg encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Use quality setting (recommended)</source> + <translation type="unfinished"/> + </message> + <message> + <source>Use bitrate</source> + <translation type="unfinished"/> + </message> + <message> + <source>Minimal bitrate:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Sets minimum bitrate (in kb/s).</source> + <translation type="unfinished"/> + </message> + <message> + <source>Nominal bitrate:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation type="unfinished"/> + </message> + <message> + <source>Maximum bitrate:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Sets maximum bitrate (in kb/s).</source> + <translation type="unfinished"/> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Opus</name> + <message> + <source>Opus encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bitrate type:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bitrate:</source> + <translation>Bitikiirus:</translation> + </message> + <message> + <source>VBR - variable bitrate</source> + <translation type="unfinished"/> + </message> + <message> + <source>CBR - constrained bitrate</source> + <translation type="unfinished"/> + </message> + <message> + <source><dt>VBR</dt> +<dd>Use variable bitrate encoding (recommended). In VBR mode, the bitrate may go up and down freely depending on the content ensure quality consistency.</dd> + +<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"/> + </message> + <message> + <source>Sets the target bitrate in kb/s (6-256 per channel). +<p> +In VBR mode, this sets the average rate for a large and diverse collection of audio. +<p> +In CBR mode, it sets the specific output bitrate. +</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Wv</name> + <message> + <source>WavPack encoding configuration</source> + <translation type="unfinished"/> + </message> + <message> + <source>Compression:</source> + <translation type="unfinished"/> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>Converter</name> + <message> + <source>I can't create directory "%1".</source> + <translation type="unfinished"/> + </message> + <message> + <source>I can't write to directory "%1".</source> + <translation type="unfinished"/> + </message> + <message> + <source>Conversion is not possible:</source> + <translation type="unfinished"/> + </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 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> +<context> + <name>Encoder</name> + <message> + <source>I can't delete file: +%1 +%2</source> + <translation type="unfinished"/> + </message> + <message> + <source>Encoder error: +</source> + <translation>Kodeerija viga: +</translation> + </message> + <message> + <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>EncoderConfigPage</name> + <message> + <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> + <translation type="unfinished"/> + </message> + <message> + <source>Sets compression level, between %1 (fastest) and %2 (highest compression). +This only affects the file size. All settings are lossless.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <comment>ReplayGain type combobox</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Per Track</source> + <comment>ReplayGain type combobox</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Per Album</source> + <comment>ReplayGain type combobox</comment> + <translation type="unfinished"/> + </message> + <message> + <source>ReplayGain is a standard to normalize the perceived loudness of computer audio formats. + +The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. +Using the album-gain analysis will preserve the volume differences within an album.</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 kbps</source> + <translation>%1 kbps</translation> + </message> + <message> + <source>Default</source> + <translation>Vaikimisi</translation> + </message> +</context> +<context> + <name>Encoder_Wav</name> + <message> + <source>I can't rename file: +%1 to %2 +%3</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>Gain</name> + <message> + <source>Gain error: +</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <source>Flacon</source> + <translation>Flacon</translation> + </message> + <message> + <source>Result Files</source> + <translation type="unfinished"/> + </message> + <message> + <source>Directory:</source> + <translation>Kataloog:</translation> + </message> + <message> + <source>Pattern:</source> + <translation>Muster:</translation> + </message> + <message> + <source>Format:</source> + <translation>Vorming:</translation> + </message> + <message> + <source>Output format</source> + <comment>Main form tooltip for "Format" edit</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Tags</source> + <translation type="unfinished"/> + </message> + <message> + <source>Genre:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Year:</source> + <translation>Aasta:</translation> + </message> + <message> + <source>Artist:</source> + <translation>Esitaja:</translation> + </message> + <message> + <source>Album:</source> + <translation>Album:</translation> + </message> + <message> + <source>Start num:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disc ID:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Codepage:</source> + <translation type="unfinished"/> + </message> + <message> + <source>&File</source> + <translation>&Fail</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Sätted</translation> + </message> + <message> + <source>&Help</source> + <translation>&Abi</translation> + </message> + <message> + <source>Add file</source> + <translation>Lisa fail</translation> + </message> + <message> + <source>Add CUE or audio file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+O</source> + <translation>Ctrl+O</translation> + </message> + <message> + <source>Convert</source> + <translation type="unfinished"/> + </message> + <message> + <source>Start conversion process</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+W</source> + <translation>Ctrl+W</translation> + </message> + <message> + <source>Abort</source> + <translation>Katkesta</translation> + </message> + <message> + <source>Abort conversion process</source> + <translation type="unfinished"/> + </message> + <message> + <source>Exit</source> + <translation>Välju</translation> + </message> + <message> + <source>Ctrl+Q</source> + <translation>Ctrl+Q</translation> + </message> + <message> + <source>&Preferences</source> + <translation>&Eelistused</translation> + </message> + <message> + <source>Program preferences</source> + <translation type="unfinished"/> + </message> + <message> + <source>&About Flacon</source> + <translation type="unfinished"/> + </message> + <message> + <source>Remove album</source> + <translation>Eemalda album</translation> + </message> + <message> + <source>Remove album from project</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+Del</source> + <translation>Ctrl+Del</translation> + </message> + <message> + <source>Configure encoder</source> + <translation type="unfinished"/> + </message> + <message> + <source>...</source> + <translation type="unfinished"/> + </message> + <message> + <source>Select result directory</source> + <translation type="unfinished"/> + </message> + <message> + <source>Get from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Get album information from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+I</source> + <translation>Ctrl+I</translation> + </message> + <message> + <source>Scan</source> + <translation type="unfinished"/> + </message> + <message> + <source>Recursive album search</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Track number"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Total number of tracks"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Artist"</source> + <translation>Lisa "Esitaja"</translation> + </message> + <message> + <source>Insert "Album title"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Track title"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Year"</source> + <translation>Lisa "Aasta"</translation> + </message> + <message> + <source>Insert "Genre"</source> + <translation>Lisa "Žanr"</translation> + </message> + <message> + <source>Some albums will not be converted, they contain errors. +Do you want to continue?</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 files</source> + <comment>OpenFile dialog filter line, like "WAV files"</comment> + <translation type="unfinished"/> + </message> + <message> + <source>All supported formats</source> + <comment>OpenFile dialog filter line</comment> + <translation type="unfinished"/> + </message> + <message> + <source>All files</source> + <comment>OpenFile dialog filter line like "All files"</comment> + <translation>Kõik failid</translation> + </message> + <message> + <source>Select audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select directory</source> + <translation>Vali kataloog</translation> + </message> + <message> + <source>Flacon</source> + <comment>Error</comment> + <translation>Flacon</translation> + </message> + <message> + <source><style type="text/css"> +.term {font-weight: bold;} +.def { white-space: nowrap; } +</style> +Tokens start with %. You can use the following tokens: +<table> +<tr><td class="term">%n</td> <td class="def"> - Track number </td> + <td class="term">%N</td> <td class="def"> - Total number of tracks</td></tr> +<tr><td class="term">%a</td> <td class="def"> - Artist</td> + <td class="term">%A</td> <td class="def"> - Album title</td></tr> +<tr><td class="term">%t</td> <td class="def"> - Track title</td> + <td class="term">%y</td> <td class="def"> - Year</td></tr> +<tr><td class="term">%g</td> <td class="def"> - Genre</td> + <td class="term"></td> <td class="def"></td></tr> +</table> +<br><br> +If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> + <comment>Main form tooltip for "Pattern" edit</comment> + <translation type="unfinished"/> + </message> + <message> + <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 type="unfinished"/> + </message> + <message> + <source>Use "%1"</source> + <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> + <name>MultiValuesComboBox</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MultiValuesLineEdit</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MultiValuesSpinBox</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ProgramEdit</name> + <message> + <source>Select program file</source> + <translation type="unfinished"/> + </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 type="unfinished"/> + </message> + <message> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> + </message> +</context> +<context> + <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> + <source>Flacon</source> + <comment>Error</comment> + <translation type="unfinished"/> + </message> + <message> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> + </message> + <message> + <source>File <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> + </message> + <message> + <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>Splitter</name> + <message> + <source>The number of tracks is higher than expected.</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>TrackView</name> + <message> + <source>Get data from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Edit</source> + <translation type="unfinished"/> + </message> + <message> + <source>Select another audio file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>TrackViewDelegate</name> + <message> + <source>Error</source> + <translation>Viga</translation> + </message> + <message> + <source>Aborted</source> + <translation>Katkestatud</translation> + </message> + <message> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <source>Extracting</source> + <translation type="unfinished"/> + </message> + <message> + <source>Encoding</source> + <translation>Kodeerimine</translation> + </message> + <message> + <source>Queued</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Wait gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Write gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Tracks:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Audio:</source> + <translation>Audio:</translation> + </message> +</context> +<context> + <name>TrackViewModel</name> + <message> + <source>Track</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Title</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Artist</source> + <comment>Table header.</comment> + <translation>Esitaja</translation> + </message> + <message> + <source>Album</source> + <comment>Table header.</comment> + <translation>Album</translation> + </message> + <message> + <source>Comment</source> + <comment>Table header.</comment> + <translation>Kommentaar</translation> + </message> + <message> + <source>File</source> + <comment>Table header.</comment> + <translation>Fail</translation> + </message> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> + <message> + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. +%1</source> + <translation type="unfinished"/> + </message> +</context> +</TS> \ No newline at end of file
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> <message> <source>I can't write to directory "%1".</source> - <translation>Je ne peux pas écrire vers le répertoire "%1".</translation> + <translation>Je ne peux pas écrire dans le répertoire « %1 ».</translation> </message> <message> <source>Conversion is not possible:</source> @@ -569,22 +568,34 @@ </message> </context> <context> - <name>Disk</name> + <name>CueDiskSelectDialog</name> <message> - <source>Audio file not set.</source> - <translation>Fichier audio non spécifié.</translation> + <source>Select disk</source> + <translation>Choisir un disque</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ disque %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>Le fichier cue contient des informations concernant plusieurs disques. Quel disque voulez-vous utiliser ?</translation> </message> +</context> +<context> + <name>Disk</name> <message> - <source>CUE file not set.</source> - <translation>Fichier CUE non spécifié.</translation> + <source>Audio file not set.</source> + <translation>Fichier audio non défini.</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</source> - <translation>Le fichier <b>%1</b> n' est pas un fichier CUE valide.</translation> + <source>Cue file not set.</source> + <translation>Fichier cue non défini.</translation> </message> <message> - <source>File <b>%1</b> contains several FILE tags.<br>These CUE files are not supported yet.</source> - <translation>Le fichier <b>%1</b> contient plusieurs balises FILE.<br>Ces fichiers CUE ne sont pas encore pris en charge.</translation> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Le fichier audio est plus court que prévu d'après le fichier cue.</translation> </message> </context> <context> @@ -600,24 +611,26 @@ <message> <source>Encoder error: </source> - <translation>Erreur de l'encodeur :</translation> + <translation>Erreur de l'encodeur : +</translation> </message> <message> <source>I can't read %1 file</source> - <translation>Je ne peux pas lire le fichier %1 file</translation> + <comment>Encoder error. %1 is a file name.</comment> + <translation>Je ne peux pas lire le fichier %1</translation> </message> </context> <context> <name>EncoderConfigPage</name> <message> <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> - <translation>Spécifie la qualilté d'encodage entre %1 (la plus basse) et %2 (la plus élevée).</translation> + <translation>Définit la qualité d'encodage entre %1 (la plus basse) et %2 (la plus élevée).</translation> </message> <message> <source>Sets compression level, between %1 (fastest) and %2 (highest compression). This only affects the file size. All settings are lossless.</source> - <translation>Spécifie le niveau de compression entre %1 (le plus rapide) et %2 (la plus forte compression). -Ceci affecte seulement la taille du fichier, toujours sans perte.</translation> + <translation>Définit le niveau de compression entre %1 (le plus rapide) et %2 (la plus forte compression). +Cela affecte seulement la taille du fichier, toujours sans perte.</translation> </message> <message> <source>Disabled</source> @@ -639,7 +652,7 @@ The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. Using the album-gain analysis will preserve the volume differences within an album.</source> - <translation>ReplayGain est une norme permettant d'égaliser l'intensité perçue du son pour des formats de fichiers audio sur ordinateur. + <translation>ReplayGain est une norme permettant d'égaliser l'intensité perçue du son des formats de fichiers audio sur ordinateur. L'analyse peut être effectuée sur des pistes individuelles de manière à ce que toutes les pistes soient jouées à un volume sonore équivalent. L'utilisation de l'analyse par album permet de préserver les différences de volume pour un même album.</translation> @@ -680,7 +693,7 @@ </message> <message> <source>Result Files</source> - <translation>Fichiers de destination</translation> + <translation>Fichiers de sortie</translation> </message> <message> <source>Directory:</source> @@ -721,7 +734,7 @@ </message> <message> <source>Start num:</source> - <translation>Numéro de départ :</translation> + <translation>Numéro de début :</translation> </message> <message> <source>Disc ID:</source> @@ -749,7 +762,7 @@ </message> <message> <source>Add CUE or audio file</source> - <translation>Ajouter un fichier CUE ou audio</translation> + <translation>Ajouter un fichier cue ou audio</translation> </message> <message> <source>Ctrl+O</source> @@ -761,7 +774,7 @@ </message> <message> <source>Start conversion process</source> - <translation>Démarrer la conversion</translation> + <translation>Démarrer le processus de conversion</translation> </message> <message> <source>Ctrl+W</source> @@ -769,11 +782,11 @@ </message> <message> <source>Abort</source> - <translation>Annuler</translation> + <translation>Interrompre</translation> </message> <message> <source>Abort conversion process</source> - <translation>Annuler la conversion</translation> + <translation>Interrompre le processus de conversion</translation> </message> <message> <source>Exit</source> @@ -797,11 +810,11 @@ </message> <message> <source>Remove album</source> - <translation>Enlever l'album</translation> + <translation>Retirer l'album</translation> </message> <message> <source>Remove album from project</source> - <translation>Enlever l'album du projet</translation> + <translation>Retirer l'album du projet</translation> </message> <message> <source>Ctrl+Del</source> @@ -821,7 +834,7 @@ </message> <message> <source>Get from CDDB</source> - <translation>Récupèrer sur CDDB</translation> + <translation>Récupérer sur CDDB</translation> </message> <message> <source>Get album information from CDDB</source> @@ -837,40 +850,35 @@ </message> <message> <source>Recursive album search</source> - <translation>Recherche récursive d'album</translation> + <translation>Recherche récursive d'albums</translation> </message> <message> <source>Insert "Track number"</source> - <translation>Insèrer le "Numéro de piste"</translation> + <translation>Insérer le « Numéro de piste »</translation> </message> <message> <source>Insert "Total number of tracks"</source> - <translation>Insèrer le "Nombre total de pistes"</translation> + <translation>Insérer le « Nombre total de pistes »</translation> </message> <message> <source>Insert "Artist"</source> - <translation>Insèrer l'"Artiste"</translation> + <translation>Insérer l'« Artiste »</translation> </message> <message> <source>Insert "Album title"</source> - <translation>Insèrer le "Titre de l'album"</translation> + <translation>Insérer le « Titre de l'album »</translation> </message> <message> <source>Insert "Track title"</source> - <translation>Insèrer le "Titre de la piste"</translation> + <translation>Insérer le « Titre de la piste »</translation> </message> <message> <source>Insert "Year"</source> - <translation>Insèrer l'"Année"</translation> + <translation>Insérer l'« Année »</translation> </message> <message> <source>Insert "Genre"</source> - <translation>Insèrer le "Genre"</translation> - </message> - <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation>Choisir le fichier CUE</translation> + <translation>Insérer le « Genre »</translation> </message> <message> <source>Some albums will not be converted, they contain errors. @@ -894,11 +902,6 @@ <translation>Tous les fichiers</translation> </message> <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation>Ajouter un fichier CUE ou audio</translation> - </message> - <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> <translation>Choisir le fichier audio</translation> @@ -932,53 +935,47 @@ If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> <comment>Main form tooltip for "Pattern" edit</comment> <translation><style type="text/css"> - .term {font-weight: bold;} - .def { white-space: nowrap; } - </style> - - Les marqueurs commencent avec %. Vous pouvez utiliser les marqueurs suivants : - +Les marqueurs commencent par %. Vous pouvez utiliser les marqueurs suivants : <table> - <tr><td class="term">%n</td> <td class="def"> - Numéro de piste </td> - <td class="term">%N</td> <td class="def"> - Nombre total de pistes</td></tr> - <tr><td class="term">%a</td> <td class="def"> - Artiste</td> - <td class="term">%A</td> <td class="def"> - Titre de l'album</td></tr> - <tr><td class="term">%t</td> <td class="def"> - Titre de la piste</td> - <td class="term">%y</td> <td class="def"> - Année</td></tr> - <tr><td class="term">%g</td> <td class="def"> - Genre</td> - <td class="term"></td> <td class="def"></td></tr> - </table> - <br><br> - - Si vous entourez avec des accolades les sections de texte qui contiennent un marqueur, ces sections seront cachées si le marqueur est vide.</translation> +Si vous entourez des sections de texte contenant un marqueur avec des accolades, ces sections seront cachées si le marqueur est vide.</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>Vous pouvez naviguer vers le dossier de destination. Vous pouvez aussi le saisir manuellement. + <translation>Vous pouvez naviguer vers le répertoire de destination. Vous pouvez aussi le saisir manuellement. -Si le chemin est laissé vide ou commence par « . » (point), les fichiers seront placés dans le même dossier que la source.</translation> +Si le chemin est laissé vide ou commence par « . » (point), les fichiers de sortie seront placés dans le même répertoire que la source.</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>Utiliser « %1 »</translation> </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Sélectionner le fichier cue</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Ajoute un fichier cue ou audio</translation> + </message> </context> <context> <name>MultiValuesComboBox</name> @@ -1004,43 +1001,72 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Choisir le fichier de programme</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>Programme %1</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Tous les fichiers</translation> </message> - <message> - <source>Select program file</source> - <translation>Choisir le fichier du programme</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Je ne peux pas trouver le programme <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>Le fichier <b>%1</b> n'est pas un fichier audio pris en charge. <br><br>Vérifiez que tous les programmes requis sont installés, et vérifiez aussi vos préférences.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation>[disque %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Je ne peux pas écrire le fichier CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>Je ne peux pas écrire le fichier cue <b>%1</b>:<br>%2.</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Je ne peux pas trouver le programme <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>Le fichier <b>« %1 »</b> n'existe pas</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>Le fichier <b>%1</b> n'est pas un fichier audio pris en charge. <br><br>Vérifier que tous les programmes requis sont installés ainsi que vos préférences.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> n'est pas un fichier cue valide. Le disque %2 n'a pas de balise.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Le nom du fichier audio n'est pas défini</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>Vous ne pouvez pas utiliser "ReplayGain" pour des fichiers avec un débit d’échantillonnage supérieur à 48 kHz. Metaflac ne prend pas ces fichiers en charge.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>vous ne pouvez pas utiliser « ReplayGain » pour des fichiers dont le débit d’échantillonnage est supérieur à 48 kHz. Metaflac ne prend pas ces fichiers en charge.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> n'est pas un fichier cue valide. Il n'as pas de balise FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> n'est pas un fichier cue valide. Index de piste erroné en %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Le fichier audio <b>« %1 »</b> n'existe pas</translation> </message> </context> <context> @@ -1053,21 +1079,21 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Choisir un autre fichier CUE</translation> - </message> - <message> <source>Get data from CDDB</source> - <translation>Obtenir les données de CDDB (Base de données de disques compacts)</translation> + <translation>Obtenir les données de CDDB</translation> </message> <message> <source>Edit</source> - <translation>Éditer</translation> + <translation>Modifier</translation> </message> <message> <source>Select another audio file</source> <translation>Choisir un autre fichier audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Choisir un autre fichier cue</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1153,7 +1179,22 @@ <translation>Valeurs multiples</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Durée</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>La conversion est impossible. %1</translation>
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> + <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>O ficheiro <b>%1</b> non é un tipo de ficheiro compatíbel. <br><br>Verifique que todos os programas requiridos están instalados e que estean incluídos nas súas preferencias.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Non se puido escribir o ficheiro CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Non se puido encontrar o programa <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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>O ficheiro <b>%1</b> non é un tipo de ficheiro compatíbel. <br><br>Verifique que todos os programas requiridos están instalados e que estean incluídos nas súas preferencias.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>Non pode usar ReplayGain nos ficheiros cunha taxa de mostra superior a 48kHz. Metaflac non é compatíbel con este tipo de ficheiros.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1012,10 +1054,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Seleccionar outro ficheiro CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Obter datos desde CDDB</translation> </message> @@ -1027,6 +1065,10 @@ <source>Select another audio file</source> <translation>Seleccionar outro ficheiro de audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1112,10 +1154,24 @@ <translation>Múltiplos valores</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Non é posíbel efectuar a conversión. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Impossibile trovare il programma <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>Il file <b>%1</b> non è un file audio supportato.<br><br>Verifica che tutti i programmi richiesti siano installati e siano nelle tue preferenze.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Impossibile scrivere il file CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Impossibile trovare il programma <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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>Il file <b>%1</b> non è un file audio supportato.<br><br>Verifica che tutti i programmi richiesti siano installati e siano nelle tue preferenze.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>Non puoi usare il 'ReplayGain' per file che hanno una frequenza superiore ai 48kHz. Metaflac non supporta questi file.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1008,10 +1048,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Seleziona un'altro file CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Ottieni dati da CDDB</translation> </message> @@ -1023,6 +1059,10 @@ <source>Select another audio file</source> <translation>Seleziona un'altro file audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1108,10 +1148,24 @@ <translation>Valori multipli</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Impossibile convertire. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> + <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> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon/フラッコン</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>CUE fileの書き込みができません。 <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>プログラムを見つけられません。→ <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>48kHz以上のサンプルレートでは'リプライゲイン'はファイルに使えません。Metaflac はそのようなフィアルをサポートしません。</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -986,10 +1028,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>別のCUEファイルを選択</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>CDDBからデータを取得</translation> </message> @@ -1001,6 +1039,10 @@ <source>Select another audio file</source> <translation>別のオーディオファイルを選択</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1086,10 +1128,24 @@ <translation>複数の values</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>変換は不可能です。 -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nepavyksta rasti programos <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>Failas <b>%1</b> nėra palaikomas garso failas. <br><br>Įsitikinkite, kad visos programos yra įdiegtos ir yra jūsų nuostatose.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [diskas %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Nepavyksta įrašyti CUE failo <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>Nepavyksta įrašyti cue failo <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Nepavyksta rasti programos <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>Failo <b>"%1"</b> nėra</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>Failas <b>%1</b> nėra palaikomas garso failas. <br><br>Įsitikinkite, kad visos programos yra įdiegtos ir yra jūsų nuostatose.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> nėra taisyklingas cue failas. Diskas %2 neturi žymių.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Nenustatytas garso failas pavadinimas</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>jūs negalite naudoti 'ReplayGain' failams, kurių skaitmeninimo dažnis yra didesnis nei 48kHz. Metaflac tokių failų nepalaiko.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>jūs negalite naudoti "ReplayGain" failams, kurių skaitmeninimo dažnis yra didesnis nei 48kHz. Metaflac tokių failų nepalaiko.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> nėra taisyklingas cue failas. Cue lapas neturi FILE žymės.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> nėra taisyklingas cue failas. Neteisingas takelio indeksas ties %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Garso failo <b>"%1"</b> nėra</translation> </message> </context> <context> @@ -1039,10 +1081,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Pasirinkti kitą CUE failą</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Gauti duomenis iš CDDB</translation> </message> @@ -1054,6 +1092,10 @@ <source>Select another audio file</source> <translation>Pasirinkti kitą garso failą</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Pasirinkti kitą cue failą</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1139,7 +1181,22 @@ <translation>Kelios reikšmės</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Ilgis</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>Konvertavimas neįmanomas. %1</translation>
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> + <message> + <source>Preferences</source> + <translation>Innstillinger</translation> + </message> + <message> + <source>General configuration</source> + <translation>Generell konfigurasjon</translation> + </message> + <message> + <source>Thread count:</source> + <translation type="unfinished"/> + </message> + <message> + <source>The number of threads in the conversion process.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Temporary directory:</source> + <translation>Midlertidig katalog:</translation> + </message> + <message> + <source>Default codepage:</source> + <translation type="unfinished"/> + </message> + <message> + <source>First track pregap:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Rescan</source> + <translation>Søk på nytt</translation> + </message> + <message> + <source>Full path of the external applications</source> + <translation type="unfinished"/> + </message> + <message> + <source>Extract to separate file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Add to first track</source> + <translation type="unfinished"/> + </message> + <message> + <source>General</source> + <translation>Generelt</translation> + </message> + <message> + <source>Programs</source> + <translation>Programmer</translation> + </message> + <message> + <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> + <message> + <source>AAC encoding configuration</source> + <translation>Konfigurasjon for AAC-koding</translation> + </message> + <message> + <source>Use quality setting (recommended)</source> + <translation>Bruk kvalitetoppsett (anbefalt)</translation> + </message> + <message> + <source>Use bitrate</source> + <translation>Bruk bithastighet</translation> + </message> + <message> + <source>Bitrate:</source> + <translation>Bithastighet:</translation> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation>Stiller bithastighetsmål (i kb/s).</translation> + </message> +</context> +<context> + <name>ConfigPage_Flac</name> + <message> + <source>Flac encoding configuration</source> + <translation>Konfigurasjon for Flac-koding</translation> + </message> + <message> + <source>Compression:</source> + <translation>Komprimering:</translation> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <translation>Deaktivert</translation> + </message> +</context> +<context> + <name>ConfigPage_Mp3</name> + <message> + <source>MP3 encoding configuration</source> + <translation>Konfigurasjon for MP3-koding</translation> + </message> + <message> + <source>Preset:</source> + <translation>Forvalg:</translation> + </message> + <message> + <source><dt>VBR medium</dt> +<dd>By using a medium Variable BitRate, this preset should provide near transparency to most people and most music.</dd> + +<dt>VBR standard, VBR standard fast</dt> +<dd>By using a standard Variable BitRate, this preset should generally be transparent to most people on most music and is already quite high in quality.</dd> + +<dt>VBR extreme, VBR extreme fast</dt> +<dd>By using the highest possible Variable BitRate, this preset provides slightly higher quality than the standard mode if you have extremely good hearing or high-end audio equipment .</dd> + +<dt>VBR quality</dt> +<dd>This Variable BitRate option lets you specify the output quality.</dd> + +<dt>fast option</dt> +<dd>Enables the new fast VBR for a particular profile. This is recommended.</dd> + +<dt>CBR insane</dt> +<dd>If you must have the absolute highest quality with no regard to file size, you'll achieve it by using this Constant BitRate.</dd> + +<dt>CBR kbps</dt> +<dd>Using this Constant BitRate preset will usually give you good quality at a specified bitrate.</dd> + +<dt>ABR kbps</dt> +<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"/> + </message> + <message> + <source>Use bitrate</source> + <translation>Bruk bithastighet</translation> + </message> + <message> + <source>Bitrate:</source> + <translation>Bithastighet:</translation> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation>Stiller bithastighetsmål (i kb/s).</translation> + </message> + <message> + <source>Use quality</source> + <translation>Bruk kvalitet</translation> + </message> + <message> + <source>Quality:</source> + <translation>Kvalitet:</translation> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR medium</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR standard</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR standard fast</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR extreme</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR extreme fast</source> + <translation type="unfinished"/> + </message> + <message> + <source>VBR quality</source> + <translation type="unfinished"/> + </message> + <message> + <source>CBR insane</source> + <translation type="unfinished"/> + </message> + <message> + <source>CBR kbps</source> + <translation type="unfinished"/> + </message> + <message> + <source>ABR kbps</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Ogg</name> + <message> + <source>Ogg encoding configuration</source> + <translation>Konfigurasjon for Ogg-koding</translation> + </message> + <message> + <source>Use quality setting (recommended)</source> + <translation>Bruk kvalitetoppsett (anbefalt)</translation> + </message> + <message> + <source>Use bitrate</source> + <translation>Bruk bithastighet</translation> + </message> + <message> + <source>Minimal bitrate:</source> + <translation>Minste bithastighet:</translation> + </message> + <message> + <source>Sets minimum bitrate (in kb/s).</source> + <translation>Stiller minste bithastighet (i kb/s).</translation> + </message> + <message> + <source>Nominal bitrate:</source> + <translation>Nominell bithastighet:</translation> + </message> + <message> + <source>Sets target bitrate (in kb/s).</source> + <translation>Stiller bithastighetsmål (i kb/s).</translation> + </message> + <message> + <source>Maximum bitrate:</source> + <translation>Maksimal bithastighet:</translation> + </message> + <message> + <source>Sets maximum bitrate (in kb/s).</source> + <translation>Stiller maksimal bithastighet (i kb/s).</translation> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Opus</name> + <message> + <source>Opus encoding configuration</source> + <translation>Konfigurasjon for Opus-koding</translation> + </message> + <message> + <source>Bitrate type:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Bitrate:</source> + <translation>Bithastighet:</translation> + </message> + <message> + <source>VBR - variable bitrate</source> + <translation>VBR - variabel bithastighet</translation> + </message> + <message> + <source>CBR - constrained bitrate</source> + <translation>CBR - avgrenset bithastighet</translation> + </message> + <message> + <source><dt>VBR</dt> +<dd>Use variable bitrate encoding (recommended). In VBR mode, the bitrate may go up and down freely depending on the content ensure quality consistency.</dd> + +<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"/> + </message> + <message> + <source>Sets the target bitrate in kb/s (6-256 per channel). +<p> +In VBR mode, this sets the average rate for a large and diverse collection of audio. +<p> +In CBR mode, it sets the specific output bitrate. +</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ConfigPage_Wv</name> + <message> + <source>WavPack encoding configuration</source> + <translation>Konfigurasjon for WavPack-koding</translation> + </message> + <message> + <source>Compression:</source> + <translation>Komprimering:</translation> + </message> + <message> + <source>ReplayGain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <translation>Deaktivert</translation> + </message> +</context> +<context> + <name>Converter</name> + <message> + <source>I can't create directory "%1".</source> + <translation type="unfinished"/> + </message> + <message> + <source>I can't write to directory "%1".</source> + <translation type="unfinished"/> + </message> + <message> + <source>Conversion is not possible:</source> + <translation type="unfinished"/> + </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 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> +<context> + <name>Encoder</name> + <message> + <source>I can't delete file: +%1 +%2</source> + <translation type="unfinished"/> + </message> + <message> + <source>Encoder error: +</source> + <translation type="unfinished"/> + </message> + <message> + <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>EncoderConfigPage</name> + <message> + <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> + <translation>Stiller kodingkvalitet, mellom %1 (lavest) og %2 (høyest).</translation> + </message> + <message> + <source>Sets compression level, between %1 (fastest) and %2 (highest compression). +This only affects the file size. All settings are lossless.</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disabled</source> + <comment>ReplayGain type combobox</comment> + <translation>Deaktivert</translation> + </message> + <message> + <source>Per Track</source> + <comment>ReplayGain type combobox</comment> + <translation>Per spor</translation> + </message> + <message> + <source>Per Album</source> + <comment>ReplayGain type combobox</comment> + <translation>Per album</translation> + </message> + <message> + <source>ReplayGain is a standard to normalize the perceived loudness of computer audio formats. + +The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. +Using the album-gain analysis will preserve the volume differences within an album.</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 kbps</source> + <translation type="unfinished"/> + </message> + <message> + <source>Default</source> + <translation>Standard</translation> + </message> +</context> +<context> + <name>Encoder_Wav</name> + <message> + <source>I can't rename file: +%1 to %2 +%3</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>Gain</name> + <message> + <source>Gain error: +</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <source>Flacon</source> + <translation>Flacon</translation> + </message> + <message> + <source>Result Files</source> + <translation type="unfinished"/> + </message> + <message> + <source>Directory:</source> + <translation>Katalog:</translation> + </message> + <message> + <source>Pattern:</source> + <translation>Mønster:</translation> + </message> + <message> + <source>Format:</source> + <translation>Format:</translation> + </message> + <message> + <source>Output format</source> + <comment>Main form tooltip for "Format" edit</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Tags</source> + <translation type="unfinished"/> + </message> + <message> + <source>Genre:</source> + <translation>Sjanger:</translation> + </message> + <message> + <source>Year:</source> + <translation>År:</translation> + </message> + <message> + <source>Artist:</source> + <translation>Artist:</translation> + </message> + <message> + <source>Album:</source> + <translation>Album:</translation> + </message> + <message> + <source>Start num:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Disc ID:</source> + <translation type="unfinished"/> + </message> + <message> + <source>Codepage:</source> + <translation type="unfinished"/> + </message> + <message> + <source>&File</source> + <translation>&Fil</translation> + </message> + <message> + <source>&Settings</source> + <translation type="unfinished"/> + </message> + <message> + <source>&Help</source> + <translation>&Hjelp</translation> + </message> + <message> + <source>Add file</source> + <translation>Legg til fil</translation> + </message> + <message> + <source>Add CUE or audio file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+O</source> + <translation type="unfinished"/> + </message> + <message> + <source>Convert</source> + <translation>Konvertere</translation> + </message> + <message> + <source>Start conversion process</source> + <translation>Start konverteringsprosess</translation> + </message> + <message> + <source>Ctrl+W</source> + <translation type="unfinished"/> + </message> + <message> + <source>Abort</source> + <translation>Avbryt</translation> + </message> + <message> + <source>Abort conversion process</source> + <translation>Avbryt konverteringsprosess</translation> + </message> + <message> + <source>Exit</source> + <translation>Avslutt</translation> + </message> + <message> + <source>Ctrl+Q</source> + <translation type="unfinished"/> + </message> + <message> + <source>&Preferences</source> + <translation type="unfinished"/> + </message> + <message> + <source>Program preferences</source> + <translation type="unfinished"/> + </message> + <message> + <source>&About Flacon</source> + <translation>&Om Flacon</translation> + </message> + <message> + <source>Remove album</source> + <translation type="unfinished"/> + </message> + <message> + <source>Remove album from project</source> + <translation>Fjern album fra prosjekt</translation> + </message> + <message> + <source>Ctrl+Del</source> + <translation type="unfinished"/> + </message> + <message> + <source>Configure encoder</source> + <translation type="unfinished"/> + </message> + <message> + <source>...</source> + <translation> ...</translation> + </message> + <message> + <source>Select result directory</source> + <translation type="unfinished"/> + </message> + <message> + <source>Get from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Get album information from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Ctrl+I</source> + <translation type="unfinished"/> + </message> + <message> + <source>Scan</source> + <translation>Søk</translation> + </message> + <message> + <source>Recursive album search</source> + <translation>Rekursivt albumsøk</translation> + </message> + <message> + <source>Insert "Track number"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Total number of tracks"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Artist"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Album title"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Track title"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Year"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Insert "Genre"</source> + <translation type="unfinished"/> + </message> + <message> + <source>Some albums will not be converted, they contain errors. +Do you want to continue?</source> + <translation type="unfinished"/> + </message> + <message> + <source>%1 files</source> + <comment>OpenFile dialog filter line, like "WAV files"</comment> + <translation type="unfinished"/> + </message> + <message> + <source>All supported formats</source> + <comment>OpenFile dialog filter line</comment> + <translation type="unfinished"/> + </message> + <message> + <source>All files</source> + <comment>OpenFile dialog filter line like "All files"</comment> + <translation>Alle filer</translation> + </message> + <message> + <source>Select audio file</source> + <comment>OpenFile dialog title</comment> + <translation type="unfinished"/> + </message> + <message> + <source>Select directory</source> + <translation type="unfinished"/> + </message> + <message> + <source>Flacon</source> + <comment>Error</comment> + <translation>Flacon</translation> + </message> + <message> + <source><style type="text/css"> +.term {font-weight: bold;} +.def { white-space: nowrap; } +</style> +Tokens start with %. You can use the following tokens: +<table> +<tr><td class="term">%n</td> <td class="def"> - Track number </td> + <td class="term">%N</td> <td class="def"> - Total number of tracks</td></tr> +<tr><td class="term">%a</td> <td class="def"> - Artist</td> + <td class="term">%A</td> <td class="def"> - Album title</td></tr> +<tr><td class="term">%t</td> <td class="def"> - Track title</td> + <td class="term">%y</td> <td class="def"> - Year</td></tr> +<tr><td class="term">%g</td> <td class="def"> - Genre</td> + <td class="term"></td> <td class="def"></td></tr> +</table> +<br><br> +If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> + <comment>Main form tooltip for "Pattern" edit</comment> + <translation type="unfinished"/> + </message> + <message> + <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 type="unfinished"/> + </message> + <message> + <source>Use "%1"</source> + <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> + <name>MultiValuesComboBox</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MultiValuesLineEdit</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>MultiValuesSpinBox</name> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>ProgramEdit</name> + <message> + <source>Select program file</source> + <translation type="unfinished"/> + </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 type="unfinished"/> + </message> + <message> + <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> + <translation type="unfinished"/> + </message> +</context> +<context> + <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> + <source>Flacon</source> + <comment>Error</comment> + <translation type="unfinished"/> + </message> + <message> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> + </message> + <message> + <source>File <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> + </message> + <message> + <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>Splitter</name> + <message> + <source>The number of tracks is higher than expected.</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>TrackView</name> + <message> + <source>Get data from CDDB</source> + <translation type="unfinished"/> + </message> + <message> + <source>Edit</source> + <translation>Rediger</translation> + </message> + <message> + <source>Select another audio file</source> + <translation type="unfinished"/> + </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>TrackViewDelegate</name> + <message> + <source>Error</source> + <translation>Feil</translation> + </message> + <message> + <source>Aborted</source> + <translation>Avbrutt</translation> + </message> + <message> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <source>Extracting</source> + <translation type="unfinished"/> + </message> + <message> + <source>Encoding</source> + <translation>Koding</translation> + </message> + <message> + <source>Queued</source> + <translation type="unfinished"/> + </message> + <message> + <source>Calculate gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Wait gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Write gain</source> + <translation type="unfinished"/> + </message> + <message> + <source>Tracks:</source> + <translation>Spor:</translation> + </message> + <message> + <source>Audio:</source> + <translation type="unfinished"/> + </message> +</context> +<context> + <name>TrackViewModel</name> + <message> + <source>Track</source> + <comment>Table header.</comment> + <translation>Spor</translation> + </message> + <message> + <source>Title</source> + <comment>Table header.</comment> + <translation>Tittel</translation> + </message> + <message> + <source>Artist</source> + <comment>Table header.</comment> + <translation>Artist</translation> + </message> + <message> + <source>Album</source> + <comment>Table header.</comment> + <translation>Album</translation> + </message> + <message> + <source>Comment</source> + <comment>Table header.</comment> + <translation>Kommentar</translation> + </message> + <message> + <source>File</source> + <comment>Table header.</comment> + <translation>Fil</translation> + </message> + <message> + <source>Multiple values</source> + <translation type="unfinished"/> + </message> + <message> + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. +%1</source> + <translation type="unfinished"/> + </message> +</context> +</TS> \ No newline at end of file
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> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nie można znaleźć programu <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>Plik <b>%1</b> nie jest obsługiwanym plikiem dźwiękowym. <br><br>Sprawdź w ustawieniach, czy wszystkie wymagane programy są zainstalowane i skonfigurowane.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Nie można zapisać pliku CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Nie można znaleźć programu <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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>Plik <b>%1</b> nie jest obsługiwanym plikiem dźwiękowym. <br><br>Sprawdź w ustawieniach, czy wszystkie wymagane programy są zainstalowane i skonfigurowane.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>nie możesz użyć trybu 'ReplayGain' dla plików o częstotliwości próbkowania wyższej niż 48kHz. Metaflac nie obsługuje takich plików.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1029,10 +1069,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Wybierz inny plik CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Pobierz dane z CDDB</translation> </message> @@ -1044,6 +1080,10 @@ <source>Select another audio file</source> <translation>Wybierz inny plik audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1129,10 +1169,24 @@ <translation>Wartości wielokrotne</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Konwersja nie jest możliwa. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nie można znaleźć programu <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>Plik <b>%1</b> nie jest obsługiwanym plikiem dźwiękowym. <br><br>Sprawdź w ustawieniach, czy wszystkie wymagane programy są zainstalowane i skonfigurowane.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Flacon</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Nie można zapisać pliku CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Nie można znaleźć programu <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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>Plik <b>%1</b> nie jest obsługiwanym plikiem dźwiękowym. <br><br>Sprawdź w ustawieniach, czy wszystkie wymagane programy są zainstalowane i skonfigurowane.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>nie można użyć trybu 'ReplayGain' dla plików o częstotliwości próbkowania wyższej niż 48kHz. Metaflac nie obsługuje takich plików.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1029,10 +1069,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Wybierz inny plik CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Pobierz dane z CDDB</translation> </message> @@ -1044,6 +1080,10 @@ <source>Select another audio file</source> <translation>Wybierz inny plik audio</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1129,10 +1169,24 @@ <translation>Wartości wielokrotne</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Konwersja nie jest możliwa. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> + <translation>Não foi possível localizar o programa <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>O arquivo <b>%1</b> não é um arquivo de áudio suportado. <br><br>Verifique se todos os programas estão instalados nas suas preferências.</translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [disco %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Não foi possível gravar arquivo CUE <b>%1</b>:<br>%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>Não foi possível gravar arquivo cue <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Não foi possível localizar o programa <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>O arquivo <b>"%1"</b> não existe</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>O arquivo <b>%1</b> não é um arquivo de áudio suportado. <br><br>Verifique se todos os programas estão instalados nas suas preferências.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation>O arquivo <b>%1</b> não é um arquivo cue válido. O disco %2 não possui etiquetas.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Nome do arquivo de áudio não definido</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>Não foi possível usar 'ReplayGain' para arquivos com qualidade superior a 48kHz. Metaflac não suporta esses arquivos.</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>Não é possível usar 'ReplayGain' para arquivos com qualidade superior a 48kHz. Metaflac não suporta esses arquivos.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> não é um arquivo cue válido. O arquivo cue não possui a etiqueta FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> não é um arquivo cue válido. Índice de faixas incorreto em %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>O arquivo de áudio <b>"%1"</b> não existe</translation> </message> </context> <context> @@ -1035,10 +1077,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Selecione outro arquivo CUE</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Obter dados do CDDB</translation> </message> @@ -1050,6 +1088,10 @@ <source>Select another audio file</source> <translation>Selecione outro arquivo de áudio</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Selecione outro arquivo cue</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1135,7 +1177,22 @@ <translation>Valores múltiplos</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Duração</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>Não é possível converter: %1</translation>
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"/> + <translation>Caminho completo para os programas externos</translation> </message> <message> <source>Extract to separate file</source> - <translation type="unfinished"/> + <translation>Extrair para outro ficheiro</translation> </message> <message> <source>Add to first track</source> - <translation type="unfinished"/> + <translation>Adicionar à primeira faixa</translation> </message> <message> <source>General</source> - <translation type="unfinished"/> + <translation>Geral</translation> </message> <message> <source>Programs</source> - <translation type="unfinished"/> + <translation>Programas</translation> </message> <message> <source>Select temporary directory</source> + <translation>Seleccionar pasta temporária</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> @@ -266,57 +266,57 @@ <name>ConfigPage_Aac</name> <message> <source>AAC encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação AAC</translation> </message> <message> <source>Use quality setting (recommended)</source> - <translation type="unfinished"/> + <translation>Usar definição de qualidade (recomendado)</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Usar taxa de bits</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Escolher taxa de bits (em kb/s).</translation> </message> </context> <context> <name>ConfigPage_Flac</name> <message> <source>Flac encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação Flac</translation> </message> <message> <source>Compression:</source> - <translation type="unfinished"/> + <translation>Compressão:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>ReplayGain</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calcular ganho:</translation> </message> <message> <source>Disabled</source> - <translation type="unfinished"/> + <translation>Desactivado</translation> </message> </context> <context> <name>ConfigPage_Mp3</name> <message> <source>MP3 encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação MP3</translation> </message> <message> <source>Preset:</source> - <translation type="unfinished"/> + <translation>Opção:</translation> </message> <message> <source><dt>VBR medium</dt> @@ -344,141 +344,164 @@ <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>VBR médio</dt> +<dd>Se utilizar uma taxa de bits variável média, a fidelidade do som obtido será quase perfeito, na maior parte da músicas e para a maioria das pessoas.</dd> + +<dt>VBR padrão, VBR padrão rápido</dt> +<dd>Se usar uma taxa de bits variável padrão, a fidelidade do som obtido será quase perfeito, na maior parte da músicas e para a maioria das pessoas, já é uma qualidade bastante alta.</dd> + +<dt>VBR elevado, VBR elevado rápido</dt> +<dd>Se usar uma máxima taxa de bits variável, obterá uma qualidade um pouco mais alta do que a opção padrão.</dd> + +<dt>VBR qualidade</dt> +<dd>Esta opção permite que escolher a qualidade.</dd> + +<dt>opção rápido</dt> +<dd>Activa a opção 'VBR rápido' para um determinado perfil. Recomendado.</dd> + +<dt>CBR demente</dt> +<dd>Escolha esta opção para obter a qualidade máxima sem se preocupar com o tamanho do ficheiro.</dd> + +<dt>CBR kbps</dt> +<dd>Se usar esta opção obterá uma boa qualidade para a taxa de bits escolhida.</dd> + +<dt>ABR kbps</dt> +<dd>Se usar esta opção obterá uma qualidade superior à opção 'CBR kbps', para a mesma taxa de bits.dd> +</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Usar taxa de bits</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Escolher taxa de bits (em kb/s).</translation> </message> <message> <source>Use quality</source> - <translation type="unfinished"/> + <translation>Usar qualidade</translation> </message> <message> <source>Quality:</source> - <translation type="unfinished"/> + <translation>Qualidade:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>ReplayGain</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calcular ganho:</translation> </message> <message> <source>VBR medium</source> - <translation type="unfinished"/> + <translation>VBR médio</translation> </message> <message> <source>VBR standard</source> - <translation type="unfinished"/> + <translation>VBR padrão</translation> </message> <message> <source>VBR standard fast</source> - <translation type="unfinished"/> + <translation>VBR padrão rápido</translation> </message> <message> <source>VBR extreme</source> - <translation type="unfinished"/> + <translation>VBR elevado</translation> </message> <message> <source>VBR extreme fast</source> - <translation type="unfinished"/> + <translation>VBR elevado rápido</translation> </message> <message> <source>VBR quality</source> - <translation type="unfinished"/> + <translation>VBR qualidade</translation> </message> <message> <source>CBR insane</source> - <translation type="unfinished"/> + <translation>VBR demente</translation> </message> <message> <source>CBR kbps</source> - <translation type="unfinished"/> + <translation>CBR kbps</translation> </message> <message> <source>ABR kbps</source> - <translation type="unfinished"/> + <translation>ABR kbps</translation> </message> </context> <context> <name>ConfigPage_Ogg</name> <message> <source>Ogg encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação Ogg</translation> </message> <message> <source>Use quality setting (recommended)</source> - <translation type="unfinished"/> + <translation>Usar definição qualidade (recomendado)</translation> </message> <message> <source>Use bitrate</source> - <translation type="unfinished"/> + <translation>Usar taxa de bits</translation> </message> <message> <source>Minimal bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits mínima:</translation> </message> <message> <source>Sets minimum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Escolher taxa de bits mínima (em kb/s).</translation> </message> <message> <source>Nominal bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits nominal:</translation> </message> <message> <source>Sets target bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Escolher taxa de bits (em kb/s).</translation> </message> <message> <source>Maximum bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits máxima:</translation> </message> <message> <source>Sets maximum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Escolher taxa de bits máxima (em kb/s).</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>ReplayGain</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calcular ganho:</translation> </message> </context> <context> <name>ConfigPage_Opus</name> <message> <source>Opus encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação Opus</translation> </message> <message> <source>Bitrate type:</source> - <translation type="unfinished"/> + <translation>Tipo de taxa de bits:</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>Taxa de bits:</translation> </message> <message> <source>VBR - variable bitrate</source> - <translation type="unfinished"/> + <translation>VBR - taxa de bits varável</translation> </message> <message> <source>CBR - constrained bitrate</source> - <translation type="unfinished"/> + <translation>CBR - taxa de bits constante</translation> </message> <message> <source><dt>VBR</dt> @@ -486,14 +509,19 @@ <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>Taxa de bits variável (recomendado). No modo VBR, a taxa de bits poderá subir e descer conforme o tipo de música, de modo a obter-se uma boa qualidade</dd> + +<dt>CBR</dt> +</dd>Taxa de bits constante. Este modo é semelhante aos modos CBR das codificações AAC/MP3 e 'managed' da codificação vorbis. A qualidade resultante é menor de que no modo VBR, mas a taxa de bits é constante.</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"/> </message> @@ -502,34 +530,34 @@ <name>ConfigPage_Wv</name> <message> <source>WavPack encoding configuration</source> - <translation type="unfinished"/> + <translation>Configuração da codificação WavPack</translation> </message> <message> <source>Compression:</source> - <translation type="unfinished"/> + <translation>Compressão:</translation> </message> <message> <source>ReplayGain</source> - <translation type="unfinished"/> + <translation>ReplayGain</translation> </message> <message> <source>Calculate gain:</source> - <translation type="unfinished"/> + <translation>Calcular ganho:</translation> </message> <message> <source>Disabled</source> - <translation type="unfinished"/> + <translation>Desactivado</translation> </message> </context> <context> <name>Converter</name> <message> <source>I can't create directory "%1".</source> - <translation type="unfinished"/> + <translation>Não posso criar a pasta %1.</translation> </message> <message> <source>I can't write to directory "%1".</source> - <translation type="unfinished"/> + <translation>Não posso escrever na pasta %1.</translation> </message> <message> <source>Conversion is not possible:</source> @@ -537,21 +565,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>Audio file not set.</source> + <translation>Ficheiro áudio não definido.</translation> + </message> + <message> + <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> @@ -561,15 +601,19 @@ <source>I can't delete file: %1 %2</source> - <translation type="unfinished"/> + <translation>Não posso apagar o ficheiro: +%1 +%2</translation> </message> <message> <source>Encoder error: </source> - <translation type="unfinished"/> + <translation>Erro na codificação: +</translation> </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation type="unfinished"/> </message> </context> @@ -577,38 +621,38 @@ <name>EncoderConfigPage</name> <message> <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> - <translation>Seleccione a qualidade de codificação, entre %1 (baixa) e %2 (superior).</translation> + <translation>Seleccionar a qualidade de codificação, entre %1 (mais baixa) e %2 (mais alta).</translation> </message> <message> <source>Sets compression level, between %1 (fastest) and %2 (highest compression). This only affects the file size. All settings are lossless.</source> - <translation>Seleccione o nível de compressão, entre %1 (mais rápido) e %2 (maior compressão). -Isto afectará o tamanho do ficheiro. Todas as definições são 'lossless'.</translation> + <translation>Seleccionar o nível de compressão, entre %1 (mais rápido) e %2 (maior compressão). +Isto só afecta o tamanho do ficheiro. Todas as definições são sem perda de dados.</translation> </message> <message> <source>Disabled</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>Desactivado</translation> </message> <message> <source>Per Track</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>Por Faixa</translation> </message> <message> <source>Per Album</source> <comment>ReplayGain type combobox</comment> - <translation type="unfinished"/> + <translation>Por Álbum</translation> </message> <message> <source>ReplayGain is a standard to normalize the perceived loudness of computer audio formats. The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. Using the album-gain analysis will preserve the volume differences within an album.</source> - <translation>ReplayGain é um software padrão para normalizar o volume do audio em computadores. + <translation>ReplayGain é um padrão para a normalização do volume nos formatos áudio digitais. -A análise pode ser implementada em faixas individuais, para que todas as faixas tenham um volume igual quando reproduzidas. -A análise quando feita ao nível do álbum preserva as diferenças de volume dentro do álbum, entre faixas.</translation> +A análise pode ser feita individualmente por faixa, de modo que todas as faixas sejam reproduzidas com o mesmo volume. +Quando a análise é efectuada por álbum, as diferenças de volume entre as faixas do álbum são mantidas.</translation> </message> <message> <source>%1 kbps</source> @@ -625,7 +669,9 @@ <source>I can't rename file: %1 to %2 %3</source> - <translation type="unfinished"/> + <translation>Não posso mudar o nome do ficheiro: +%1 para %2 +%3</translation> </message> </context> <context> @@ -633,247 +679,239 @@ <message> <source>Gain error: </source> - <translation type="unfinished"/> + <translation>Erro no ganho: +</translation> </message> </context> <context> <name>MainWindow</name> <message> <source>Flacon</source> - <translation type="unfinished"/> + <translation>Flacon</translation> </message> <message> <source>Result Files</source> - <translation type="unfinished"/> + <translation>Ficheiros obtidos</translation> </message> <message> <source>Directory:</source> - <translation type="unfinished"/> + <translation>Pasta:</translation> </message> <message> <source>Pattern:</source> - <translation type="unfinished"/> + <translation>Padrão:</translation> </message> <message> <source>Format:</source> - <translation type="unfinished"/> + <translation>Formato:</translation> </message> <message> <source>Output format</source> <comment>Main form tooltip for "Format" edit</comment> - <translation type="unfinished"/> + <translation>Formato de saída</translation> </message> <message> <source>Tags</source> - <translation type="unfinished"/> + <translation>Etiquetas</translation> </message> <message> <source>Genre:</source> - <translation type="unfinished"/> + <translation>Género:</translation> </message> <message> <source>Year:</source> - <translation type="unfinished"/> + <translation>Ano:</translation> </message> <message> <source>Artist:</source> - <translation type="unfinished"/> + <translation>Artista:</translation> </message> <message> <source>Album:</source> - <translation type="unfinished"/> + <translation>Álbum:</translation> </message> <message> <source>Start num:</source> - <translation type="unfinished"/> + <translation>Número inicial:</translation> </message> <message> <source>Disc ID:</source> - <translation type="unfinished"/> + <translation>ID do disco:</translation> </message> <message> <source>Codepage:</source> - <translation type="unfinished"/> + <translation>Página de código:</translation> </message> <message> <source>&File</source> - <translation type="unfinished"/> + <translation>&Ficheiro</translation> </message> <message> <source>&Settings</source> - <translation type="unfinished"/> + <translation>&Definições</translation> </message> <message> <source>&Help</source> - <translation type="unfinished"/> + <translation>&Ajuda</translation> </message> <message> <source>Add file</source> - <translation type="unfinished"/> + <translation>Adicionar ficheiro</translation> </message> <message> <source>Add CUE or audio file</source> - <translation type="unfinished"/> + <translation>Adicionar ficheiro CUE ou áudio</translation> </message> <message> <source>Ctrl+O</source> - <translation type="unfinished"/> + <translation>Ctrl+O</translation> </message> <message> <source>Convert</source> - <translation type="unfinished"/> + <translation>Converter</translation> </message> <message> <source>Start conversion process</source> - <translation type="unfinished"/> + <translation>Começar processo de conversão</translation> </message> <message> <source>Ctrl+W</source> - <translation type="unfinished"/> + <translation>Ctrl+W</translation> </message> <message> <source>Abort</source> - <translation type="unfinished"/> + <translation>Abortar</translation> </message> <message> <source>Abort conversion process</source> - <translation type="unfinished"/> + <translation>Abortar processo de conversão</translation> </message> <message> <source>Exit</source> - <translation type="unfinished"/> + <translation>Sair</translation> </message> <message> <source>Ctrl+Q</source> - <translation type="unfinished"/> + <translation>Ctrl+Q</translation> </message> <message> <source>&Preferences</source> - <translation type="unfinished"/> + <translation>&Preferências</translation> </message> <message> <source>Program preferences</source> - <translation type="unfinished"/> + <translation>Preferências do programa</translation> </message> <message> <source>&About Flacon</source> - <translation type="unfinished"/> + <translation>&Sobre o Flacon</translation> </message> <message> <source>Remove album</source> - <translation type="unfinished"/> + <translation>Remover álbum</translation> </message> <message> <source>Remove album from project</source> - <translation type="unfinished"/> + <translation>Remover álbum do projecto</translation> </message> <message> <source>Ctrl+Del</source> - <translation type="unfinished"/> + <translation>Ctrl+Del</translation> </message> <message> <source>Configure encoder</source> - <translation type="unfinished"/> + <translation>Configurar codificador</translation> </message> <message> <source>...</source> - <translation type="unfinished"/> + <translation>...</translation> </message> <message> <source>Select result directory</source> - <translation type="unfinished"/> + <translation>Seleccionar a pasta de destino</translation> </message> <message> <source>Get from CDDB</source> - <translation type="unfinished"/> + <translation>Obter de CDDB</translation> </message> <message> <source>Get album information from CDDB</source> - <translation type="unfinished"/> + <translation>Obter informação sobre álbum de CDDB</translation> </message> <message> <source>Ctrl+I</source> - <translation type="unfinished"/> + <translation>Ctrl+I</translation> </message> <message> <source>Scan</source> - <translation type="unfinished"/> + <translation>Analisar</translation> </message> <message> <source>Recursive album search</source> - <translation type="unfinished"/> + <translation>Pesquisa do álbum recursiva</translation> </message> <message> <source>Insert "Track number"</source> - <translation type="unfinished"/> + <translation>Inserir "Número da faixa"</translation> </message> <message> <source>Insert "Total number of tracks"</source> - <translation type="unfinished"/> + <translation>Inserir "Número total de faixas"</translation> </message> <message> <source>Insert "Artist"</source> - <translation type="unfinished"/> + <translation>Inserir "Artista"</translation> </message> <message> <source>Insert "Album title"</source> - <translation type="unfinished"/> + <translation>Inserir "Título do álbum"</translation> </message> <message> <source>Insert "Track title"</source> - <translation type="unfinished"/> + <translation>Inserir "Nome da faixa"</translation> </message> <message> <source>Insert "Year"</source> - <translation type="unfinished"/> + <translation>Inserir "Ano"</translation> </message> <message> <source>Insert "Genre"</source> - <translation type="unfinished"/> - </message> - <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Inserir "Género"</translation> </message> <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> - <translation type="unfinished"/> + <translation>Alguns álbuns contém erros e não serão convertidos. +Deseja continuar?</translation> </message> <message> <source>%1 files</source> <comment>OpenFile dialog filter line, like "WAV files"</comment> - <translation type="unfinished"/> + <translation>ficheiros %1</translation> </message> <message> <source>All supported formats</source> <comment>OpenFile dialog filter line</comment> - <translation type="unfinished"/> + <translation>Todos os formatos suportados</translation> </message> <message> <source>All files</source> <comment>OpenFile dialog filter line like "All files"</comment> - <translation type="unfinished"/> - </message> - <message> - <source>Add CUE or audio file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Todos os ficheiros</translation> </message> <message> <source>Select audio file</source> <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Escolher ficheiro áudio</translation> </message> <message> <source>Select directory</source> - <translation type="unfinished"/> + <translation>Escolher pasta</translation> </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation type="unfinished"/> + <translation>Flacon</translation> </message> <message> <source><style type="text/css"> @@ -894,10 +932,26 @@ <br><br> If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> <comment>Main form tooltip for "Pattern" edit</comment> - <translation type="unfinished"/> + <translation><style type="text/css"> +.term {font-weight: bold;} +.def { white-space: nowrap; } +</style> +Campos começam com %. Pode usar os seguintes campos: +<table> +<tr><td class="term">%n</td> <td class="def"> - Número da faixa </td> +<td class="term">%N</td> <td class="def"> - Número de faixas</td></tr> +<tr><td class="term">%a</td> <td class="def"> - Artista</td> +<td class="term">%A</td> <td class="def"> - Título do álbum</td></tr> +<tr><td class="term">%t</td> <td class="def"> - Título da faixa</td> +<td class="term">%y</td> <td class="def"> - Ano</td></tr> +<tr><td class="term">%g</td> <td class="def"> - Género</td> +<td class="term"></td> <td class="def"></td></tr> +</table> +<br><br> +Se colocar chavetas numa porção de texto que contenha um campo, esse texto ficará oculto se o campo estiver 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> @@ -905,7 +959,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> @@ -913,62 +977,91 @@ <name>MultiValuesComboBox</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Valores múltiplos</translation> </message> </context> <context> <name>MultiValuesLineEdit</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Valores múltiplos</translation> </message> </context> <context> <name>MultiValuesSpinBox</name> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Valores múltiplos</translation> </message> </context> <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Escolher o ficheiro 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 type="unfinished"/> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation type="unfinished"/> </message> +</context> +<context> + <name>QObject</name> <message> - <source>Select program file</source> + <source>I can't find program <b>%1</b>.</source> + <translation>Não consigo encontrar o programa <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>O ficheiro áudio <b>%1</b> não é suportado. <br><br>Verificar, nas suas preferências, se todos os programas necessários estão instalados.</translation> + </message> + <message> + <source> [disk %1]</source> <translation type="unfinished"/> </message> -</context> -<context> - <name>Project</name> <message> <source>Flacon</source> <comment>Error</comment> <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"/> </message> </context> @@ -976,18 +1069,14 @@ <name>Splitter</name> <message> <source>The number of tracks is higher than expected.</source> - <translation type="unfinished"/> + <translation>O número de faixas é superior ao esperado.</translation> </message> </context> <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Seleccione outro ficheiro CUE</translation> - </message> - <message> <source>Get data from CDDB</source> - <translation>Obter dados do CDDB</translation> + <translation>Obter dados de CDDB</translation> </message> <message> <source>Edit</source> @@ -995,7 +1084,11 @@ </message> <message> <source>Select another audio file</source> - <translation>Seleccione outro ficheiro audio</translation> + <translation>Seleccionar outro ficheiro audio</translation> + </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> </message> </context> <context> @@ -1014,11 +1107,11 @@ </message> <message> <source>Extracting</source> - <translation>Extraindo</translation> + <translation>A extarir</translation> </message> <message> <source>Encoding</source> - <translation>Codificando</translation> + <translation>A codificar</translation> </message> <message> <source>Queued</source> @@ -1026,15 +1119,15 @@ </message> <message> <source>Calculate gain</source> - <translation>Calculando ganho</translation> + <translation>Calcular ganho</translation> </message> <message> <source>Wait gain</source> - <translation>Esperando pelo ganho</translation> + <translation>Esperar pelo ganho</translation> </message> <message> <source>Write gain</source> - <translation>Escrevendo ganho</translation> + <translation>Escrever ganho</translation> </message> <message> <source>Tracks:</source> @@ -1070,7 +1163,7 @@ <message> <source>Comment</source> <comment>Table header.</comment> - <translation>Commentário</translation> + <translation>Comentário</translation> </message> <message> <source>File</source> @@ -1082,10 +1175,24 @@ <translation>Valores múltiplos</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Não é possível converter: -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> - <translation type="unfinished"/> + <translation>Utilizați configurarea optimă pentru calitate (recomandat)</translation> </message> <message> <source>Use bitrate</source> @@ -427,19 +450,19 @@ </message> <message> <source>Minimal bitrate:</source> - <translation type="unfinished"/> + <translation>Bitrate minim:</translation> </message> <message> <source>Sets minimum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Se stabilește rata de biți minimă (în kb/s).</translation> </message> <message> <source>Nominal bitrate:</source> - <translation type="unfinished"/> + <translation>Rată de biți nominală:</translation> </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>Maximum bitrate:</source> @@ -447,38 +470,38 @@ </message> <message> <source>Sets maximum bitrate (in kb/s).</source> - <translation type="unfinished"/> + <translation>Se stabilește rata de biți maximă (în kb/s).</translation> </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> </context> <context> <name>ConfigPage_Opus</name> <message> <source>Opus encoding configuration</source> - <translation type="unfinished"/> + <translation>Configurare codare opus</translation> </message> <message> <source>Bitrate type:</source> - <translation type="unfinished"/> + <translation>Tip rată de biți:</translation> </message> <message> <source>Bitrate:</source> - <translation type="unfinished"/> + <translation>rată de biți:</translation> </message> <message> <source>VBR - variable bitrate</source> - <translation type="unfinished"/> + <translation>RBV - rată de biți variabilă</translation> </message> <message> <source>CBR - constrained bitrate</source> - <translation type="unfinished"/> + <translation>RBF - rată de biți fixă</translation> </message> <message> <source><dt>VBR</dt> @@ -486,23 +509,32 @@ <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>RVB</dt> +<dd>Utilizați codare cu rată variabilă de biți (recomandat, VBR în engleză). În modul RVB, rata de biți/eșantionare poate varia în funcție de conținut pentru a asigura aceeași calitate a sunetului.</dd> + +<dt>RBF</dt> +<dd>Utilizați rata de biți fixă (CBR în engleză) pentru ca fișierul rezultat să aibă o rată de biți fixă, specificată de dvs. Acest mod de condare este identic cu CBR în codarea AAC/MP3 și modul admnistrat (managed mode) în codarea vorbis. Calitatea este mai scăzută decât în cazul utilizării ratei de biți variabile.</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>Se stabilește rata de biți a fișierului-țintă în kb/s (6-256 per canal). +<p> +În modul RBV, această configurare are efect asupra unei colecții vaste și diverse de fișiere audio. +<p> +În modul RBF, această configurare stabilește rata de biți dorită. +</translation> </message> </context> <context> <name>ConfigPage_Wv</name> <message> <source>WavPack encoding configuration</source> - <translation type="unfinished"/> + <translation>Configurare codare cu Wavpack</translation> </message> <message> <source>Compression:</source> @@ -510,11 +542,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> @@ -525,15 +557,31 @@ <name>Converter</name> <message> <source>I can't create directory "%1".</source> - <translation type="unfinished"/> + <translation>Nu se poate crea dosarul „%1”.</translation> </message> <message> <source>I can't write to directory "%1".</source> - <translation type="unfinished"/> + <translation>Nu se poate scrie în dosarul „%1”.</translation> </message> <message> <source>Conversion is not possible:</source> - <translation type="unfinished"/> + <translation>Conversia nu este posibilă:</translation> + </message> +</context> +<context> + <name>CueDiskSelectDialog</name> + <message> + <source>Select disk</source> + <translation>Selectare disc</translation> + </message> + <message> + <source>%1 [ disk %2 ]</source> + <comment>Cue disk select dialog, string like 'The Wall [disk 1]'</comment> + <translation>%1 [ disc %2 ]</translation> + </message> + <message> + <source>The cue file contains information about multiple disks. Which disk you want to use?</source> + <translation>Lista de indexare conține informații despre mai multe discuri. Alegeți discul dorit.</translation> </message> </context> <context> @@ -543,16 +591,12 @@ <translation>Fișier audio ne-configurat.</translation> </message> <message> - <source>CUE file not set.</source> - <translation>Fișier CUE ne-configurat.</translation> + <source>Cue file not set.</source> + <translation>Lista de indexare nu este specificată</translation> </message> <message> - <source>File <b>%1</b> is not a valid CUE file.</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 type="unfinished"/> + <source>Audio file shorter than expected from cue sheet.</source> + <translation>Fișierul audio este mai scurt decât era specificat în lista de indexare.</translation> </message> </context> <context> @@ -561,7 +605,9 @@ <source>I can't delete file: %1 %2</source> - <translation type="unfinished"/> + <translation>Nu se poate șterge fișierul: +%1 +%2</translation> </message> <message> <source>Encoder error: @@ -571,6 +617,7 @@ </message> <message> <source>I can't read %1 file</source> + <comment>Encoder error. %1 is a file name.</comment> <translation>Nu se poate citi fișierul %1</translation> </message> </context> @@ -578,12 +625,13 @@ <name>EncoderConfigPage</name> <message> <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source> - <translation type="unfinished"/> + <translation>Se stabilește calitatea codării, între %1 (minim) și %2 (maxim).</translation> </message> <message> <source>Sets compression level, between %1 (fastest) and %2 (highest compression). This only affects the file size. All settings are lossless.</source> - <translation type="unfinished"/> + <translation>Se stabilește nivelul de comprimare, între %1 (cel mai rapid) și %2 (cea mai mare comprimare). +Aceasta are efect doar asupra mărimii fișierului rezultat. Calitatea va fi aceeași.</translation> </message> <message> <source>Disabled</source> @@ -605,7 +653,10 @@ The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback. Using the album-gain analysis will preserve the volume differences within an album.</source> - <translation type="unfinished"/> + <translation>ReplayGain este un standard pentru normalizarea sunetului perceput la redarea de fișiere audio. + +Se pot analiza pistele individuale astfel încât toate pistele să aibă același volum la redare. +Dacă utilizați analiza de normalizare pentru un întreg album, diferențele de volum din acel album vor fi păstrate.</translation> </message> <message> <source>%1 kbps</source> @@ -622,7 +673,9 @@ <source>I can't rename file: %1 to %2 %3</source> - <translation type="unfinished"/> + <translation>Nu se poate redenumi fișierul: +%1 to %2 +%3</translation> </message> </context> <context> @@ -630,7 +683,8 @@ <message> <source>Gain error: </source> - <translation type="unfinished"/> + <translation>Eroare de normalizare sunet: +</translation> </message> </context> <context> @@ -641,7 +695,7 @@ </message> <message> <source>Result Files</source> - <translation type="unfinished"/> + <translation>Fișier cu rezultate</translation> </message> <message> <source>Directory:</source> @@ -662,7 +716,7 @@ </message> <message> <source>Tags</source> - <translation type="unfinished"/> + <translation>Etichete</translation> </message> <message> <source>Genre:</source> @@ -682,35 +736,35 @@ </message> <message> <source>Start num:</source> - <translation type="unfinished"/> + <translation>Număr început:</translation> </message> <message> <source>Disc ID:</source> - <translation type="unfinished"/> + <translation>ID disc:</translation> </message> <message> <source>Codepage:</source> - <translation type="unfinished"/> + <translation>Cod de pagină:</translation> </message> <message> <source>&File</source> - <translation type="unfinished"/> + <translation>&Fișier</translation> </message> <message> <source>&Settings</source> - <translation type="unfinished"/> + <translation>&Setări</translation> </message> <message> <source>&Help</source> - <translation type="unfinished"/> + <translation>&Ajutor</translation> </message> <message> <source>Add file</source> - <translation type="unfinished"/> + <translation>Adaugă fișier</translation> </message> <message> <source>Add CUE or audio file</source> - <translation type="unfinished"/> + <translation>Adăugare fișier audio sau listă de indexare</translation> </message> <message> <source>Ctrl+O</source> @@ -718,11 +772,11 @@ </message> <message> <source>Convert</source> - <translation type="unfinished"/> + <translation>Convertește</translation> </message> <message> <source>Start conversion process</source> - <translation type="unfinished"/> + <translation>Începe conversia</translation> </message> <message> <source>Ctrl+W</source> @@ -730,15 +784,15 @@ </message> <message> <source>Abort</source> - <translation type="unfinished"/> + <translation>Anulează</translation> </message> <message> <source>Abort conversion process</source> - <translation type="unfinished"/> + <translation>Despre procesul de conversie</translation> </message> <message> <source>Exit</source> - <translation type="unfinished"/> + <translation>Ieșire</translation> </message> <message> <source>Ctrl+Q</source> @@ -746,23 +800,23 @@ </message> <message> <source>&Preferences</source> - <translation type="unfinished"/> + <translation>&Preferințe</translation> </message> <message> <source>Program preferences</source> - <translation type="unfinished"/> + <translation>Preferințe program</translation> </message> <message> <source>&About Flacon</source> - <translation type="unfinished"/> + <translation>&Despre Flacon</translation> </message> <message> <source>Remove album</source> - <translation type="unfinished"/> + <translation>Eliminați album</translation> </message> <message> <source>Remove album from project</source> - <translation type="unfinished"/> + <translation>Eliminați toate albumele din proiect</translation> </message> <message> <source>Ctrl+Del</source> @@ -770,7 +824,7 @@ </message> <message> <source>Configure encoder</source> - <translation type="unfinished"/> + <translation>Configurare utilitar codare</translation> </message> <message> <source>...</source> @@ -778,15 +832,15 @@ </message> <message> <source>Select result directory</source> - <translation type="unfinished"/> + <translation>Alegeți dosarul cu rezultate</translation> </message> <message> <source>Get from CDDB</source> - <translation type="unfinished"/> + <translation>Obține din CDDB</translation> </message> <message> <source>Get album information from CDDB</source> - <translation type="unfinished"/> + <translation>Obține informațiile despre album din CDDB</translation> </message> <message> <source>Ctrl+I</source> @@ -798,55 +852,51 @@ </message> <message> <source>Recursive album search</source> - <translation type="unfinished"/> + <translation>Căutare în album recursivă</translation> </message> <message> <source>Insert "Track number"</source> - <translation type="unfinished"/> + <translation>Introduceți „Număr pistă”</translation> </message> <message> <source>Insert "Total number of tracks"</source> - <translation type="unfinished"/> + <translation>Introduceți „Număr total de piste”</translation> </message> <message> <source>Insert "Artist"</source> - <translation type="unfinished"/> + <translation>Introduceți „Artist”</translation> </message> <message> <source>Insert "Album title"</source> - <translation type="unfinished"/> + <translation>Introduceți „Titlu album”</translation> </message> <message> <source>Insert "Track title"</source> - <translation type="unfinished"/> + <translation>Introduceți „Titlu pistă”</translation> </message> <message> <source>Insert "Year"</source> - <translation type="unfinished"/> + <translation>Introduceți „Anul”</translation> </message> <message> <source>Insert "Genre"</source> - <translation type="unfinished"/> - </message> - <message> - <source>Select CUE file</source> - <comment>OpenFile dialog title</comment> - <translation type="unfinished"/> + <translation>Introduceți „Genul”</translation> </message> <message> <source>Some albums will not be converted, they contain errors. Do you want to continue?</source> - <translation type="unfinished"/> + <translation>Unele albume nu vor fi convertite, au erori. +Vreți să continuați?</translation> </message> <message> <source>%1 files</source> <comment>OpenFile dialog filter line, like "WAV files"</comment> - <translation type="unfinished"/> + <translation>%1 (de) fișiere</translation> </message> <message> <source>All supported formats</source> <comment>OpenFile dialog filter line</comment> - <translation type="unfinished"/> + <translation>Toate formatele suportate</translation> </message> <message> <source>All files</source> @@ -854,11 +904,6 @@ <translation>Toate fișierele</translation> </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>Alege fișierul audio</translation> @@ -891,19 +936,47 @@ <br><br> If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source> <comment>Main form tooltip for "Pattern" edit</comment> - <translation type="unfinished"/> + <translation><style type="text/css"> +.term {font-weight: bold;} +.def { white-space: nowrap; } +</style> +Marcajele încep cu %. Puteți folosi următoarele marcaje: +<table> +<tr><td class="term">%n</td> <td class="def"> - Numărul pistei </td> + <td class="term">%N</td> <td class="def"> - Număr total de piste</td></tr> +<tr><td class="term">%a</td> <td class="def"> - Artist</td> + <td class="term">%A</td> <td class="def"> - Titlu album<td></tr> +<tr><td class="term">%t</td> <td class="def"> - Titlu pistă</td> + <td class="term">%y</td> <td class="def"> - An</td></tr> +<tr><td class="term">%g</td> <td class="def"> - Gen</td> + <td class="term"></td> <td class="def"></td></tr> +</table> +<br><br> +Dacă un fragment de text care conține un marcaj este pus între paranteze acolade, fragmentele respective nu vor apărea dacă marcajul este gol. </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 type="unfinished"/> + <translation>Puteți alege dosarul destinație sau îl puteți scrie direct. + +Dacă nu ați ales nimic sau calea către dosar începe cu un punct (.), fișierele rezultate vor fi puse în același dosar cu fișierele sursă.</translation> </message> <message> <source>Use "%1"</source> - <comment>Predefined out file pattern</comment> - <translation type="unfinished"/> + <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment> + <translation>Utilizează "%1"</translation> + </message> + <message> + <source>Select cue file</source> + <comment>OpenFile dialog title</comment> + <translation>Alegeți lista de indexare</translation> + </message> + <message> + <source>Add cue or audio file</source> + <comment>OpenFile dialog title</comment> + <translation>Adăugați un fișier audio sau o listă de indexare</translation> </message> </context> <context> @@ -930,61 +1003,86 @@ <context> <name>ProgramEdit</name> <message> + <source>Select program file</source> + <translation>Alegeți aplicația</translation> + </message> + <message> <source>%1 program</source> - <translation type="unfinished"/> + <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'shntool program (shntool)'</comment> + <translation>Program(ul) %1</translation> </message> <message> <source>All files</source> + <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment> <translation>Toate fișierele</translation> </message> - <message> - <source>Select program file</source> - <translation>Alegeți aplicația</translation> - </message> </context> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>Nu găsesc programul <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>Fișierul <b>%1</b>nu este un fișier audio suportat. <br><br>Verificați la „Preferințe” dacă ați instalat toate programele necesare. </translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [disc %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation type="unfinished"/> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>Nu se poate scrie lista de indexare <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Nu găsesc programul <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</source> + <translation>Fișierul <b>"%1"</b> nu există</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"/> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> nu este o listă de indexare validă. Discul %2 nu are etichete.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Fișierul audio nu are nume</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation type="unfinished"/> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>Puteți utiliza standardul „ReplayGain” pentru fișierele cu rate de eșantionare mai mari de 48kHz. Metaflac nu poate lucra cu asemenea fișiere.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> nu este o listă de indexare validă. Lista de indexare nu are eticheta FIȘIER.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> nu este o listă de indexare validă. Indexul pistelor este incorect la %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Fișierul audio <b>"%1"</b> nu există</translation> </message> </context> <context> <name>Splitter</name> <message> <source>The number of tracks is higher than expected.</source> - <translation type="unfinished"/> + <translation>Numărul de piste este mai mare decât cel așteptat.</translation> </message> </context> <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation type="unfinished"/> - </message> - <message> <source>Get data from CDDB</source> - <translation type="unfinished"/> + <translation>Obțineți date din CDDB (baza de date cu CD-uri)</translation> </message> <message> <source>Edit</source> @@ -992,7 +1090,11 @@ </message> <message> <source>Select another audio file</source> - <translation type="unfinished"/> + <translation>Alegeți alt fișier audio</translation> + </message> + <message> + <source>Select another cue file</source> + <translation>Alegeți altă listă de indexare</translation> </message> </context> <context> @@ -1003,7 +1105,7 @@ </message> <message> <source>Aborted</source> - <translation type="unfinished"/> + <translation>Operațiune întreruptă</translation> </message> <message> <source>OK</source> @@ -1011,31 +1113,31 @@ </message> <message> <source>Extracting</source> - <translation type="unfinished"/> + <translation>Extragere în desfășurare</translation> </message> <message> <source>Encoding</source> - <translation type="unfinished"/> + <translation>Codare în desfășurare</translation> </message> <message> <source>Queued</source> - <translation type="unfinished"/> + <translation>În așteptare</translation> </message> <message> <source>Calculate gain</source> - <translation type="unfinished"/> + <translation>Calculare normalizare sunet</translation> </message> <message> <source>Wait gain</source> - <translation type="unfinished"/> + <translation>Normalizare pauză între piese </translation> </message> <message> <source>Write gain</source> - <translation type="unfinished"/> + <translation>Normalizare piste la scriere</translation> </message> <message> <source>Tracks:</source> - <translation type="unfinished"/> + <translation>Piste:</translation> </message> <message> <source>Audio:</source> @@ -1047,41 +1149,57 @@ <message> <source>Track</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Pistă</translation> </message> <message> <source>Title</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Titlu</translation> </message> <message> <source>Artist</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Artist</translation> </message> <message> <source>Album</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Album</translation> </message> <message> <source>Comment</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Comentariu</translation> </message> <message> <source>File</source> <comment>Table header.</comment> - <translation type="unfinished"/> + <translation>Fișier</translation> </message> <message> <source>Multiple values</source> - <translation type="unfinished"/> + <translation>Valori multiple</translation> + </message> + <message> + <source>Length</source> + <comment>Table header.</comment> + <translation>Lungime</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> </message> <message> - <source>Conversion is not possible. + <source>The conversion is not possible. %1</source> - <translation type="unfinished"/> + <translation>Conversia nu este posibilă. +%1</translation> </message> </context> </TS> \ No newline at end of file
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> + </message> + <message> + <source> [disk %1]</source> + <translation> [диск %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation>Не получается записать CUE файл <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Не могу найти программу <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> не является правильным CUE файлом. Диск %2 не содержит тегов.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Не задан аудиофайл.</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> <translation>Вы не можете использовать 'выравнивание громкости' для файлов с частотой дискретизации выше 48 КГц. Metaflac не поддерживает такие файлы.</translation> </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> не является правильным CUE файлом. Он не содержит тега FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> не является правильным CUE файлом. Некорректный индекс в позиции %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Аудио файл <b>%1</b> не существует.</translation> + </message> </context> <context> <name>Splitter</name> @@ -1036,10 +1078,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Выбрать другой CUE файл</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Получить информацию с CDDB</translation> </message> @@ -1051,6 +1089,10 @@ <source>Select another audio file</source> <translation>Выбрать другой аудиофайл</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Выбрать другой CUE файл</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1136,7 +1178,22 @@ <translation>Несколько значений</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Продолжительность</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>Конвертация невозможна. %1</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> + <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> + </message> + <message> + <source> [disk %1]</source> + <translation type="unfinished"/> + </message> <message> <source>Flacon</source> <comment>Error</comment> - <translation>Флакон</translation> + <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>Не могу да упишем ЦУЕ фајл <b>%1</b>:\n -%2</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Не могу да нађем програм <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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><b>%1</b> није подржан аудио фајл. <br><br>Проверите да ли су потребни програми инсталирани и у вашим поставкама.</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> + <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"/> </message> </context> @@ -986,10 +1027,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Изаберите додатни аудио фајл</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Добави податке са ЦДДБ-а</translation> </message> @@ -1001,6 +1038,10 @@ <source>Select another audio file</source> <translation>Изаберите додатни аудио фајл</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1086,10 +1127,24 @@ <translation>Вишеструке вредности</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Претварање није могуће. -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> <source>Flacon</source> <comment>Error</comment> <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"/> </message> </context> @@ -978,10 +1020,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation type="unfinished"/> - </message> - <message> <source>Get data from CDDB</source> <translation type="unfinished"/> </message> @@ -993,6 +1031,10 @@ <source>Select another audio file</source> <translation type="unfinished"/> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1078,7 +1120,22 @@ <translation type="unfinished"/> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation type="unfinished"/> </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> + <comment>Encoder error. %1 is a file name.</comment> + <translation>Не вдається прочитати "%1"</translation> </message> </context> <context> @@ -870,11 +883,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>Деякі альбоми не вийде конвертувати, вони містять помилки. @@ -896,11 +904,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> @@ -952,19 +955,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> @@ -990,44 +1003,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> + </message> + <message> + <source> [disk %1]</source> + <translation> [диск %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation>Не вдається записати CUE файл <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>Не можу знайти проґраму <b>%1</b>.</translation> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> не є правильним CUE файлом. Диск %2 не містить тегів.</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>Не вказаний аудіофайл.</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> <translation>Ви не можете використовувати 'вирівнювання гучності' для файлів з частотою дискретизації вище 48 КГц. Metaflac не підтримує такі файли.</translation> </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> не є правильним CUE файлом. Він не містить тегу FILE.</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> не є правильним CUE файлом. Некоректний індекс у позиції %2.</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>Аудіо файл <b>%1</b> не існує.</translation> + </message> </context> <context> <name>Splitter</name> @@ -1039,10 +1081,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>Обрати інший CUE-файл</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>Отримати дані з CDDB</translation> </message> @@ -1054,6 +1092,10 @@ <source>Select another audio file</source> <translation>Обрати інший аудіофайл</translation> </message> + <message> + <source>Select another cue file</source> + <translation>Вибрати інший CUE файл</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1071,7 +1113,7 @@ </message> <message> <source>Extracting</source> - <translation>Витягую...</translation> + <translation>Видобуваю...</translation> </message> <message> <source>Encoding</source> @@ -1139,9 +1181,24 @@ <translation>Кілька значень</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>Тривалість</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>Конвертація неможлива. + <translation>Перетворення неможливе. %1</translation> </message> </context>
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> <context> - <name>Project</name> + <name>QObject</name> + <message> + <source>I can't find program <b>%1</b>.</source> + <translation>无法找到程序 %1.</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> n' 的音频格式不被支持。 <br><br>请确认已安装所有必要的程序并在首选项中设置妥当。</translation> + </message> + <message> + <source> [disk %1]</source> + <translation> [磁盘 %1]</translation> + </message> <message> <source>Flacon</source> <comment>Error</comment> <translation>Flacon</translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> - <translation>无法创建<b>%1</b>的CUE文件: %2 .</translation> + <source>I can't write cue file <b>%1</b>:<br>%2</source> + <translation>我无法写入 cue 文件 <b>%1</b>:<br>%2</translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> - <translation>无法找到程序 %1.</translation> + <source>File <b>"%1"</b> does not exist</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> n' 的音频格式不被支持。 <br><br>请确认已安装所有必要的程序并在首选项中设置妥当。</translation> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation><b>%1</b> 不是一个有效的 cue 文件。磁盘 %2 没有标签。</translation> + </message> + <message> + <source>The audio file name is not set</source> + <translation>未设定音频文件名</translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> - <translation>采样率高于48kHz的文件无法设置回放增益, Metaflac 不支持。</translation> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation>你不能将回放增益用于高于 48kHz 的采样率的文件。Metaflac 不支持这些文件。</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation><b>%1</b> 不是一个有效的 cue 文件。该 cue 没有 FILE 标签。</translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation><b>%1</b> 不是一个有效的 cue 文件。在 %2 有不正确的轨道索引。</translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> + <translation>音频文件 <b>"%1"</b> 不存在</translation> </message> </context> <context> @@ -1037,10 +1079,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>选择其他 CUE 文件</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>从 CDDB 撷取数据</translation> </message> @@ -1052,6 +1090,10 @@ <source>Select another audio file</source> <translation>选择其他音频文件</translation> </message> + <message> + <source>Select another cue file</source> + <translation>选择其他 cue 文件</translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1137,7 +1179,22 @@ <translation>多个值</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation>长度</translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation>%1:%2:%3</translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation>%1:%2</translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation>不可能转换。 %1</translation>
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> <source>Flacon</source> <comment>Error</comment> <translation type="unfinished"/> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation type="unfinished"/> </message> <message> - <source>I can't find program <b>%1</b>.</source> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"/> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"/> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"/> </message> </context> @@ -982,10 +1024,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation>選取其他 CUE 檔案</translation> - </message> - <message> <source>Get data from CDDB</source> <translation>從 CDDB 擷取資料</translation> </message> @@ -997,6 +1035,10 @@ <source>Select another audio file</source> <translation>選取其他聲訊檔案</translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"/> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1082,10 +1124,24 @@ <translation>多個值</translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"/> + </message> + <message> + <source>The conversion is not possible. %1</source> - <translation>不可能轉換。 -%1</translation> + <translation type="unfinished"/> </message> </context> </TS> \ No newline at end of file
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> <source>Flacon</source> <comment>Error</comment> <translation type="unfinished"></translation> </message> -</context> -<context> - <name>QObject</name> <message> - <source>I can't write CUE file <b>%1</b>:<br>%2</source> + <source>I can't write cue file <b>%1</b>:<br>%2</source> <translation type="unfinished"></translation> </message> <message> - <source>I can't find program <b>%1</b>.</source> + <source>File <b>"%1"</b> does not exist</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> + <source><b>%1</b> is not a valid cue file. Disk %2 has no tags.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>The audio file name is not set</source> <translation type="unfinished"></translation> </message> <message> <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source> + <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. The cue sheet has no FILE tag.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source><b>%1</b> is not a valid cue file. Incorrect track index at %2.</source> + <comment>Cue parser error. %2 is file position</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>The audio file <b>"%1"</b> does not exist</source> <translation type="unfinished"></translation> </message> </context> @@ -980,10 +1022,6 @@ <context> <name>TrackView</name> <message> - <source>Select another CUE file</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Get data from CDDB</source> <translation type="unfinished"></translation> </message> @@ -995,6 +1033,10 @@ <source>Select another audio file</source> <translation type="unfinished"></translation> </message> + <message> + <source>Select another cue file</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TrackViewDelegate</name> @@ -1080,7 +1122,22 @@ <translation type="unfinished"></translation> </message> <message> - <source>Conversion is not possible. + <source>Length</source> + <comment>Table header.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>%1:%2:%3</source> + <comment>Track length, string like '01:02:56'</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>%1:%2</source> + <comment>Track length, string like '02:56'</comment> + <translation type="unfinished"></translation> + </message> + <message> + <source>The conversion is not possible. %1</source> <translation type="unfinished"></translation> </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
.