Add and correct some French translation #2065

Merged
merged 1 commit into from Jun 10, 2015

Projects

None yet

4 participants

@midi-pascal
Contributor

Add and correct some French translation
Match the highlighted character with its shortcut for option "Export Midi..." in the File menu.
Fix tr() not working for plugin description in Instrument plugins browser
Fix tr() not working for plugin description in Add Effect window

@tresf tresf and 1 other commented on an outdated diff May 21, 2015
src/gui/EffectSelectDialog.cpp
@@ -206,8 +206,8 @@ void EffectSelectDialog::rowChanged( const QModelIndex & _idx,
{
QLabel *label = new QLabel(m_descriptionWidget);
QString labelText = "<p><b>" + tr("Name") + ":</b> " + QString::fromUtf8(descriptor.displayName) + "</p>";
- labelText += "<p><b>" + tr("Description") + ":</b> " + QString::fromUtf8(descriptor.description) + "</p>";
- labelText += "<p><b>" + tr("Author") + ":</b> " + QString::fromUtf8(descriptor.author) + "</p>";
+ labelText += "<p><b>" + tr("Description") + ":</b> " + qApp->translate( "pluginBrowser", descriptor.description ) + "</p>";
+ labelText += "<p><b>" + tr("Author") + ":</b> " + QString::fromUtf8(descriptor.author) + "</p>";
@tresf
tresf May 21, 2015 Member

I think we have some whitespace formatting issues here...

@midi-pascal
midi-pascal May 21, 2015 Contributor

Hi Tres,

You are right.
It is somewhat difficult to follow the formatting in LMMS since some
sources uses tabs, some don't.
Looks like this one does not :-\

midi-pascal

On 15-05-21 01:23 PM, Tres Finocchiaro wrote:

In src/gui/EffectSelectDialog.cpp
#2065 (comment):

@@ -206,8 +206,8 @@ void EffectSelectDialog::rowChanged( const QModelIndex & _idx,
{
QLabel *label = new QLabel(m_descriptionWidget);
QString labelText = "

" + tr("Name") + ": " + QString::fromUtf8(descriptor.displayName) + "

";

  •        labelText += "<p><b>" + tr("Description") + ":</b> " + QString::fromUtf8(descriptor.description) + "</p>";
    
  •        labelText += "<p><b>" + tr("Author") + ":</b> " + QString::fromUtf8(descriptor.author) + "</p>";
    
  •                   labelText += "<p><b>" + tr("Description") + ":</b> " + qApp->translate( "pluginBrowser", descriptor.description ) + "</p>";
    
  •                   labelText += "<p><b>" + tr("Author") + ":</b> " + QString::fromUtf8(descriptor.author) + "</p>";
    

I think we have some whitespace formatting issues here...


Reply to this email directly or view it on GitHub
https://github.com/LMMS/lmms/pull/2065/files#r30824701.

@Wallacoloo
Member

Everything looks fine to me. Should probably fix any other languages that have translations for E&xport Midi before merging though.

Oddly enough, EffectSelectDialog.cpp uses tabs everywhere but then switches to spaces inside rowChanged(). Tabs are AFAIK supposed to be the standard for this project, but that can be fixed in a separate PR. For now, it's probably best to match with spaces, just as you did.

@midi-pascal
Contributor

For the E&xport Midi item, I am not confident enough in other languages than English and French to alter the translations files. In addition, the translation files (*.ts) for other languages are outdated. They are not in sync with the master branch so they do not have this menu item.
Sorry :-)

@midi-pascal
Contributor

Added some more French translations but some plugins give me headache because the translation does not show up (Dual Filter for example)...
I have to troubleshoot the code while making translations so this is not an easy task!

@tresf
Member
tresf commented May 22, 2015

I have to troubleshoot the code while making translations so this is not an easy task!

Agreed. Your help is greatly appreciated.

@midi-pascal
Contributor

Completely translated Monstro to French :-)
The problem is the calls to tr() inside macro's so lupdate does not extract the litterals to the "tr" file.
So remove the tr() call from the macros and add it to the line calling them. Subtle...
Somme more plugins to check for that

@Wallacoloo
Member

Nice! Good troubleshooting with the macros there.

@midi-pascal
Contributor

Thanks! This was not the most easy trap to find :-)
Now it is the Delay effect that does not want to show the translation.
Looks like it is not the same problem (no macro but tr() does not translate...)
Debug debug debug!

@midi-pascal
Contributor

I think this PR is now fairly complete and could be pulled in the master branch.

@Wallacoloo
Member

Hey @midi-pascal. I took a look through the commits you've added, and all the code looks reasonable. I'm currently waiting for it to build & then I'll play around with the changes and make sure nothing major is broken. Given the large number of commits, I wouldn't be surprised if the LMMS maintainers ask you to squash them down to just one or two before merging.

@Wallacoloo
Member

Oddly enough, after compiling with GCC on Linux (no errors), installing it locally and attempting to load a recent project, a few things happen:

I get error messages saying that LMMS can't find the built-in EQ plugin.
I get a segfault partially through loading the project:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff4306135 in malloc_consolidate (av=av@entry=0x7ffff464bc00 <main_arena>) at malloc.c:4150
4150    malloc.c: No such file or directory.
(gdb) bt
#0  0x00007ffff4306135 in malloc_consolidate (av=av@entry=0x7ffff464bc00 <main_arena>) at malloc.c:4150
#1  0x00007ffff4308a34 in _int_malloc (av=av@entry=0x7ffff464bc00 <main_arena>, bytes=bytes@entry=3056) at malloc.c:3417
#2  0x00007ffff430a42a in _int_memalign (av=av@entry=0x7ffff464bc00 <main_arena>, alignment=alignment@entry=32, bytes=bytes@entry=2976) at malloc.c:4388
#3  0x00007ffff430be1d in _mid_memalign (address=<optimized out>, bytes=2976, alignment=32) at malloc.c:3100
#4  __GI___libc_memalign (alignment=<optimized out>, bytes=2976) at malloc.c:3049
#5  0x00007fffd8b07945 in fftwf_malloc_plain () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#6  0x00007fffd8b08ed7 in ?? () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#7  0x00007fffd8b0ba28 in fftwf_solvtab_exec () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#8  0x00007fffd8b0ef22 in fftwf_dft_conf_standard () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#9  0x00007fffd8bd11e9 in fftwf_configure_planner () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#10 0x00007fffd8bd56e8 in fftwf_the_planner () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#11 0x00007fffd8bd0f7e in fftwf_mkapiplan () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#12 0x00007fffd8bd50fe in fftwf_plan_many_dft_r2c () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#13 0x00007fffd8bd45e5 in fftwf_plan_dft_r2c () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#14 0x00007fffd8bd4503 in fftwf_plan_dft_r2c_1d () from /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
#15 0x00007fffd77464b9 in FFTwrapper::FFTwrapper (this=0x768c4c0, fftsize_=<optimized out>) at /home/colin/proj/lmms/plugins/zynaddsubfx/zynaddsubfx/src/DSP/FFTwrapper.cpp:36
#16 0x00007fffd7757cf4 in Master::Master (this=0x768e810) at /home/colin/proj/lmms/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Master.cpp:60
#17 0x00007fffd7744b24 in LocalZynAddSubFx::LocalZynAddSubFx (this=0x76888c0) at /home/colin/proj/lmms/plugins/zynaddsubfx/LocalZynAddSubFx.cpp:82
#18 0x00007fffd72e0d05 in ZynAddSubFxInstrument::initPlugin (this=this@entry=0x7fffebc37aa0) at /home/colin/proj/lmms/plugins/zynaddsubfx/ZynAddSubFx.cpp:459
#19 0x00007fffd72e1b6b in ZynAddSubFxInstrument::ZynAddSubFxInstrument (this=0x7fffebc37aa0, _instrumentTrack=0x7fffebc35660) at /home/colin/proj/lmms/plugins/zynaddsubfx/ZynAddSubFx.cpp:121
#20 0x00007fffd72e1da1 in lmms_plugin_main (_data=0x7fffebc35660) at /home/colin/proj/lmms/plugins/zynaddsubfx/ZynAddSubFx.cpp:664
#21 0x000000000052e45a in Plugin::instantiate (pluginName=..., parent=0x7fffebc35660, data=0x7fffebc35660) at /home/colin/proj/lmms/src/core/Plugin.cpp:125
#22 0x00000000005060d0 in Instrument::instantiate (_plugin_name=..., _instrument_track=0x7fffebc35660) at /home/colin/proj/lmms/src/core/Instrument.cpp:75
#23 0x0000000000605d74 in InstrumentTrack::loadTrackSpecificSettings (this=0x7fffebc35660, thisElement=...) at /home/colin/proj/lmms/src/tracks/InstrumentTrack.cpp:778
#24 0x000000000054cac4 in Track::loadSettings (this=0x7fffebc35660, element=...) at /home/colin/proj/lmms/src/core/Track.cpp:2024
#25 0x000000000053da1a in SerializingObject::restoreState (this=0x7fffebc35680, element=...) at /home/colin/proj/lmms/src/core/SerializingObject.cpp:70
#26 0x00000000005106d1 in JournallingObject::restoreState (this=0x7fffebc35680, _this=...) at /home/colin/proj/lmms/src/core/JournallingObject.cpp:92
#27 0x000000000054bfce in Track::create (element=..., tc=0xabc700) at /home/colin/proj/lmms/src/core/Track.cpp:1896
#28 0x0000000000552321 in TrackContainer::loadSettings (this=0xabc700, _this=...) at /home/colin/proj/lmms/src/core/TrackContainer.cpp:122
#29 0x000000000053da1a in SerializingObject::restoreState (this=0xabc720, element=...) at /home/colin/proj/lmms/src/core/SerializingObject.cpp:70
#30 0x00000000005106d1 in JournallingObject::restoreState (this=0xabc720, _this=...) at /home/colin/proj/lmms/src/core/JournallingObject.cpp:92
#31 0x0000000000540739 in Song::loadProject (this=0xabc700, fileName=...) at /home/colin/proj/lmms/src/core/Song.cpp:982
#32 0x0000000000590842 in MainWindow::openRecentlyOpenedProject (this=0xb1b810, _action=0x1678b70) at /home/colin/proj/lmms/src/gui/MainWindow.cpp:829
#33 0x000000000061ed80 in MainWindow::qt_static_metacall (_o=0xb1b810, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0x7fffffffd0e0)
    at /home/colin/proj/lmms/build-debug-gcc/src/moc_MainWindow.cpp:134
#34 0x00007ffff69251ec in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#35 0x00007ffff74de182 in QMenu::triggered(QAction*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#36 0x00007ffff74df6e0 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#37 0x00007ffff69251ec in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#38 0x00007ffff7082fd2 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#39 0x00007ffff7084b57 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#40 0x00007ffff74de48d in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#41 0x00007ffff74e2e59 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#42 0x00007ffff70dcdc8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#43 0x00007ffff74e6e4b in QMenu::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#44 0x00007ffff70899bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#45 0x00007ffff709063f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#46 0x00007ffff69101cd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#47 0x00007ffff708fc9f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#48 0x00007ffff7109d3a in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#49 0x00007ffff710924c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#50 0x00007ffff7131ba2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#51 0x00007ffff3b6ac3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff3b6af20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007ffff3b6afcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007ffff693f87e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#55 0x00007ffff7131c66 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#56 0x00007ffff690ed21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#57 0x00007ffff690f085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#58 0x00007ffff6914b09 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#59 0x00000000004d13c0 in main (argc=1, argv=0x7fffffffe4e8) at /home/colin/proj/lmms/src/core/main.cpp:542

Not sure what to think of this. It's possible that there are some remnants from an old build messing things up, even though I did a make clean.

Edit: After totally wiping the build tree and applying the MOCFILES fix outlined further in this thread, I've been using LMMS in this branch for about an hour and a half with no more errors like this. Seems stable!

@Wallacoloo
Member

The malloc error seems intermittent. I thought maybe I just didn't have much free ram, but it's happened twice now at the 62% mark when loading my project and free -h showed:

$ free -h
             total       used       free     shared    buffers     cached
Mem:          2.6G       2.3G       252M        26M        59M       802M
-/+ buffers/cache:       1.5G       1.1G
Swap:         3.5G       496M       3.0G

The EQ error, by the way, is The plugin "eq" wasn't found or could not be loaded! Reason: "Cannot load library /home/colin/proj/lmms/build-debug-gcc/install/bin/../lib/lmms/eq: (/home/colin/proj/lmms/build-debug-gcc/install/bin/../lib/lmms/libeq.so: undefined symbol: _ZTV16EqControlsDialog)".

The path listed is a valid path to libeq.so. I'm guessing it may have been the addition of the Q_OBJECT macro into the EqControlsDialog class. I completely wiped the install directory and re-ran make install, but no fix (edit: I completely wiped the entire build tree, save for the Makefile, and re-built - no go). Also, the Equalizer plugin no longer shows up in the "Add Effect" Dialog.

@Wallacoloo
Member

Interestingly, removing the Q_OBJECT line with no other modifications seems to fix the EQ error, and it compiles fine. Not sure exactly why that is.

@Wallacoloo
Member

Running nm -D libeq.so gives the following output:

...
00000000002242a0 V _ZTV12PixmapLoader
0000000000223e80 V _ZTV14EffectControls
0000000000224480 V _ZTV14EqSpectrumView
                 U _ZTV16EqControlsDialog
00000000002241c0 V _ZTV16EqLowShelfFilter
0000000000224240 V _ZTV17EqHighShelfFilter
0000000000224800 V _ZTV17EqParameterWidget
...

The "U" symbol means "Undefined". So it looks like the declaration for the EqControlsDialog constructor is present but for whatever reason the definition never got linked in?

On the other hand, this same command but without the Q_OBJECT macro provides:

...
0000000000225020 V _ZTV12PixmapLoader
0000000000224c00 V _ZTV14EffectControls
0000000000225240 V _ZTV14EqSpectrumView
0000000000225440 V _ZTV16EqControlsDialog
0000000000224f40 V _ZTV16EqLowShelfFilter
0000000000224fc0 V _ZTV17EqHighShelfFilter
0000000000225800 V _ZTV17EqParameterWidget
...
@tresf
Member
tresf commented Jun 9, 2015

@Wallacoloo is there a chance you added that macro? I'm looking at master and I'm not sure it is there, although I just glanced quickly.

@tresf
Member
tresf commented Jun 9, 2015

Eerily similar to this: #1443 (comment)

Also, Travis-CI Windows is pissed off... :)

@Wallacoloo
Member

@tresf Good thinking, but that was an addition made in @midi-pascal 's branch for this PR - it's not yet on LMMS master. Just view https://github.com/LMMS/lmms/pull/2065/files and scroll down to the plugins/Eq/EqControlsDialog.h file.

@tresf
Member
tresf commented Jun 9, 2015

Ah yes... Well, the macros aren't something I entirely understand.... Here's what @curlymorphic said about them a while back...

Agreed the only other language that i used to use where macro's were common was x86 assembler. Qt does seem to like a macro, but for 99% of the time there is no need to understand them, just remember to put a Q_OBJECT macro in classes that use signals and slot. Thats probably enough about macros to build your first few apps, and to work on the majority of lmms issues.

Sorry I cannot help more.

@Wallacoloo
Member

@tresf thanks for digging up that other thread.

I tried building in clang to see if it would provide some relevant warnings, but it doesn't, and it behaves precisely as the gcc build does. Very strange.

@Wallacoloo
Member

Found a fix for the EQ issue. The only thing missing is that EqControlsDialog.h needs to be added to the MOCFILES list in the Eq plugin's CMakeLists.txt. Makes perfect sense - I was just under the impression that it was somehow automatically determined which files to send through the moc.

(The modified CMakeLists.txt looks like this:)

INCLUDE(BuildPlugin)
INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS})
LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS})
LINK_LIBRARIES(${FFTW3F_LIBRARIES})
BUILD_PLUGIN(eq EqEffect.cpp EqControls.cpp EqControlsDialog.cpp EqFilter.h EqParameterWidget.cpp EqFader.h EqSpectrumView.h
MOCFILES EqControls.h EqControlsDialog.h EqParameterWidget.h EqFader.h  EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png")

Looks like DelayControlsDialog (the other class that gained a Q_OBJECT declaration here) is already taken care of.

@tresf
Member
tresf commented Jun 9, 2015

👍 Thanks for the work (on a translation!)

@curlymorphic
Contributor

@Wallacoloo nice catch :)

@midi-pascal
Contributor

@Wallacoloo
I think I found the reason of the Q_OBJECT missing from the MOCFILES list in CMakeLists.txt:
I did all the modifications and debugging of the translation code with Qt Creator.
I imported the all lmms project in it but I think it did not updated CMakeLists.txt since
cmake is not the native Qt Creator build system, qmake being the default.
The problem did not show since I ran Lmms from Creator because it is so easier to debug.
Sorry for the trouble :-(
At least I learned something...

Thanks a lot for all

@midi-pascal
Contributor

@tresf The problem with the macros vs translation is that lupdate (the Qt program that extract the literals from the code) does not expand the macros before processing the sources.
This is why so many literals were missing in the translation file.

@tresf
Member
tresf commented Jun 9, 2015

Travis shows the Windows builds still failing, and we should squash those 13 commits via:

# 13 is the number of previous commits to squash into one
git rebase -i HEAD~13

Give a proper name to the first item and put squash in-front of the rest.

The second dialog, comment out everything except the relevant comment.

Next, force it to your branch.

# force is required when rewriting history :)
git push --force
@midi-pascal
Contributor

@tresf I think the Windows build fails because I did not yet add the fix from @Wallacoloo in my branch.
I will add his fix and I am pretty sure all will be Ok. IMHO This is the best solution because the EQ plugin becomes translatable with the Q_OBJECT addition - which I think is a good move -
Agree?

@tresf
Member
tresf commented Jun 9, 2015

Yes, lets proceed with that.

@midi-pascal
Contributor

Done :-)

@midi-pascal
Contributor

I see the Travis build fails on Windows but the EQ plugin passed!
The fail is not caused by the sources modified by me :-)

@tresf
Member
tresf commented Jun 9, 2015
moc_EqControlsDialog.cxx:(.text+0xe7): undefined reference to `EqControlsDialog::updateVuMeters()'

I believe this to still be related, no?

@Wallacoloo
Member

@tresf interestingly, updateVuMeters() is never actually defined in the current master branch. If you look inside the current EqControlsDialog.cpp file, you'll see it's missing a definition.

Using Github's search feature, it looks to me as if this function was at some point moved into EqFader.h and the old declaration in EqControlsDialog was never deleted.

So I think all that needs to happen is for the following code in EqControlsDialog.cpp to be removed:

private slots:
    void updateVuMeters();

The reason this error didn't show up until now is because nobody was attempting to ever call updateVuMeters(). But with it being defined as a slot, the moc inserts conditional calls to it in its signal receiving function. It is interesting that it still links ok on Linux though - I would not have expected it to.

@midi-pascal
Contributor

@Wallacoloo You are perfectly right: updateVuMeters() is declared as a private slot in EqControlsDialog.h but not implemented in EqControlsDialog.cpp and not anywhere else.
It is not called from anywhere either.
May I remove this non-existent slot definition from EqControlsDialog.h?

@Wallacoloo
Member

@midi-pascal Give it a try & see if it fixes the Travis error.

@midi-pascal
Contributor

@Wallacoloo Ok, I will give it a try :-)

@midi-pascal
Contributor

@Wallacoloo Done! Let's see if it works...

@midi-pascal
Contributor

@Wallacoloo Looks like it works :-) Thank you so much for your guidance!

@tresf
Member
tresf commented Jun 10, 2015

Terrific. Let's get those commits squashed now via:

# 15 is the number of previous commits to squash into one
git rebase -i HEAD~15
# force is required when rewriting history :)
git push --force
@midi-pascal
Contributor

@tresf Who your previous message is it for?
I did the git rebase -i HEAD~15 on my local copy but I do not have the permissions to do the next step (git push --force)

error: The requested URL returned error: 403 while accessing https://github.com/LMMS/lmms.git/info/refs
fatal: HTTP request failed

@tresf
Member
tresf commented Jun 10, 2015

@tresf Who your previous message is it for?

You. :)

The requested URL returned error: 403 while accessing https://github.com/LMMS/lmms.git/info/refs
fatal: HTTP request failed

I'm not sure why you are receiving that. Perhaps my syntax is wrong?

@midi-pascal midi-pascal Add and correct some French translation
The translation of the instrument plugins description does not work in Instruments pluginBrowser

Translation of the effect plugins description not showing in effects selector

Replace tabs with spaces in the fix indentation (as Tres request)

More French translations added

Remove the call to tr() inside the macro makeknob (DualFilterControlDialog.cpp) and tr() the strings before calling makeknob
Fix DualFilter description (was labeled as "A native amplifier plugin") (DualFilter.cpp)
Add French translation for the Dual filter knobs.

Move tr() out of macro's so lupdate find them for translation (extract litterals in "ts" file).
Full French translation of Monstro :-)

Make NES translatable (some tr() missing)
Remove tr() from macros (litterals not extracted by lupdate
Translate NES to French

Translate Watsyn Synth as others

Missing Q_OBJECT in DelayControlsDialog definition prevents its translation
Translate Delay plugin to French

Make EqControlsDialog translatable

Fix selected-note volume bug

Closes #2070

Fix a typo in French translation.

Add EqControlsDialog.h to the MOCFILES list in Eq CMakeLists.txt

Remove definition of slot updateVuMeters() in EqControlsDialog.h which is not implemented
fa498ca
@midi-pascal
Contributor

@tresf I found the problem: git push --force with no parameter tries to push to the main master.
git push --force https://github.com/midi-pascal/lmms was the right command.
It is ok now :-)
Thanks!

@tresf
Member
tresf commented Jun 10, 2015

👍

@tresf tresf merged commit ecbeaf7 into LMMS:master Jun 10, 2015

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@tresf
Member
tresf commented Jun 10, 2015

Big thanks to you @midi-pascal and @Wallacoloo. Merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment