Difference between revisions of "Translation"

From MythTV Official Wiki
Jump to: navigation, search
(Translation maintainers: Update table with fr + en_us maintainers)
m (Translation maintainers/contributors)
Line 19: Line 19:
 
| Dutch (nl) || <Please fill in> || <Please fill in>
 
| Dutch (nl) || <Please fill in> || <Please fill in>
 
|-  
 
|-  
| English (en_gb) || <Please fill in> || <Please fill in>
+
| English (en_gb) || Nick Morrott: "knowledgejunkie TA gmail 0 com" || No problems
 
|-  
 
|-  
 
| English (en_us) || Nicolas Riendeau: "knight TA teksavvy 0 com" || <Please fill in>
 
| English (en_us) || Nicolas Riendeau: "knight TA teksavvy 0 com" || <Please fill in>

Revision as of 10:10, 14 August 2010

Translation maintainers/contributors

Some languages are unofficially maintained by teams or individuals, who are interested in keeping their language of choice up to date. While you are completely free to upload patches directly to MythTV without consulting the maintainer(s), you are encouraged to contact the maintainer(s) first, to join efforts on the translation as well as avoiding conflicting translation patches :)


If you feel like you're already maintaining a language or if you want to maintain a language, please add your contact information in the table below. If you want to help out maintaining a language, but don't want to do it alone, also feel free to leave your contact information in the table below, so other people would be able to contact you to create a team.


Current maintainers:

Language Contact person(s) and/or website Team/individual could use some help?
Czech (cs) <Please fill in> <Please fill in>
Danish (da) Website
Kenni Lund: "kenni TA mythtv 0 dk"
Nikolaj Koch: "koch TA mythtv 0 dk"
We're fine, but feedback is always highly appreciated.
Dutch (nl) <Please fill in> <Please fill in>
English (en_gb) Nick Morrott: "knowledgejunkie TA gmail 0 com" No problems
English (en_us) Nicolas Riendeau: "knight TA teksavvy 0 com" <Please fill in>
Estonian (et) <Please fill in> <Please fill in>
Finnish (fi) <Please fill in> <Please fill in>
French (fr) Website
Nicolas Riendeau: "knight TA teksavvy 0 com"
Gilles: "choteau 0 gilles TA orange 0 fr"
<Please fill in>
German (de) <Please fill in> <Please fill in>
Greek (el) <Please fill in> <Please fill in>
Italian (it) <Please fill in> <Please fill in>
Norwegian Bokmål (nb) <Please fill in> <Please fill in>
Spanish (es) <Please fill in> <Please fill in>
Swedish (sv) <Please fill in> <Please fill in>

Translate MythTV

Throughout this page, German (de) translation files will be used as examples.

Checkout the latest SVN version

Checkout the latest SVN version by running:

svn co http://svn.mythtv.org/svn/trunk

Go to the mythtv/i18n directory. All remaining steps will be done in this directory.

Update translation files

To update the translation files with the latest strings, run the following command:

lupdate -locations absolute translate.pro

This will ensure that all translatable strings in the source code are included in the .ts file, which we will work on later.

Do the translation

Translate .ts file, e.g. mythfrontend_de.ts (for German)

You can use any editor for this, but it is most convenient to use the tool Linguist included in Qt (on Debian, this is found in the qt4-dev-tools package).

linguist mythfrontend_de.ts

Compile and test translation

Compile .ts files into .qm files by running:

lrelease translate.pro

The generated .qm file of your language can now be copied into a MythTV installation for testing:

cp mythfrontend_de.qm /usr/share/mythtv/i18n/

(destination path depends on your MythTV installation)

After restarting the frontend, you can test your translations. If all is OK you can proceed.

Create patch

If creating new files, then you first need to add them to the local svn repository:

cd ../..
svn add mythtv/i18n/mythfrontend_de.ts

You can now create a patch for your translation:

svn diff mythtv/i18n/mythfrontend_de.ts > german_mythtv_translation.diff

If you translate several files (eg. MythTV and some plugins), please merge all of the translations into one patch, instead of creating several patches.

To do this, just put all files on the same line when creating the patch, for example:

cd ../..
svn diff mythtv/i18n/mythfrontend_de.ts mythplugins/mythvideo/i18n/mythvideo_de.ts > german_translation.diff

Submit the patch

Submit the diff to trac, via the URL http://svn.mythtv.org/trac/newticket and use the following options when submitting:

-
Summary: [PATCH i18n] $LANGUAGE translation
Type: patch
Version: Trunk Head
Component: Translations
-
Leave the rest of the fields (milestone, priority, severity) untouched and remember to replace $LANGUAGE with your language :)

Translate the plugins

To translate the plugins, back out of the mythtv directory, enter mythplugins, and each plugin's i18n directory, eg:

cd ../..
cd mythplugins/mythvideo/i18n

and repeat the above steps (beginning with "Update translation files").


Translate the menus

Translation of menus are now done through the .ts files as well. However, if you've translated the menu strings in the .ts files and this doesn't work, then you'll need to delete some old deprecated XML-translations.

You can find the XML-translations in:

mythtv/themes/*/*.xml
mythplugins/*/theme/menus/*.xml

If you submit a patch which edits the XML-translations instead of removing them, there'll be no guarantee that your patch will be accepted, instead it will most likely be rejected (Ticket #7771 is one example of this).

You can use the following grep command to find these old translations (this example uses Germany - "DE"):

mythtv:

grep -H -i 'lang="DE"' mythtv/themes/*/*.xml

mythplugins:

grep -H -i 'lang="DE"' mythplugins/*/theme/menus/*.xml

If you get no output from the above commands, all old XML-translations are already deleted.

If you DO get some output, you'll need to delete the lines mentioned in the output and make a patch with the changes. Otherwise your .ts menu translations will not be used.