Provide help to translators with context/navigation information

Bug #931489 reported by jus
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Low
jus

Bug Description

It may be difficult for the translator to see where a particular source text comes from. This problem can be solved by adding a comment to the source using the keyword TRANSLATOR which describes the navigation steps to reach the text in question; e.g.
 /*
     TRANSLATOR FindDialog

     Choose Edit|Find from the menu bar or press Ctrl+F to pop up the
     Find dialog.
    ...
 */

In addition, it can be used help to explain ambiguous strings or the context of a string ( like "Key" in the sense of tonality).

These TRANSLATOR notes will be then displayed to the translator on https://translations.launchpad.net/mixxx or any translation application like Lokalize, Virtaal or QT linguist. This should help to to ensure the quality of translations and to keep the ALT navigation working across different locales (see lp:909174)

Tags: i18n
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Another important aspect of this is telling the translator about the "accelerator" shortcuts in menu items e.g. "Enable Vinyl Control &1". We should tell the translator what the ampersand means and verify that menu shortcut translations include the ampersand.

jus (jus)
Changed in mixxx:
assignee: nobody → jus (jus)
status: Confirmed → In Progress
Revision history for this message
jus (jus) wrote :

Use "//: ..." for translator comments to annotate the tr() calls
http://doc.qt.digia.com/qt/i18n-source-translation.html#translator-comments

In *.ui files, use the Comment field (=extracomment in the *.ui source) , not the Disambiguation field which is outdated since Qt 4.4
http://doc.qt.digia.com/qt/i18n-source-translation.html#disambiguation

jus (jus)
Changed in mixxx:
milestone: none → 1.11.1
Revision history for this message
jus (jus) wrote :

Now that we move to Transifex (TF), i am tempted to fix this using the glossary and developer comments one can set directly on the translation template on TF . No need to pollute and maintain the source code for that matter.

Changed in mixxx:
milestone: 1.11.1 → 1.12.0
Revision history for this message
jus (jus) wrote :

Lets recycle this bug to add instructions to TF for the last remaining ambiguous terms for 1.12:

I`ll start with the original string, and you please add a short explanation. This explanation will be copied over to TF and used as instruction for translators.

1."Enable Effect Unit On"
    ../../src/controllers/controlpickermenu.cpp:313
   Maybe simply a typo?

2. "Stutter Cue"
   ../../src/controllers/controlpickermenu.cpp:136
   Context? What does stutter cue do?

3 "Super Knob"
   ../../src/controllers/controlpickermenu.cpp:298
  Context? What does the knob do?
  Do we have one visible somewhere in the skin?

4. "For jog wheels or infinite-scroll knobs. Interprets incoming messages in two's complement."
   ../../src/controllers/dlgcontrollerlearning.ui:109
  Can you elaborate on the " two's complement" ?

Revision history for this message
jus (jus) wrote :

Bumpedy bump.

All terms from above comment are fine except
"Stutter Cue"
 ../../src/controllers/controlpickermenu.cpp:136
 Context? What does stutter cue do?

Is the following context correct?
"Also stutter play. Play will have to be paused in order for a temporary cue to be set. The track returns to the temporary cue point and playback continues from there when pressing play."

Next One is:
"Beat Sync One-Shot"
../../src/controllers/controlpickermenu.cpp:110

I`m specifically interested in the context of "One Shot", which is hard to translate. Maybe we can circumscribe it in the original string and make it even easier to translate.

one-shot= all in one?
one-shot= happening only once?
one-shot=all or nothing, representing the only chance/opportunity?

Thanks

Revision history for this message
Owen Williams (ywwg) wrote :

I don't know what stutter cue does! Maybe someone else can explain.

One-shot is supposed to be distinct from press-and-hold locking of sync mode. "happening only once" is correct. "Beat Sync Once" would be fine

Revision history for this message
Daniel Schürmann (daschuer) wrote :

The term "stutter cue" cue is just wrong here.
It is an implementation of the Numark "Play/Stutter" button

From Numark Manual:
"
Play/Stutter:
Starts the music from either the first set cue point or
the last point of pause. By
starting from the last pause point
while the unit is paused a new cue point is set. Pressing this
button while the unit is in play
restarts the unit from the last cue
point, creating a “stutter” effect.
"

Revision history for this message
Owen Williams (ywwg) wrote :

"Play From Last Pause" ?
"Numark Play/Stutter" ?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

> Play From Last Pause,

Yes, Last Pause is also the point where play was pressed an the cue point is moved to.
Requires Cue mode = "Numark mode" in preferences.

Revision history for this message
jus (jus) wrote :

Thanks for input, guys.

What about just "Stutter Play", a well known term for Numark and Serato users? And since even the control is play_stutter, it seem natural.

@daschuer
<quote>Requires Cue mode = "Numark mode" in preferences</quote>
play_stutter works also if not in Numark mode.
* When pressed while paused, it starts playback from paused position
* When pressed while playing, it jumps to existing cue point and continues playback

I just want to make sure this is the intended behavior, as i`d like to put this in the wiki.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

It plays always from THE cue point. Numark mode is required to move the cue point to the "play from pause" position.
There is no independent (hidden) paused position.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Oh sorry, I misread your comment.
Yes, correct. It plays from pause position when paused. This is the "play" part.

void CueControl::playStutter(double v) {
    QMutexLocker lock(&m_mutex);
    //qDebug() << "playStutter" << v;
    if (v != 0.0) {
        if (m_pPlayButton->get() != 0.0) {
            cueGoto(1.0);
        } else {
            m_pPlayButton->set(1.0);
        }
    }
}

Revision history for this message
jus (jus) wrote :

Re: bug title
Transifex, our current Translation platform does all this and more: glossary, translation memory .

Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/6273

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.