Changed DiffText and Constant highlight groups
[MacVim/jjgod.git] / src / po / README.txt
blobd636eceac2d0db6c4373ca6e6cf22689816ea1d2
1 TRANSLATING VIM MESSAGES
3 In this directory you will find xx.po files, where "xx" is a language code.
4 Each file contains the translation of English Vim messages for one language.
5 The files are in "po" format, used by the gettext package.  Please refer to
6 the gettext documentation for more information.
8 The GNU gettext library, starting with version 0.10.37, supports converting
9 messages from one encoding to another.  This requires that it was compiled
10 with HAVE_ICONV.  The result is that the messages may be in any encoding
11 supported by iconv and will be automatically converted to the currently used
12 encoding.
14 The GNU gettext library, starting with version 0.10.36, uses a new format for
15 some encodings.  This follows the C99 standard for strings.  It means that
16 when a multi-byte character includes the 0x5c byte, this is not recognized as
17 a backslash.  Since this format is incompatible with Solaris, Vim uses the old
18 format.  This is done by setting the OLD_PO_FILE_OUTPUT and OLD_PO_FILE_INPUT
19 environment variables.  When you use the Makefile in this directory that will
20 be done for you.  This does NOT work with gettext 0.10.36.  Don't use it, get
21 0.10.37.
24 ON MS-WINDOWS
26 The distributed files are generated on Unix, but this should also be possible
27 on MS-Windows.  Download the gettext packages, for example from:
29         http://sourceforge.net/projects/gettext
31 You might have to do the commands manually.  Example:
33    cd c:\vim\vim71
34    mkdir runtime\lang\ja\LC_MESSAGES
35    msgfmt -o runtime\lang\ja\LC_MESSAGES\vim.mo src\po\ja.po
38 WHEN THERE IS A MISTAKE
40 If you find there is a mistake in one of the translations, please report this
41 to the maintainer of the translation.  His/her E-mail address is in the
42 comments at the start of the file.  You can also see this with the ":messages"
43 command in Vim when the translation is being used.
46 CREATING A NEW PO FILE
48 We will use "xx.po" as an example here, replace "xx" with the name of your
49 language.
51 - Edit Makefile to add xx to LANGUAGES and xx.mo to MOFILES.
52 - Copy the header of an existing file, e.g., de.po, to xx.po.  Do not copy any
53   of the translated messages, delete everything after the "msgstr".
54 - The remaining work is like updating, see the next section.
57 UPDATING A PO FILE
59 If you are the maintainer of a .po file, this is how you update the file.  We
60 will use "xx.po" as an example here, replace "xx" with the name of your
61 language.
63 (1) Add new and changed messages from the Vim sources:
65         make xx
67     This will extract all the strings from Vim and merge them in with the
68     existing translations.  Requires the GNU gettext utilities.  Also requires
69     unpacking the extra archive.
70     Your original xx.po file will be copied to xx.po.orig
72     -- After you do this, you MUST do the next three steps! --
74 (2) Translate
75     See the gettext documentation on how to do this.  You can also find
76     examples in the other po files.
77     Search the po file for items that require translation:
79         /fuzzy\|^msgstr ""\(\n"\)\@!
81     Remove the "#, fuzzy" line after adding the translation.
83     There is one special message:
84         msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
85     You should include your name and E-mail address instead, for example:
86         msgstr "Berichten übersetzt bei: John Doe <john@doe.org>"
88 (3) Clean up
89     This is very important to make sure the translation works on all systems.
90     Comment-out all non-translated strings.  There are two types:
91     - items marked with "#, fuzzy"
92     - items with an empty msgstr
93     You can do this with the cleanup.vim script:
95         :source cleanup.vim
97     Background: on Solaris an empty msgstr results in an empty message; GNU
98     gettext ignores empty strings and items marked with "#, fuzzy".
100     This also removes the line numbers from the file, so that patches are not
101     messed up by changes in line numbers and show the actual changes in the
102     text.
104 (4) Check:
106         vim -S check.vim xx.po
107         make xx.mo
109     Look out for syntax errors and fix them.