blob: 89672e327f159c6c7ef17f10a696a24bc6f4923b [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001# Makefile for the Vim message translations.
2
Bram Moolenaare639eb42014-06-12 18:03:29 +02003# Include stuff found by configure.
4include ../auto/config.mk
5
Bram Moolenaar071d4272004-06-13 20:20:40 +00006# TODO make this configurable
7# Note: ja.sjis, *.cp1250 and zh_CN.cp936 are only for MS-Windows, they are
8# not installed on Unix
9
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000010LANGUAGES = \
11 af \
12 ca \
13 cs \
14 de \
15 en_GB \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000016 eo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000017 es \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000018 fi \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000019 fr \
20 ga \
21 it \
22 ja \
23 ko \
Bram Moolenaar5e3dae82010-03-02 16:19:40 +010024 ko.UTF-8 \
Bram Moolenaar24a98a02017-09-27 22:23:55 +020025 lv \
Bram Moolenaar28c37952010-01-06 20:29:28 +010026 nb \
Bram Moolenaar84f72352012-03-11 15:57:40 +010027 nl \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000028 no \
29 pl \
Bram Moolenaare37d50a2008-08-06 17:06:04 +000030 pt_BR \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000031 ru \
32 sk \
33 sv \
34 uk \
35 vi \
36 zh_CN \
37 zh_CN.UTF-8 \
38 zh_TW \
Bram Moolenaar78622822005-08-23 21:00:13 +000039 zh_TW.UTF-8
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000040
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010041CONVERTED = \
42 cs.cp1250 \
43 ja.sjis \
Bram Moolenaare6ae6222013-05-21 21:01:10 +020044 ja.euc-jp \
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010045 pl.cp1250 \
46 pl.UTF-8 \
47 ru.cp1251 \
48 sk.cp1250 \
49 uk.cp1251 \
50 zh_CN.cp936
51
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000052MOFILES = \
53 af.mo \
54 ca.mo \
55 cs.mo \
56 de.mo \
57 en_GB.mo \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000058 eo.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000059 es.mo \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000060 fi.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000061 fr.mo \
62 ga.mo \
63 it.mo \
64 ja.mo \
65 ko.mo \
Bram Moolenaar5e3dae82010-03-02 16:19:40 +010066 ko.UTF-8.mo \
Bram Moolenaar24a98a02017-09-27 22:23:55 +020067 lv.mo \
Bram Moolenaar28c37952010-01-06 20:29:28 +010068 nb.mo \
Bram Moolenaar84f72352012-03-11 15:57:40 +010069 nl.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000070 no.mo \
71 pl.mo \
Bram Moolenaare37d50a2008-08-06 17:06:04 +000072 pt_BR.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000073 ru.mo \
74 sk.mo \
75 sv.mo \
76 uk.mo \
77 vi.mo \
78 zh_CN.UTF-8.mo \
79 zh_CN.mo \
80 zh_TW.UTF-8.mo \
Bram Moolenaar78622822005-08-23 21:00:13 +000081 zh_TW.mo
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010083MOCONVERTED = \
Bram Moolenaar58d98232005-07-23 22:25:46 +000084 cs.cp1250.mo \
85 ja.sjis.mo \
Bram Moolenaare6ae6222013-05-21 21:01:10 +020086 ja.euc-jp.mo \
Bram Moolenaar58d98232005-07-23 22:25:46 +000087 pl.cp1250.mo \
Bram Moolenaar910f66f2006-04-05 20:41:53 +000088 pl.UTF-8.mo \
Bram Moolenaar58d98232005-07-23 22:25:46 +000089 ru.cp1251.mo \
90 sk.cp1250.mo \
91 uk.cp1251.mo \
Bram Moolenaar78622822005-08-23 21:00:13 +000092 zh_CN.cp936.mo
Bram Moolenaar58d98232005-07-23 22:25:46 +000093
94CHECKFILES = \
95 af.ck \
96 ca.ck \
97 cs.ck \
98 de.ck \
99 en_GB.ck \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000100 eo.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000101 es.ck \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000102 fi.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000103 fr.ck \
104 ga.ck \
105 it.ck \
106 ja.ck \
107 ko.ck \
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100108 ko.UTF-8.ck \
Bram Moolenaar28c37952010-01-06 20:29:28 +0100109 nb.ck \
Bram Moolenaar84f72352012-03-11 15:57:40 +0100110 nl.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000111 no.ck \
112 pl.ck \
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000113 pt_BR.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000114 ru.ck \
115 sk.ck \
116 sv.ck \
117 uk.ck \
118 vi.ck \
119 zh_CN.UTF-8.ck \
120 zh_CN.ck \
121 zh_TW.UTF-8.ck \
122 zh_TW.ck \
123 cs.cp1250.ck \
124 ja.sjis.ck \
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200125 ja.euc-jp.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000126 pl.cp1250.ck \
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000127 pl.UTF-8.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000128 ru.cp1251.ck \
129 sk.cp1250.ck \
130 uk.cp1251.ck \
Bram Moolenaar78622822005-08-23 21:00:13 +0000131 zh_CN.cp936.ck
Bram Moolenaar58d98232005-07-23 22:25:46 +0000132
Bram Moolenaar071d4272004-06-13 20:20:40 +0000133PACKAGE = vim
134SHELL = /bin/sh
Bram Moolenaar58d98232005-07-23 22:25:46 +0000135VIM = ../vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000136
137# The OLD_PO_FILE_INPUT and OLD_PO_FILE_OUTPUT are for the new GNU gettext
138# tools 0.10.37, which use a slightly different .po file format that is not
139# compatible with Solaris (and old gettext implementations) unless these are
140# set. gettext 0.10.36 will not work!
Bram Moolenaare639eb42014-06-12 18:03:29 +0200141MSGFMTCMD = OLD_PO_FILE_INPUT=yes $(MSGFMT) -v
Bram Moolenaar071d4272004-06-13 20:20:40 +0000142XGETTEXT = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes xgettext
143MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes msgmerge
144
145.SUFFIXES:
Bram Moolenaar58d98232005-07-23 22:25:46 +0000146.SUFFIXES: .po .mo .pot .ck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100147.PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000148
149.po.mo:
Bram Moolenaare639eb42014-06-12 18:03:29 +0200150 $(MSGFMTCMD) -o $@ $<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000151
Bram Moolenaar58d98232005-07-23 22:25:46 +0000152.po.ck:
Bram Moolenaar28c37952010-01-06 20:29:28 +0100153 $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
Bram Moolenaar58d98232005-07-23 22:25:46 +0000154 touch $@
155
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100156all: $(MOFILES) $(MOCONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000157
Bram Moolenaar58d98232005-07-23 22:25:46 +0000158check: $(CHECKFILES)
159
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100160install: $(MOFILES) $(MOCONVERTED)
Bram Moolenaar58d98232005-07-23 22:25:46 +0000161 @$(MAKE) prefixcheck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100162 for lang in $(LANGUAGES) $(CONVERTED); do \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000163 dir=$(LOCALEDIR)/$$lang/; \
164 if test ! -x "$$dir"; then \
165 mkdir $$dir; chmod 755 $$dir; \
166 fi; \
167 dir=$(LOCALEDIR)/$$lang/LC_MESSAGES; \
168 if test ! -x "$$dir"; then \
169 mkdir $$dir; chmod 755 $$dir; \
170 fi; \
171 if test -r $$lang.mo; then \
172 $(INSTALL_DATA) $$lang.mo $$dir/$(PACKAGE).mo; \
173 chmod $(FILEMOD) $$dir/$(PACKAGE).mo; \
174 fi; \
175 done
176
177uninstall:
Bram Moolenaar58d98232005-07-23 22:25:46 +0000178 @$(MAKE) prefixcheck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100179 for cat in $(MOFILES) $(MOCONVERTED); do \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000180 cat=`basename $$cat`; \
181 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
182 rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
183 done
184
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100185converted: $(MOCONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000186
Bram Moolenaar02938a92013-05-04 03:37:10 +0200187# nl.po was added later, if it does not exist use a file with just a # in it
188# (an empty file doesn't work with old msgfmt).
Bram Moolenaar8d616172013-01-30 12:50:56 +0100189nl.po:
Bram Moolenaar02938a92013-05-04 03:37:10 +0200190 @( echo \# > nl.po )
Bram Moolenaar8d616172013-01-30 12:50:56 +0100191
Bram Moolenaar28c37952010-01-06 20:29:28 +0100192# Norwegian/Bokmal: "nb" is an alias for "no".
193# Copying the file is not efficient, but I don't know of another way to make
194# this work.
195nb.po: no.po
196 cp no.po nb.po
197
Bram Moolenaar071d4272004-06-13 20:20:40 +0000198# Convert ja.po to create ja.sjis.po. Requires doubling backslashes in the
199# second byte. Don't depend on sjiscorr, it should only be compiled when
200# ja.sjis.po is outdated.
201ja.sjis.po: ja.po
202 @$(MAKE) sjiscorr
203 rm -f ja.sjis.po
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200204 iconv -f utf-8 -t cp932 ja.po | ./sjiscorr > ja.sjis.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000205
206sjiscorr: sjiscorr.c
207 $(CC) -o sjiscorr sjiscorr.c
208
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200209ja.euc-jp.po: ja.po
210 iconv -f utf-8 -t euc-jp ja.po | \
211 sed -e 's/charset=utf-8/charset=euc-jp/' -e 's/# Original translations/# Generated from ja.po, DO NOT EDIT/' > ja.euc-jp.po
212
Bram Moolenaar071d4272004-06-13 20:20:40 +0000213# Convert cs.po to create cs.cp1250.po.
214cs.cp1250.po: cs.po
215 rm -f cs.cp1250.po
216 iconv -f iso-8859-2 -t cp1250 cs.po | \
217 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from cs.po, DO NOT EDIT/' > cs.cp1250.po
218
219# Convert pl.po to create pl.cp1250.po.
220pl.cp1250.po: pl.po
221 rm -f pl.cp1250.po
222 iconv -f iso-8859-2 -t cp1250 pl.po | \
223 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.cp1250.po
224
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000225# Convert pl.po to create pl.UTF-8.po.
226pl.UTF-8.po: pl.po
227 rm -f pl.UTF-8.po
228 iconv -f iso-8859-2 -t utf-8 pl.po | \
229 sed -e 's/charset=ISO-8859-2/charset=utf-8/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.UTF-8.po
230
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231# Convert sk.po to create sk.cp1250.po.
232sk.cp1250.po: sk.po
233 rm -f sk.cp1250.po
234 iconv -f iso-8859-2 -t cp1250 sk.po | \
235 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from sk.po, DO NOT EDIT/' > sk.cp1250.po
236
Bram Moolenaar16038d52017-01-27 20:37:49 +0100237# Convert zh_CN.UTF-8.po to create zh_CN.cp936.po.
238# Set 'charset' to gbk to avoid that msfmt generates a warning.
239# This used to convert from zh_CN.po, but that results in a conversion error.
240zh_CN.cp936.po: zh_CN.UTF-8.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000241 rm -f zh_CN.cp936.po
Bram Moolenaar16038d52017-01-27 20:37:49 +0100242 iconv -f UTF-8 -t cp936 zh_CN.UTF-8.po | \
Bram Moolenaar74675a62017-07-15 13:53:23 +0200243 sed -e 's/charset=utf-8/charset=gbk/' -e 's/# Original translations/# Generated from zh_CN.UTF-8.po, DO NOT EDIT/' > zh_CN.cp936.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000244
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100245# Convert ko.UTF-8.po to create ko.po.
246ko.po: ko.UTF-8.po
247 rm -f ko.po
248 iconv -f UTF-8 -t euc-kr ko.UTF-8.po | \
249 sed -e 's/charset=UTF-8/charset=euc-kr/' \
250 -e 's/# Korean translation for Vim/# Generated from ko.UTF-8.po, DO NOT EDIT/' \
251 > ko.po
252
Bram Moolenaar071d4272004-06-13 20:20:40 +0000253# Convert ru.po to create ru.cp1251.po.
254ru.cp1251.po: ru.po
255 rm -f ru.cp1251.po
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000256 iconv -f utf-8 -t cp1251 ru.po | \
257 sed -e 's/charset=utf-8/charset=cp1251/' -e 's/# Original translations/# Generated from ru.po, DO NOT EDIT/' > ru.cp1251.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +0000259# Convert uk.po to create uk.cp1251.po.
260uk.cp1251.po: uk.po
261 rm -f uk.cp1251.po
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000262 iconv -f utf-8 -t cp1251 uk.po | \
263 sed -e 's/charset=utf-8/charset=cp1251/' -e 's/# Original translations/# Generated from uk.po, DO NOT EDIT/' > uk.cp1251.po
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +0000264
Bram Moolenaar58d98232005-07-23 22:25:46 +0000265prefixcheck:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000266 @if test "x" = "x$(prefix)"; then \
267 echo "******************************************"; \
268 echo " please use make from the src directory "; \
269 echo "******************************************"; \
270 exit 1; \
271 fi
272
Bram Moolenaar316059c2006-01-14 21:18:42 +0000273clean: checkclean
274 rm -f core core.* *.old.po *.mo *.pot sjiscorr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000275
276distclean: clean
277
Bram Moolenaar316059c2006-01-14 21:18:42 +0000278checkclean:
279 rm -f *.ck
280
Bram Moolenaard3dd2662010-08-07 13:45:59 +0200281$(PACKAGE).pot: ../*.c ../if_perl.xs ../GvimExt/gvimext.cpp ../globals.h ../if_py_both.h
Bram Moolenaar071d4272004-06-13 20:20:40 +0000282 cd ..; $(XGETTEXT) --default-domain=$(PACKAGE) \
283 --add-comments --keyword=_ --keyword=N_ \
Bram Moolenaard3dd2662010-08-07 13:45:59 +0200284 *.c if_perl.xs GvimExt/gvimext.cpp globals.h if_py_both.h
Bram Moolenaar071d4272004-06-13 20:20:40 +0000285 mv -f ../$(PACKAGE).po $(PACKAGE).pot
286
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000287update-po: $(LANGUAGES)
288
Bram Moolenaar071d4272004-06-13 20:20:40 +0000289# Don't add a dependency here, we only want to update the .po files manually
290$(LANGUAGES):
291 @$(MAKE) $(PACKAGE).pot
292 if test ! -f $@.po.orig; then cp $@.po $@.po.orig; fi
293 mv $@.po $@.po.old
294 if $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po; then \
295 rm -f $@.po.old; \
296 else \
297 echo "msgmerge for $@.po failed!"; mv $@.po.old $@.po; \
298 fi