From 4c9baea3136e4164fb30cea88c2c3048109df4f5 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 23 Mar 2018 20:26:50 +0100 Subject: Translation supported added. --- .gitignore | 3 +- src/Makefile.am | 18 ++++- src/dgedit.cc | 17 +++++ src/filelist.cc | 13 ++-- src/mainwindow.cc | 53 ++++++------- src/selectioneditor.cc | 12 +-- src/ts/dgedit_da.ts | 204 +++++++++++++++++++++++++++++++++++++++++++++++++ src/volumefader.cc | 6 +- 8 files changed, 283 insertions(+), 43 deletions(-) create mode 100644 src/ts/dgedit_da.ts diff --git a/.gitignore b/.gitignore index 85e7967..521a516 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,5 @@ src/qrc_*.cc stamp-h1 src/presets.ini moc_*.cpp -qrc_*.cpp \ No newline at end of file +qrc_*.cpp +*.qm \ No newline at end of file diff --git a/src/Makefile.am b/src/Makefile.am index b7fb48d..0c37d01 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -5,9 +5,13 @@ bin_PROGRAMS = dgedit dgedit_LDADD = $(SNDFILE_LIBS) $(QT_LIBS) $(AO_LIBS) \ $(shell ../tools/MocList o ) qrc_dgedit.o -dgedit_CXXFLAGS = $(SNDFILE_CXXFLAGS) $(QT_CFLAGS) $(AO_CFLAGS) +dgedit_CXXFLAGS = $(SNDFILE_CXXFLAGS) $(QT_CFLAGS) $(AO_CFLAGS) \ + -DLOCALEDIR='"$(localedir)"' AM_CXXFLAGS = $(QT_CFLAGS) +dgedit_TRANLATIONS = \ + ts/dgedit_da.ts + dgedit_SOURCES = \ dgedit.cc \ audioextractor.cc \ @@ -25,6 +29,7 @@ dgedit_SOURCES = \ samplesorter.cc \ selection.cc \ selectioneditor.cc \ + session.cc \ volumefader.cc \ zoomslider.cc @@ -44,6 +49,7 @@ EXTRA_DIST = \ samplesorter.h \ selection.h \ selectioneditor.h \ + session.h \ sleep.h \ volumefader.h \ zoomslider.h \ @@ -72,3 +78,13 @@ qrc_%.cc: %.qrc # command for creating .res file from .rc on Win32 %.res: %.rc rc $< + +%.ts: $(dgedit_SOURCES) + QT_SELECT=qt5 lupdate $(dgedit_SOURCES) -ts $@ + +%.qm: %.ts + QT_SELECT=qt5 lrelease $< + +dgeditdir = $(localedir) +dgedit_DATA = $(dgedit_TRANLATIONS:.ts=.qm) +BUILT_SOURCES = $(dgedit_TRANLATIONS) diff --git a/src/dgedit.cc b/src/dgedit.cc index d590bc6..c511150 100644 --- a/src/dgedit.cc +++ b/src/dgedit.cc @@ -25,6 +25,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include +#include +#include + +#include #include "mainwindow.h" @@ -32,6 +36,19 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); + QTranslator translator; + QString locale = QLocale().name().section('_', 0, 0); + if(!locale.isEmpty() && locale != "C") + { + QString file = LOCALEDIR"/dgedit_" + locale + ".qm"; + std::cout << file.toStdString() << std::endl; + if(QFile::exists(file)) + { + translator.load(file); + app.installTranslator(&translator); + } + } + MainWindow wnd; wnd.show(); diff --git a/src/filelist.cc b/src/filelist.cc index 6cad785..0f9b1cf 100644 --- a/src/filelist.cc +++ b/src/filelist.cc @@ -47,8 +47,9 @@ FileList::FileList() void FileList::addFiles() { - QStringList files = QFileDialog::getOpenFileNames(this, tr("Open file"), - path, tr("Audio Files (*.wav)")); + QStringList files = + QFileDialog::getOpenFileNames(this, tr("Open file"), + path, tr("Audio Files (*.wav)")); QStringList::Iterator i = files.begin(); while(i != files.end()) { @@ -92,16 +93,16 @@ void FileList::createMenus() { menu = new QMenu(); - setMasterAction = new QAction("Set as Master (dbl-click)", this); + setMasterAction = new QAction(tr("Set as Master (dbl-click)"), this); connect(setMasterAction, SIGNAL(triggered()), this, SLOT(setMaster())); - editAction = new QAction("Edit name", this); + editAction = new QAction(tr("Edit name"), this); connect(editAction, SIGNAL(triggered()), this, SLOT(editName())); - removeAction = new QAction("Remove", this); + removeAction = new QAction(tr("Remove"), this); connect(removeAction, SIGNAL(triggered()), this, SLOT(removeFile())); - removeAllAction = new QAction("Remove all", this); + removeAllAction = new QAction(tr("Remove all"), this); connect(removeAllAction, SIGNAL(triggered()), this, SLOT(removeAllFiles())); menu->addAction(setMasterAction); diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 81beae0..69e4398 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -85,7 +85,7 @@ MainWindow::MainWindow() //canvas = new Canvas(this); canvaswidget = new CanvasWidget(this); - QToolBar* toolbar = addToolBar("Tools"); + QToolBar* toolbar = addToolBar(tr("Tools")); listen = new CanvasToolListen(canvaswidget->canvas, player); addTool(toolbar, canvaswidget->canvas, listen); threshold = new CanvasToolThreshold(canvaswidget->canvas); @@ -102,8 +102,8 @@ MainWindow::MainWindow() canvaswidget->canvas, SLOT(update())); addTool(toolbar, canvaswidget->canvas, tool_selections); - QMenu* fileMenu = menuBar()->addMenu("&File"); - QAction* act_quit = new QAction("&Quit", this); + QMenu* fileMenu = menuBar()->addMenu(tr("&File")); + QAction* act_quit = new QAction(tr("&Quit"), this); fileMenu->addAction(act_quit); connect(act_quit, SIGNAL(triggered()), this, SLOT(close())); @@ -145,7 +145,7 @@ MainWindow::MainWindow() connect(&selections, SIGNAL(activeChanged(sel_id_t)), sorter, SLOT(relayout())); - QPushButton* btn_playsamples = new QPushButton("Play samples"); + QPushButton* btn_playsamples = new QPushButton(tr("Play samples")); connect(btn_playsamples, SIGNAL(clicked()), this, SLOT(playSamples())); sb_playsamples = new QScrollBar(Qt::Horizontal); @@ -176,10 +176,10 @@ MainWindow::MainWindow() //dockWidget->widget()->layout()->addWidget(presets); tabs = new QTabWidget(this); - tabs->addTab(createFilesTab(), "Files"); - generateTabId = tabs->addTab(createGenerateTab(), "Generate"); - tabs->addTab(createEditTab(), "Edit"); - tabs->addTab(createExportTab(), "Export"); + tabs->addTab(createFilesTab(), tr("Files")); + generateTabId = tabs->addTab(createGenerateTab(), tr("Generate")); + tabs->addTab(createEditTab(), tr("Edit")); + tabs->addTab(createExportTab(), tr("Export")); connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); tabChanged(tabs->currentIndex()); @@ -222,7 +222,7 @@ MainWindow::MainWindow() // presets->addItem(presetname, v); //} - statusBar()->showMessage("Ready"); + statusBar()->showMessage(tr("Ready")); } MainWindow::~MainWindow() @@ -243,9 +243,9 @@ QWidget* MainWindow::createFilesTab() QVBoxLayout* l = new QVBoxLayout(); w->setLayout(l); - l->addWidget(new QLabel("Files: (double-click to set as master)")); + l->addWidget(new QLabel(tr("Files: (double-click to set as master)"))); QPushButton* loadbtn = new QPushButton(); - loadbtn->setText("Add files..."); + loadbtn->setText(tr("Add files...")); l->addWidget(loadbtn); filelist = new FileList(); @@ -312,7 +312,7 @@ QWidget* MainWindow::createGenerateTab() QHBoxLayout* btns = new QHBoxLayout(); QPushButton* autosel = new QPushButton(); - autosel->setText("Generate"); + autosel->setText(tr("Generate")); connect(autosel, SIGNAL(clicked()), tool_selections, SLOT(clearSelections())); connect(autosel, SIGNAL(clicked()), @@ -324,7 +324,7 @@ QWidget* MainWindow::createGenerateTab() tool_selections, SLOT(autoCreateSelectionsPreview())); QPushButton* clearsel = new QPushButton(); - clearsel->setText("Clear"); + clearsel->setText(tr("Clear")); connect(clearsel, SIGNAL(clicked()), tool_selections, SLOT(clearSelections())); @@ -333,35 +333,35 @@ QWidget* MainWindow::createGenerateTab() l->addLayout(btns); - slider_attacklength = createAttribute(w, "Attack length:", 10, 1000); + slider_attacklength = createAttribute(w, tr("Attack length:"), 10, 1000); connect(slider_attacklength, SIGNAL(valueChanged(int)), sorter, SLOT(setAttackLength(int))); connect(slider_attacklength, SIGNAL(valueChanged(int)), tool_selections, SLOT(autoCreateSelectionsPreview())); slider_attacklength->setValue(300); - slider_spread = createAttribute(w, "Power spread:", 1, 2000); + slider_spread = createAttribute(w, tr("Power spread:"), 1, 2000); connect(slider_spread, SIGNAL(valueChanged(int)), sorter, SLOT(setSpreadFactor(int))); connect(slider_spread, SIGNAL(valueChanged(int)), tool_selections, SLOT(autoCreateSelectionsPreview())); slider_spread->setValue(1000); - slider_hold = createAttribute(w, "Minimum size (samples):", 0, 200000); + slider_hold = createAttribute(w, tr("Minimum size (samples):"), 0, 200000); connect(slider_hold, SIGNAL(valueChanged(int)), tool_selections, SLOT(holdChanged(int))); connect(slider_hold, SIGNAL(valueChanged(int)), tool_selections, SLOT(autoCreateSelectionsPreview())); slider_hold->setValue(100); - slider_falloff = createAttribute(w, "Falloff:", 10, 5000); + slider_falloff = createAttribute(w, tr("Falloff:"), 10, 5000); connect(slider_falloff, SIGNAL(valueChanged(int)), tool_selections, SLOT(noiseFloorChanged(int))); connect(slider_falloff, SIGNAL(valueChanged(int)), tool_selections, SLOT(autoCreateSelectionsPreview())); slider_falloff->setValue(300); - slider_fadelength = createAttribute(w, "Fadelength:", 0, 2000); + slider_fadelength = createAttribute(w, tr("Fadelength:"), 0, 2000); connect(slider_fadelength, SIGNAL(valueChanged(int)), tool_selections, SLOT(fadeoutChanged(int))); connect(slider_fadelength, SIGNAL(valueChanged(int)), @@ -379,26 +379,26 @@ QWidget* MainWindow::createExportTab() QVBoxLayout* l = new QVBoxLayout(); w->setLayout(l); - l->addWidget(new QLabel("Prefix:")); + l->addWidget(new QLabel(tr("Prefix:"))); prefix = new QLineEdit(); connect(prefix, SIGNAL(textChanged(const QString &)), extractor, SLOT(setOutputPrefix(const QString &))); l->addWidget(prefix); - l->addWidget(new QLabel("Export path:")); + l->addWidget(new QLabel(tr("Export path:"))); QHBoxLayout* lo_exportp = new QHBoxLayout(); lineed_exportp = new QLineEdit(); connect(lineed_exportp, SIGNAL(textChanged(const QString &)), extractor, SLOT(setExportPath(const QString &))); lo_exportp->addWidget(lineed_exportp); - QPushButton* btn_browse = new QPushButton("..."); + QPushButton* btn_browse = new QPushButton(tr("...")); connect(btn_browse, SIGNAL(clicked()), this, SLOT(browse())); lo_exportp->addWidget(btn_browse); l->addLayout(lo_exportp); QPushButton* exportsel = new QPushButton(); - exportsel->setText("Export"); + exportsel->setText(tr("Export")); connect(exportsel, SIGNAL(clicked()), this, SLOT(doExport())); l->addWidget(exportsel); @@ -535,7 +535,7 @@ void MainWindow::doExport() void MainWindow::loadFile(QString filename) { setCursor(Qt::WaitCursor); - statusBar()->showMessage("Loading..."); + statusBar()->showMessage(tr("Loading...")); qApp->processEvents(); sorter->setWavData(NULL, 0); @@ -546,7 +546,7 @@ void MainWindow::loadFile(QString filename) sorter->setWavData(canvaswidget->canvas->data, canvaswidget->canvas->size); player.setPcmData(canvaswidget->canvas->data, canvaswidget->canvas->size); - statusBar()->showMessage("Ready"); + statusBar()->showMessage(tr("Ready")); setCursor(Qt::ArrowCursor); } @@ -562,7 +562,8 @@ void MainWindow::setPreset(int index) void MainWindow::browse() { - QString path = QFileDialog::getExistingDirectory(this, "Select export path", - lineed_exportp->text()); + QString path = + QFileDialog::getExistingDirectory(this, tr("Select export path"), + lineed_exportp->text()); lineed_exportp->setText(path); } diff --git a/src/selectioneditor.cc b/src/selectioneditor.cc index 71a1195..98c6161 100644 --- a/src/selectioneditor.cc +++ b/src/selectioneditor.cc @@ -54,12 +54,12 @@ SelectionEditor::SelectionEditor(Selections &s) setLayout(new QVBoxLayout()); - from = createWidget("From:", this); - to = createWidget("To:", this); - fadein = createWidget("FadeIn:", this); - fadeout = createWidget("FadeOut:", this); - energy = createWidget("Energy:", this); - name = createWidget("Name:", this); + from = createWidget(tr("From:"), this); + to = createWidget(tr("To:"), this); + fadein = createWidget(tr("FadeIn:"), this); + fadeout = createWidget(tr("FadeOut:"), this); + energy = createWidget(tr("Energy:"), this); + name = createWidget(tr("Name:"), this); ((QHBoxLayout*)layout())->addStretch(); } diff --git a/src/ts/dgedit_da.ts b/src/ts/dgedit_da.ts new file mode 100644 index 0000000..220bf09 --- /dev/null +++ b/src/ts/dgedit_da.ts @@ -0,0 +1,204 @@ + + + + + FileList + + + Open file + Åbn fil + + + + Audio Files (*.wav) + Lyd filer (*.wav) + + + + Set as Master (dbl-click) + Vælg hovedkanal (dbl klik) + + + + Edit name + Redigér navn + + + + Remove + Fjern + + + + Remove all + Fjern alle + + + + MainWindow + + + Tools + Værktøjer + + + + &File + &Filer + + + + &Quit + &Afslut + + + + Play samples + Afspil lydbidder + + + + Dock Widget + Dock vindue + + + + Files + Filer + + + + Edit + Redigér + + + + + Export + Eksportér + + + + + Ready + Klar + + + + Files: (double-click to set as master) + Filer: (dobbeltklik for at vælge som hovedkanal) + + + + Add files... + Tilføj filer... + + + + + Generate + Generér + + + + Clear + Ryd + + + + Attack length: + Attack længde: + + + + Power spread: + Energi spredning: + + + + Minimum size (samples): + Minimum størrelse (samples): + + + + Falloff: + Falloff: + + + + Fadelength: + Fadelængde: + + + + Prefix: + Prefix: + + + + Export path: + Eksporteringssti: + + + + ... + ... + + + + Loading... + Indlæser... + + + + Select export path + Vælg eksporteringssti + + + + SelectionEditor + + + From: + Fra: + + + + To: + Til: + + + + FadeIn: + FadeIn: + + + + FadeOut: + FadeOut: + + + + Energy: + Energi: + + + + Name: + Navn: + + + + VolumeFader + + + Peak + Peak + + + + Gain %1 dB + Forstærkning %1 dB + + + diff --git a/src/volumefader.cc b/src/volumefader.cc index 9d3e15a..7982896 100644 --- a/src/volumefader.cc +++ b/src/volumefader.cc @@ -70,7 +70,7 @@ void VolumeFader::updatePeakDb(double db) void VolumeFader::updatePeakPower(double newpeak) { peak = (newpeak * (1.0 - P) + peak * P); - volumepeak->setText("Peak " + QString::number(peak, 'f', 5)); + volumepeak->setText(tr("Peak ") + QString::number(peak, 'f', 5)); handleValueChanged(); } @@ -94,6 +94,6 @@ void VolumeFader::handleValueChanged() emit volumeChangedDb(db); emit volumeChangedPower(power); - volume->setText("Gain " + QString::number(volslider->value() / SCALAR) + - " dB"); + volume->setText(tr("Gain %1 dB").arg(QString::number(volslider->value() / + SCALAR))); } -- cgit v1.2.3