1# Makefile for the Vim message translations. 2 3# TODO make this configurable 4# Note: ja.sjis, *.cp1250 and zh_CN.cp936 are only for MS-Windows, they are 5# not installed on Unix 6 7LANGUAGES = \ 8 af \ 9 ca \ 10 cs \ 11 de \ 12 en_GB \ 13 eo \ 14 es \ 15 fi \ 16 fr \ 17 ga \ 18 it \ 19 ja \ 20 ko \ 21 ko.UTF-8 \ 22 nb \ 23 no \ 24 pl \ 25 pt_BR \ 26 ru \ 27 sk \ 28 sv \ 29 uk \ 30 vi \ 31 zh_CN \ 32 zh_CN.UTF-8 \ 33 zh_TW \ 34 zh_TW.UTF-8 35 36MOFILES = \ 37 af.mo \ 38 ca.mo \ 39 cs.mo \ 40 de.mo \ 41 en_GB.mo \ 42 eo.mo \ 43 es.mo \ 44 fi.mo \ 45 fr.mo \ 46 ga.mo \ 47 it.mo \ 48 ja.mo \ 49 ko.mo \ 50 ko.UTF-8.mo \ 51 nb.mo \ 52 no.mo \ 53 pl.mo \ 54 pt_BR.mo \ 55 ru.mo \ 56 sk.mo \ 57 sv.mo \ 58 uk.mo \ 59 vi.mo \ 60 zh_CN.UTF-8.mo \ 61 zh_CN.mo \ 62 zh_TW.UTF-8.mo \ 63 zh_TW.mo 64 65CONVERTED = \ 66 cs.cp1250.mo \ 67 ja.sjis.mo \ 68 pl.cp1250.mo \ 69 pl.UTF-8.mo \ 70 ru.cp1251.mo \ 71 sk.cp1250.mo \ 72 uk.cp1251.mo \ 73 zh_CN.cp936.mo 74 75CHECKFILES = \ 76 af.ck \ 77 ca.ck \ 78 cs.ck \ 79 de.ck \ 80 en_GB.ck \ 81 eo.ck \ 82 es.ck \ 83 fi.ck \ 84 fr.ck \ 85 ga.ck \ 86 it.ck \ 87 ja.ck \ 88 ko.ck \ 89 ko.UTF-8.ck \ 90 nb.ck \ 91 no.ck \ 92 pl.ck \ 93 pt_BR.ck \ 94 ru.ck \ 95 sk.ck \ 96 sv.ck \ 97 uk.ck \ 98 vi.ck \ 99 zh_CN.UTF-8.ck \ 100 zh_CN.ck \ 101 zh_TW.UTF-8.ck \ 102 zh_TW.ck \ 103 cs.cp1250.ck \ 104 ja.sjis.ck \ 105 pl.cp1250.ck \ 106 pl.UTF-8.ck \ 107 ru.cp1251.ck \ 108 sk.cp1250.ck \ 109 uk.cp1251.ck \ 110 zh_CN.cp936.ck 111 112PACKAGE = vim 113SHELL = /bin/sh 114VIM = ../vim 115 116# The OLD_PO_FILE_INPUT and OLD_PO_FILE_OUTPUT are for the new GNU gettext 117# tools 0.10.37, which use a slightly different .po file format that is not 118# compatible with Solaris (and old gettext implementations) unless these are 119# set. gettext 0.10.36 will not work! 120MSGFMT = OLD_PO_FILE_INPUT=yes msgfmt -v 121XGETTEXT = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes xgettext 122MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes msgmerge 123 124.SUFFIXES: 125.SUFFIXES: .po .mo .pot .ck 126.PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) 127 128.po.mo: 129 $(MSGFMT) -o $@ $< 130 131.po.ck: 132 $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $< 133 touch $@ 134 135all: $(MOFILES) 136 137check: $(CHECKFILES) 138 139install: $(MOFILES) 140 @$(MAKE) prefixcheck 141 for lang in $(LANGUAGES); do \ 142 dir=$(LOCALEDIR)/$$lang/; \ 143 if test ! -x "$$dir"; then \ 144 mkdir $$dir; chmod 755 $$dir; \ 145 fi; \ 146 dir=$(LOCALEDIR)/$$lang/LC_MESSAGES; \ 147 if test ! -x "$$dir"; then \ 148 mkdir $$dir; chmod 755 $$dir; \ 149 fi; \ 150 if test -r $$lang.mo; then \ 151 $(INSTALL_DATA) $$lang.mo $$dir/$(PACKAGE).mo; \ 152 chmod $(FILEMOD) $$dir/$(PACKAGE).mo; \ 153 fi; \ 154 done 155 156uninstall: 157 @$(MAKE) prefixcheck 158 for cat in $(MOFILES); do \ 159 cat=`basename $$cat`; \ 160 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ 161 rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ 162 done 163 164converted: $(CONVERTED) 165 166# Norwegian/Bokmal: "nb" is an alias for "no". 167# Copying the file is not efficient, but I don't know of another way to make 168# this work. 169nb.po: no.po 170 cp no.po nb.po 171 172# Convert ja.po to create ja.sjis.po. Requires doubling backslashes in the 173# second byte. Don't depend on sjiscorr, it should only be compiled when 174# ja.sjis.po is outdated. 175ja.sjis.po: ja.po 176 @$(MAKE) sjiscorr 177 rm -f ja.sjis.po 178 iconv -f euc-jp -t cp932 ja.po | ./sjiscorr > ja.sjis.po 179 180sjiscorr: sjiscorr.c 181 $(CC) -o sjiscorr sjiscorr.c 182 183# Convert cs.po to create cs.cp1250.po. 184cs.cp1250.po: cs.po 185 rm -f cs.cp1250.po 186 iconv -f iso-8859-2 -t cp1250 cs.po | \ 187 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from cs.po, DO NOT EDIT/' > cs.cp1250.po 188 189# Convert pl.po to create pl.cp1250.po. 190pl.cp1250.po: pl.po 191 rm -f pl.cp1250.po 192 iconv -f iso-8859-2 -t cp1250 pl.po | \ 193 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.cp1250.po 194 195# Convert pl.po to create pl.UTF-8.po. 196pl.UTF-8.po: pl.po 197 rm -f pl.UTF-8.po 198 iconv -f iso-8859-2 -t utf-8 pl.po | \ 199 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 200 201# Convert sk.po to create sk.cp1250.po. 202sk.cp1250.po: sk.po 203 rm -f sk.cp1250.po 204 iconv -f iso-8859-2 -t cp1250 sk.po | \ 205 sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from sk.po, DO NOT EDIT/' > sk.cp1250.po 206 207# Convert zh_CN.po to create zh_CN.cp936.po. 208# set 'charset' to gbk to avoid that msfmt generates a warning 209zh_CN.cp936.po: zh_CN.po 210 rm -f zh_CN.cp936.po 211 iconv -f gb2312 -t cp936 zh_CN.po | \ 212 sed -e 's/charset=gb2312/charset=gbk/' -e 's/# Original translations/# Generated from zh_CN.po, DO NOT EDIT/' > zh_CN.cp936.po 213 214# Convert ko.UTF-8.po to create ko.po. 215ko.po: ko.UTF-8.po 216 rm -f ko.po 217 iconv -f UTF-8 -t euc-kr ko.UTF-8.po | \ 218 sed -e 's/charset=UTF-8/charset=euc-kr/' \ 219 -e 's/# Korean translation for Vim/# Generated from ko.UTF-8.po, DO NOT EDIT/' \ 220 > ko.po 221 222# Convert ru.po to create ru.cp1251.po. 223ru.cp1251.po: ru.po 224 rm -f ru.cp1251.po 225 iconv -f utf-8 -t cp1251 ru.po | \ 226 sed -e 's/charset=utf-8/charset=cp1251/' -e 's/# Original translations/# Generated from ru.po, DO NOT EDIT/' > ru.cp1251.po 227 228# Convert uk.po to create uk.cp1251.po. 229uk.cp1251.po: uk.po 230 rm -f uk.cp1251.po 231 iconv -f utf-8 -t cp1251 uk.po | \ 232 sed -e 's/charset=utf-8/charset=cp1251/' -e 's/# Original translations/# Generated from uk.po, DO NOT EDIT/' > uk.cp1251.po 233 234prefixcheck: 235 @if test "x" = "x$(prefix)"; then \ 236 echo "******************************************"; \ 237 echo " please use make from the src directory "; \ 238 echo "******************************************"; \ 239 exit 1; \ 240 fi 241 242clean: checkclean 243 rm -f core core.* *.old.po *.mo *.pot sjiscorr 244 245distclean: clean 246 247checkclean: 248 rm -f *.ck 249 250$(PACKAGE).pot: ../*.c ../if_perl.xs ../GvimExt/gvimext.cpp ../globals.h ../if_py_both.h 251 cd ..; $(XGETTEXT) --default-domain=$(PACKAGE) \ 252 --add-comments --keyword=_ --keyword=N_ \ 253 *.c if_perl.xs GvimExt/gvimext.cpp globals.h if_py_both.h 254 mv -f ../$(PACKAGE).po $(PACKAGE).pot 255 256update-po: $(LANGUAGES) 257 258# Don't add a dependency here, we only want to update the .po files manually 259$(LANGUAGES): 260 @$(MAKE) $(PACKAGE).pot 261 if test ! -f $@.po.orig; then cp $@.po $@.po.orig; fi 262 mv $@.po $@.po.old 263 if $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po; then \ 264 rm -f $@.po.old; \ 265 else \ 266 echo "msgmerge for $@.po failed!"; mv $@.po.old $@.po; \ 267 fi 268