i18n: wrote small instruction for translators
[blender.git] / po / README.txt
1 Blender translation HOWTO
2 =========================
3
4 I'll try briefly explain how translation works and how to update translation files.
5
6 1. How it works
7 ---------------
8
9 This folder contains source files for translation system. This source files have
10 got .po extension and they've got pretty simple syntax:
11
12 msgid "some message id"
13 msgstr "translation for this message"
14
15 This means when string "some message id" is used as operator name, tooltip, menu
16 and so it'll be displayed on the screen as "translation for this message".
17 Pretty simple.
18
19 This source files are pre-compiled into ../relese/dbin/.blender/locale/<language>/LC_MESSAGES/blender.mo,
20 so they aren't getting compiled every time Blender is compiling to same some time and prevent
21 failure on systems which doesn't have needed tools for compiling .po files.
22
23 2. How to update translations
24 -----------------------------
25
26 It's also pretty simple. If you can find string you want to translate in <language>.po
27 file as msgid, just write correct msgstr string for it. If msgid is marked as fuzzy,
28 i.e.
29
30 #, fuzzy
31 msgid "some message id"
32 msgstr "translation for this message"
33
34 it means translation used to exist for this message, but message was changed, so translation
35 also have to be updated (it's easier to make new translation based on previos translation).
36 When translation was updated, remove line with '#, fuzzy' and it'll work.
37
38 If there's no message in .po file you want to translate, probably .po file should be updated.
39 Use the following steps for this:
40 - With newly compiled blender run `blender --background --python update_msg.py` to update
41   messages.txt file (this file contains strings collected automatically from RNA system and
42   python UI scripts)
43 - Run update_pot.py script which will update blender.pot file. This file contains all
44   strings which should be transated.
45 - Run update_po.py script to merge all .po files with blender.pot (so all .po files
46   will contain all msgid-s declared in blender.pot) or update_po.py <language> to
47   update only needed .po file(s) to save time when you're busy with translation.
48   But before ocmmit all .po files better be updated.
49
50 When you've finished with translation, you should re-compile .po file into .mo file.
51 It's also pretty simple: just run update_mo.py script to recompile all languages or
52 just update_mo.py <language> to re-compile only needed language(s).
53
54 NOTE: msgfmt, msgmerge and xgettext tools should be available in your PATH.
55
56 This steps to update template, translation files and compile them can be made in "batch" mode
57 using GNUMakefile:
58
59 make -f GNUMakefile translations
60
61 NOTE: Blender has to be compiled using GNUMakefile first.