Translate

IgnorantGuru edited this page Nov 27, 2015 · 11 revisions

##Transifex Method

To help translate SpaceFM or udevil, so the GUI will appear fully in your language, just sign up for a free Transifex account, and visit the SpaceFM or udevil projects at Transifex. (Sometimes you have to reload those pages for the most up-to-date information to be shown.) If your language isn't listed, you can add a new one.

You can use their online editor to translate strings a few at a time, or download/upload a po file. Also see the Transifex Translator Instructions and additional notes below. Thanks for contributing!

Top Translations For SpaceFM

Top Translations For udevil


##Versions The pot files at Transifex reflect the latest builds of SpaceFM or udevil under development - their 'alpha' or 'next' [branches on Github](http://ignorantguru.github.io/spacefm/#branch). When testing translations, although not required, it's best to use the alpha (if available) or next branch of SpaceFM or udevil. If you use an older program version, recently changed strings may differ and may not appear translated. To test the alpha or next branch, see the README files ([SpaceFM README](https://github.com/IgnorantGuru/spacefm/blob/master/README) or [udevil README](https://github.com/IgnorantGuru/udevil/blob/master/README)), or use [SpaceFM's Net Installer](http://ignorantguru.github.io/spacefm/#installer).
##Design Mode Note

Because of SpaceFM's Design Mode, updating the translation file on your system may not affect the names of all menu items.

SpaceFM 0.9.0 and later: These versions of SpaceFM will show new translations for all menu items except those which the user has renamed.

SpaceFM 0.8.7 and earlier: These versions of SpaceFM will not show new translations for any menu items, unless you start with a fresh config. To test a new translation, use a temporary new config directory:

killall spacefm; rm -rf /tmp/spacefm-test; spacefm -c /tmp/spacefm-test

##Manual Method Using A Text Editor (or poedit)

Translating SpaceFM doesn't require any special tools - just a text editor. To create a translation of SpaceFM for your language without using Transifex, follow these steps:

  1. Install build dependencies, download the SpaceFM source code tarball, and extract it (see README - BUILD).

  2. Open a terminal and enter the source code subdirectory 'po'

  3. Generate a spacefm.pot file:

    intltool-update --pot
    
  4. Create a .po file for your language. This example uses French (fr) - change 'fr' in the examples below to your language:

    cp fr.po fr-old.po     # copy the old po file for reference
    cp spacefm.pot fr.po   # create a new po file
    
  5. Open fr.po in your text editor. Translate each msgid into the corresponding msgstr. To see examples, consult fr-old.po. (The program poedit has also been suggested as a convenient way to edit po files.)

  6. cd into the directory containing configure and run make normally:

    cd ..
    ./configure
    make
    

If necessary, correct any syntax errors or warnings produced by make relating to your .po file and repeat step 6 until make is successful.

  1. Test your translation by installing and running spacefm:

    sudo make install
    killall spacefm
    rm -rf /tmp/spacefm-test
    spacefm --config-dir /tmp/spacefm-test
    

NOTE (applies to SpaceFM < 0.9.0): Because of SpaceFM's design mode, your newly translated strings will only appear in menu item names when starting with a fresh config directory as shown above.

To start spacefm with a particular locale:

    LANG=fr_FR.utf8 spacefm --config-dir /tmp/spacefm-test
  1. Once translations in menus and dialogs are the way you want them, release your translated .po file:

Upload the file to https://www.transifex.com/projects/p/spacefm/

OR, if you are familiar with github, you can clone the spacefm repo and do a pull request.

OR, add the .po file to a public gist https://gist.github.com/ or host it elsewhere, then open a new issue asking for your file to be merged into the source: https://github.com/IgnorantGuru/spacefm/issues/new

OR, email your .po file:

  1. Translated strings will change occassionally as new SpaceFM versions are released. To update your translation:

Generate a spacefm.pot file:

    intltool-update --pot

Then merge the new strings with the already translated ones:

    intltool-update --dist fr

OR, if you don’t want to overwrite fr.po initially, you can merge into a new test file:

    intltool-update --dist --output-file=fr-test.po fr

Then complete any missing or fuzzy translations in the .po file, and repeat steps 7 and 8.