blob: 691e6aedf4378a22d169bca39ec5f15068e5b6c2 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001TRANSLATING VIM MESSAGES
2
Bram Moolenaar41317732010-08-02 21:43:29 +02003This file explains how to create and maintain po files using a number of
4GnuWin packages. You will need gettext, libiconv and libexpat. As of
5August 2010 the versions known to work are gettext 0.14.4, libiconv 1.9.2-1
6and expat 2.0.1. gettext and libiconv can be found at:
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
Bram Moolenaar41317732010-08-02 21:43:29 +02008 http://gnuwin32.sourceforge.net/
9
10expat can be found at:
11
12 http://sourceforge.net/projects/expat/
13
14expat will install into its own directory. You should copy libexpat.dll into
15the bin directory created from the gettext/libiconv packages.
Bram Moolenaar071d4272004-06-13 20:20:40 +000016
RestorerZe2146922023-11-23 20:58:32 +010017Or Michele Locati kindly provides precompiled binaries gettext 0.21 and
18iconv 1.16 for Windows on his site:
19
20 https://mlocati.github.io/articles/gettext-iconv-windows.html
21
Bram Moolenaar071d4272004-06-13 20:20:40 +000022First read the README.txt file in this directory for general remarks on
23translating Vim messages.
24
25
26SETUP
27
Bram Moolenaar9964e462007-05-05 17:54:07 +000028Set the environment variable LANGUAGE to the language code for the language
29you are translating Vim messages to. Language codes are typically two
30characters and you can find a list of them at:
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
32 http://www.geocities.com/click2speak/languages.html
33
RestorerZe2146922023-11-23 20:58:32 +010034Another possibility is to use the GnuWin32 port of gettext. This is
Bram Moolenaar9964e462007-05-05 17:54:07 +000035recommended especially if you use already gnuwin32 tools to gunzip, bunzip,
RestorerZe2146922023-11-23 20:58:32 +010036patch etc. these files. You find the GnuWin32 version of gettext here:
Bram Moolenaar9964e462007-05-05 17:54:07 +000037
38 http://gnuwin32.sourceforge.net/packages/gettext.htm
39
40Yet another very strait forward way is to get the sources of gettext from
41
42 http://www.gnu.org/software/gettext/gettext.html
43
44and build your own version of these tools. The documentation states that this
45should be possible with MSVC4.0, MSVC5.0, MSVC6.0 or MSVC7.0, but you can
46build it even successfully with MSVC8.0.
47
Bram Moolenaar071d4272004-06-13 20:20:40 +000048The LANGUAGE environment variable can be set from the command line, by adding
49a line to your autoexec.bat file, or by defining a user variable from the
50Advanced tab in the System control panel.
51
52Next, edit Make_mvc.mak so that GETTEXT_PATH points the binary directory of
Bram Moolenaar9964e462007-05-05 17:54:07 +000053the installation.
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
55
56CREATING A NEW TRANSLATION
57
58When creating a new translation you must add your language code to the
RestorerZe2146922023-11-23 20:58:32 +010059Make_all.mak file in the lines defining LANGUAGES and MOFILES. To create the
Bram Moolenaar071d4272004-06-13 20:20:40 +000060initial .po file for your language you must use the command:
61
62 make -f make_mvc.mak first_time
63
64Note: You need to be in the po directory when using this makefile.
65
66Once you have your new .po file load it into Vim and source cleanup.vim, this
67will convert untranslated messages to comments. If you have syntax
68highlighting turned on then untranslated messages will stand out more easily.
69
70You will also need to edit the file names in the comments in the .po file.
71You need to remove the absolute directory specification (which has the form
RestorerZe2146922023-11-23 20:58:32 +010072c:\vim91\src\). You can do this in Vim with the following command with the
Bram Moolenaar9964e462007-05-05 17:54:07 +000073appropriate directory specification for where you have installed the Vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000074source:
75
RestorerZe2146922023-11-23 20:58:32 +010076 %s/c:\\vim91\\src\\//g
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
78
79UPDATING A TRANSLATION
80
81If there are new or changed messages in Vim that need translating, then the
82first thing to do is merge them into the existing translations. This is done
83with the following command:
84
85 nmake -f Make_mvc.mak xx.po
86
Bram Moolenaar9964e462007-05-05 17:54:07 +000087where xx is the language code for the language needing translations. The
Bram Moolenaar071d4272004-06-13 20:20:40 +000088original .po file is copied to xx.po.orig.
89
90
91DOING THE TRANSLATION
92
93Now that you have a .po file you can do the translations for all messages that
94need it. See README.txt for specific instructions.
95
96Once you have finished translating the messages you should make sure all
97non-translated strings are commented out. This can be done by sourcing
98cleanup.vim once again.
99
100
101CHECKING THE TRANSLATION
102
103Check the translation with the following command:
104
105 nmake -f make_mvc.mak xx.mo
106
107Correct any syntax errors reported. When there are no more errors, the
108translation is ready to be installed.
109
110
111INSTALLING THE TRANSLATION
112
113Install your translation with the following command:
114
115 nmake -f make_mvc.mak install
116
117This will create the xx\LC_MESSAGES directory in runtime\lang if it does not
118already exist.
Bram Moolenaar01380622015-12-29 16:04:42 +0100119You can also use the following command to install all languages:
120
121 nmake -f make_mvc.mak install-all
Bram Moolenaar071d4272004-06-13 20:20:40 +0000122
123
124vim:tw=78: