darktable's user interface can be translated into many languages.
In short, to support a translation, the build process needs a xx.po file with the two-letter language code, e.g. fr.po.
To make sure your translation makes it into an official build:
- subscribe to the relevant mailing list
- ensure you keep your translation up to date to avoid large work just before the release
- entry criteria:
- no more than 20 untranslated strings
- no more than 50 fuzzy strings
The application uses gettext engine for translation, and it works like this, a text based editable PO file contains a number of sequences containing:
- a line in English (source language)
- a line in target language, and
- a reference to a line in source code where original text in English comes from.
The build system then creates a binary version of each PO file with MO file extension and places it in a system directory where a running instance of darktable will pick it up and use it to replace English text with target language text.
- Send your po file via email (see
(officially) Translate the darktable User Interface for darktable releases (how-to, no git, just email)below) - Submit a pull request with your po file
-
Get the PO file for your language from the repository -> po
-
To support making release translations easier, the darktable build process automatically creates a PO template (.POT) file,
darktable.potto use as base. -
Get the latest darktable.pot file.
-
Put both files on the same directory. Open the po file with a po file editor, e.g. poedit:
$ poedit <your_lang>.po $ poedit darktable.pot
-
Update the PO file using the POT file: go to menu
[Catalog]->[Update from POT file...]and selectdarktable.potfile. -
Start translating. Saving will update
<lang>.po. -
When you are done,
bzip2your PO file and send it to the mailing list or per instructions on the wiki. -
That's all!