Support Internationalizations and Translations

Bug #661440 reported by RJ Skerry-Ryan on 2010-10-15
This bug affects 2 people
Affects Status Importance Assigned to Milestone

Bug Description

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

Related branches

RJ Skerry-Ryan (rryan) on 2010-10-15
Changed in mixxx:
importance: Undecided → Wishlist
status: New → Confirmed
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?

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.

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.

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.

jus (jus) wrote :

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

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.

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

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

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
sudo make install

Then try building Mixxx again.


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
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.

RJ Skerry-Ryan (rryan) on 2010-10-28
Changed in mixxx:
assignee: nobody → jus (jus)
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.

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) on 2011-12-25
Changed in mixxx:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related blueprints

Bug attachments