Support Internationalizations and Translations

Bug #661440 reported by RJ Skerry-Ryan
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Wishlist
jus

Bug Description

We need to wrap every bare string in a tr() to support Qt's translation API.

Related branches

RJ Skerry-Ryan (rryan)
Changed in mixxx:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
jus (jus) wrote :

I would like to help.
Is there a list of files where this needs to be done?
Qdebug strings must be translated too?

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

Hey Jus,

There isn't a list of files unfortunately. I think the first step is probably to do the first translation, and then see what stuff is not currently translatable. That will give us hints as to where the remaining stuff is that needs to be wrapped in tr()'s.

I wouldn't worry about the qDebug's since they aren't supposed to be user-facing. We can instruct people to just copy/paste their log if we need to see it.

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

To create a translation file, you use the lupdate tool. From the mixxx/ folder:

lupdate -extensions cpp -source-language en -target-language de . -ts ./res/translations/mixxx_de.ts

That will create a mixxx_de.ts file, ideally these files will be stored in res/translations/ (which doesn't exist yet), and you should check the .ts file into version control.

You can use the Qt Linguist GUI to go through and fill out every phrase. It's command name is 'linguist' so from the command line just do :

linguist res/translations/mixxx_de.ts

Of course, change the 'de' in the above examples for the filename and the -target-language parameter to lupdate.

I'm not really sure how these tie into Launchpad translations.

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

oops, forgot that the Ui files have strings in the .h's: use this

lupdate -extensions cpp -source-language en -target-language de . -ts ./res/translations/mixxx_de.ts

By the way, it's safe to run that when mixxx_de.ts exists already. It automatically merges any changes and adds new phrases to be translated.

Revision history for this message
jus (jus) wrote :

Ok translation for mixxx_de.ts (533 strings) done, whats next?

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

Nice! The next step is to run the 'lrelease' command on mixxx_de.ts

lrelease res/translations/mixxx_de.ts

This will produce a mixxx_de.qm which is the release version of the translation. Now you need Mixxx to load the .qm when it boots and activate it. I just updated the trunk to do this, so if you update to trunk, it should load mixxx_XX.qm where XX is your current locale.

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

Oh, and in comment #4, I didn't update the command, but since you said 533 strings, it sounds like you figured it out:

lupdate -extensions cpp,h -source-language en -target-language de . -ts ./res/translations/mixxx_de.ts

Revision history for this message
jus (jus) wrote :

Would like to test, but current trunk wont compile on OSX 10.5. Any advice?

Undefined symbols:
  "TagLib::MP4::Item::Item()", referenced from:
      TagLib::Map<TagLib::String, TagLib::MP4::Item>::operator[](TagLib::String const&)in soundsource.o
  "TagLib::MP4::Item::~Item()", referenced from:

taglib-1.6.3 is installed from source
Thanks.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 661440] Re: Support Internationalizations and Translations

I jus, I reproduced your problem last night and found a fix. TagLib ships
with an outdated autotools build script that you need to regenerate using
cmake. Run this in your TagLib source directory:

cmake .
./configure --enable-mp4
make
sudo make install

Then try building Mixxx again.

Thanks!

P.S. you were right when you suggested we should translate Mixxx. Changed my
mind. :)
On 2010-10-27 1:25 PM, "jus" <email address hidden> wrote:
> ** Branch linked: lp:~jus/mixxx/basic_i18n
>
> --
> Support Internationalizations and Translations
> https://bugs.launchpad.net/bugs/661440
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
assignee: nobody → jus (jus)
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

The work is far from over, but we are at least now maybe half way there. All of the launchpad translations are integrated into the 1.10.0 release and the correct language should be chosen at run-time based on the user's system language.

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

Since this bug is more about the first step (just supporting translations), I'm marking it committed.

I think we need separate bugs now for things like:
* Add context strings to translations
* Get more translators to reach 100% on as many languages as possible.
* Improve the translation strings throughout Mixxx, get rid of unused ones, etc.
* Move tooltips out of skins (already a bug for this one)

Changed in mixxx:
milestone: none → 1.10.0
status: Confirmed → 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/5567

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.

Other bug subscribers

Related blueprints

Remote bug watches

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