blob: 386cb64433c232c0bdbaabb3916a2f3c441873d5 [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 \
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +010033 sr \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000034 sv \
35 uk \
36 vi \
37 zh_CN \
38 zh_CN.UTF-8 \
39 zh_TW \
Bram Moolenaar78622822005-08-23 21:00:13 +000040 zh_TW.UTF-8
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000041
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010042CONVERTED = \
43 cs.cp1250 \
44 ja.sjis \
Bram Moolenaare6ae6222013-05-21 21:01:10 +020045 ja.euc-jp \
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010046 pl.cp1250 \
47 pl.UTF-8 \
48 ru.cp1251 \
49 sk.cp1250 \
50 uk.cp1251 \
51 zh_CN.cp936
52
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000053MOFILES = \
54 af.mo \
55 ca.mo \
56 cs.mo \
57 de.mo \
58 en_GB.mo \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000059 eo.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000060 es.mo \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000061 fi.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000062 fr.mo \
63 ga.mo \
64 it.mo \
65 ja.mo \
66 ko.mo \
Bram Moolenaar5e3dae82010-03-02 16:19:40 +010067 ko.UTF-8.mo \
Bram Moolenaar24a98a02017-09-27 22:23:55 +020068 lv.mo \
Bram Moolenaar28c37952010-01-06 20:29:28 +010069 nb.mo \
Bram Moolenaar84f72352012-03-11 15:57:40 +010070 nl.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000071 no.mo \
72 pl.mo \
Bram Moolenaare37d50a2008-08-06 17:06:04 +000073 pt_BR.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000074 ru.mo \
75 sk.mo \
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +010076 sr.mo \
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +000077 sv.mo \
78 uk.mo \
79 vi.mo \
80 zh_CN.UTF-8.mo \
81 zh_CN.mo \
82 zh_TW.UTF-8.mo \
Bram Moolenaar78622822005-08-23 21:00:13 +000083 zh_TW.mo
Bram Moolenaar071d4272004-06-13 20:20:40 +000084
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +010085MOCONVERTED = \
Bram Moolenaar58d98232005-07-23 22:25:46 +000086 cs.cp1250.mo \
87 ja.sjis.mo \
Bram Moolenaare6ae6222013-05-21 21:01:10 +020088 ja.euc-jp.mo \
Bram Moolenaar58d98232005-07-23 22:25:46 +000089 pl.cp1250.mo \
Bram Moolenaar910f66f2006-04-05 20:41:53 +000090 pl.UTF-8.mo \
Bram Moolenaar58d98232005-07-23 22:25:46 +000091 ru.cp1251.mo \
92 sk.cp1250.mo \
93 uk.cp1251.mo \
Bram Moolenaar78622822005-08-23 21:00:13 +000094 zh_CN.cp936.mo
Bram Moolenaar58d98232005-07-23 22:25:46 +000095
96CHECKFILES = \
97 af.ck \
98 ca.ck \
99 cs.ck \
100 de.ck \
101 en_GB.ck \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000102 eo.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000103 es.ck \
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000104 fi.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000105 fr.ck \
106 ga.ck \
107 it.ck \
108 ja.ck \
109 ko.ck \
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100110 ko.UTF-8.ck \
Bram Moolenaar28c37952010-01-06 20:29:28 +0100111 nb.ck \
Bram Moolenaar84f72352012-03-11 15:57:40 +0100112 nl.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000113 no.ck \
114 pl.ck \
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000115 pt_BR.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000116 ru.ck \
117 sk.ck \
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100118 sr.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000119 sv.ck \
120 uk.ck \
121 vi.ck \
122 zh_CN.UTF-8.ck \
123 zh_CN.ck \
124 zh_TW.UTF-8.ck \
125 zh_TW.ck \
126 cs.cp1250.ck \
127 ja.sjis.ck \
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200128 ja.euc-jp.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000129 pl.cp1250.ck \
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000130 pl.UTF-8.ck \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000131 ru.cp1251.ck \
132 sk.cp1250.ck \
133 uk.cp1251.ck \
Bram Moolenaar78622822005-08-23 21:00:13 +0000134 zh_CN.cp936.ck
Bram Moolenaar58d98232005-07-23 22:25:46 +0000135
Bram Moolenaar071d4272004-06-13 20:20:40 +0000136PACKAGE = vim
137SHELL = /bin/sh
Bram Moolenaar58d98232005-07-23 22:25:46 +0000138VIM = ../vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000139
140# The OLD_PO_FILE_INPUT and OLD_PO_FILE_OUTPUT are for the new GNU gettext
141# tools 0.10.37, which use a slightly different .po file format that is not
142# compatible with Solaris (and old gettext implementations) unless these are
143# set. gettext 0.10.36 will not work!
Bram Moolenaare639eb42014-06-12 18:03:29 +0200144MSGFMTCMD = OLD_PO_FILE_INPUT=yes $(MSGFMT) -v
Bram Moolenaar071d4272004-06-13 20:20:40 +0000145XGETTEXT = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes xgettext
146MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes msgmerge
147
148.SUFFIXES:
Bram Moolenaar58d98232005-07-23 22:25:46 +0000149.SUFFIXES: .po .mo .pot .ck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100150.PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000151
152.po.mo:
Bram Moolenaare639eb42014-06-12 18:03:29 +0200153 $(MSGFMTCMD) -o $@ $<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000154
Bram Moolenaar58d98232005-07-23 22:25:46 +0000155.po.ck:
Bram Moolenaar28c37952010-01-06 20:29:28 +0100156 $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
Bram Moolenaar58d98232005-07-23 22:25:46 +0000157 touch $@
158
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100159all: $(MOFILES) $(MOCONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000160
Bram Moolenaar58d98232005-07-23 22:25:46 +0000161check: $(CHECKFILES)
162
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100163install: $(MOFILES) $(MOCONVERTED)
Bram Moolenaar58d98232005-07-23 22:25:46 +0000164 @$(MAKE) prefixcheck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100165 for lang in $(LANGUAGES) $(CONVERTED); do \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000166 dir=$(LOCALEDIR)/$$lang/; \
167 if test ! -x "$$dir"; then \
168 mkdir $$dir; chmod 755 $$dir; \
169 fi; \
170 dir=$(LOCALEDIR)/$$lang/LC_MESSAGES; \
171 if test ! -x "$$dir"; then \
172 mkdir $$dir; chmod 755 $$dir; \
173 fi; \
174 if test -r $$lang.mo; then \
175 $(INSTALL_DATA) $$lang.mo $$dir/$(PACKAGE).mo; \
176 chmod $(FILEMOD) $$dir/$(PACKAGE).mo; \
177 fi; \
178 done
179
180uninstall:
Bram Moolenaar58d98232005-07-23 22:25:46 +0000181 @$(MAKE) prefixcheck
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100182 for cat in $(MOFILES) $(MOCONVERTED); do \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000183 cat=`basename $$cat`; \
184 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
185 rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
186 done
187
Bram Moolenaarc4fba6f2013-01-17 13:37:32 +0100188converted: $(MOCONVERTED)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000189
Bram Moolenaar02938a92013-05-04 03:37:10 +0200190# nl.po was added later, if it does not exist use a file with just a # in it
191# (an empty file doesn't work with old msgfmt).
Bram Moolenaar8d616172013-01-30 12:50:56 +0100192nl.po:
Bram Moolenaar02938a92013-05-04 03:37:10 +0200193 @( echo \# > nl.po )
Bram Moolenaar8d616172013-01-30 12:50:56 +0100194
Bram Moolenaar28c37952010-01-06 20:29:28 +0100195# Norwegian/Bokmal: "nb" is an alias for "no".
196# Copying the file is not efficient, but I don't know of another way to make
197# this work.
198nb.po: no.po
199 cp no.po nb.po
200
Bram Moolenaar071d4272004-06-13 20:20:40 +0000201# Convert ja.po to create ja.sjis.po. Requires doubling backslashes in the
202# second byte. Don't depend on sjiscorr, it should only be compiled when
203# ja.sjis.po is outdated.
204ja.sjis.po: ja.po
205 @$(MAKE) sjiscorr
206 rm -f ja.sjis.po
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200207 iconv -f utf-8 -t cp932 ja.po | ./sjiscorr > ja.sjis.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000208
209sjiscorr: sjiscorr.c
210 $(CC) -o sjiscorr sjiscorr.c
211
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200212ja.euc-jp.po: ja.po
213 iconv -f utf-8 -t euc-jp ja.po | \
214 sed -e 's/charset=utf-8/charset=euc-jp/' -e 's/# Original translations/# Generated from ja.po, DO NOT EDIT/' > ja.euc-jp.po
215
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216# Convert cs.po to create cs.cp1250.po.
217cs.cp1250.po: cs.po
218 rm -f cs.cp1250.po
219 iconv -f iso-8859-2 -t cp1250 cs.po | \
220 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from cs.po, DO NOT EDIT/' > cs.cp1250.po
221
222# Convert pl.po to create pl.cp1250.po.
223pl.cp1250.po: pl.po
224 rm -f pl.cp1250.po
225 iconv -f iso-8859-2 -t cp1250 pl.po | \
226 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.cp1250.po
227
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000228# Convert pl.po to create pl.UTF-8.po.
229pl.UTF-8.po: pl.po
230 rm -f pl.UTF-8.po
231 iconv -f iso-8859-2 -t utf-8 pl.po | \
232 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
233
Bram Moolenaar071d4272004-06-13 20:20:40 +0000234# Convert sk.po to create sk.cp1250.po.
235sk.cp1250.po: sk.po
236 rm -f sk.cp1250.po
237 iconv -f iso-8859-2 -t cp1250 sk.po | \
238 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from sk.po, DO NOT EDIT/' > sk.cp1250.po
239
Bram Moolenaar16038d52017-01-27 20:37:49 +0100240# Convert zh_CN.UTF-8.po to create zh_CN.cp936.po.
241# Set 'charset' to gbk to avoid that msfmt generates a warning.
242# This used to convert from zh_CN.po, but that results in a conversion error.
243zh_CN.cp936.po: zh_CN.UTF-8.po
Bram Moolenaar071d4272004-06-13 20:20:40 +0000244 rm -f zh_CN.cp936.po
Bram Moolenaar16038d52017-01-27 20:37:49 +0100245 iconv -f UTF-8 -t cp936 zh_CN.UTF-8.po | \
Bram Moolenaar74675a62017-07-15 13:53:23 +0200246 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 +0000247
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100248# Convert ko.UTF-8.po to create ko.po.
249ko.po: ko.UTF-8.po
250 rm -f ko.po
251 iconv -f UTF-8 -t euc-kr ko.UTF-8.po | \
252 sed -e 's/charset=UTF-8/charset=euc-kr/' \
253 -e 's/# Korean translation for Vim/# Generated from ko.UTF-8.po, DO NOT EDIT/' \
254 > ko.po
255
Bram Moolenaar071d4272004-06-13 20:20:40 +0000256# Convert ru.po to create ru.cp1251.po.
257ru.cp1251.po: ru.po
258 rm -f ru.cp1251.po
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000259 iconv -f utf-8 -t cp1251 ru.po | \
260 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 +0000261
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +0000262# Convert uk.po to create uk.cp1251.po.
263uk.cp1251.po: uk.po
264 rm -f uk.cp1251.po
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000265 iconv -f utf-8 -t cp1251 uk.po | \
266 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 +0000267
Bram Moolenaar58d98232005-07-23 22:25:46 +0000268prefixcheck:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000269 @if test "x" = "x$(prefix)"; then \
270 echo "******************************************"; \
271 echo " please use make from the src directory "; \
272 echo "******************************************"; \
273 exit 1; \
274 fi
275
Bram Moolenaar316059c2006-01-14 21:18:42 +0000276clean: checkclean
277 rm -f core core.* *.old.po *.mo *.pot sjiscorr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000278
279distclean: clean
280
Bram Moolenaar316059c2006-01-14 21:18:42 +0000281checkclean:
282 rm -f *.ck
283
Bram Moolenaarc36651b2018-04-29 12:22:56 +0200284$(PACKAGE).pot: ../*.c ../if_perl.xs ../GvimExt/gvimext.cpp ../globals.h ../if_py_both.h ../vim.h
Bram Moolenaar071d4272004-06-13 20:20:40 +0000285 cd ..; $(XGETTEXT) --default-domain=$(PACKAGE) \
Bram Moolenaar228de1d2018-03-14 20:11:12 +0100286 --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 \
Bram Moolenaarc36651b2018-04-29 12:22:56 +0200287 *.c if_perl.xs GvimExt/gvimext.cpp globals.h if_py_both.h vim.h
Bram Moolenaar071d4272004-06-13 20:20:40 +0000288 mv -f ../$(PACKAGE).po $(PACKAGE).pot
289
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000290update-po: $(LANGUAGES)
291
Bram Moolenaar071d4272004-06-13 20:20:40 +0000292# Don't add a dependency here, we only want to update the .po files manually
293$(LANGUAGES):
294 @$(MAKE) $(PACKAGE).pot
295 if test ! -f $@.po.orig; then cp $@.po $@.po.orig; fi
296 mv $@.po $@.po.old
297 if $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po; then \
298 rm -f $@.po.old; \
299 else \
300 echo "msgmerge for $@.po failed!"; mv $@.po.old $@.po; \
301 fi