# HG changeset patch # User Bram Moolenaar # Date 1599220804 -7200 # Node ID aa91480771fe08a824d265450fbd4a1dcf35b4b6 # Parent ebd78535192f9b1782a80d8ec8122d76d0c4b679 patch 8.2.1585: messages in globals.h not translated Commit: https://github.com/vim/vim/commit/fa57335e532e505ce9229ddb2354a593fb057561 Author: Bram Moolenaar Date: Fri Sep 4 13:53:00 2020 +0200 patch 8.2.1585: messages in globals.h not translated Problem: Messages in globals.h not translated, xgettext on MS-Windows not fully supported. Solution: Add globals.h to list of input files. Update MS-Windows makefiles to improve message translations. (Ken Takata, closes #6858) diff --git a/src/po/Make_cyg.mak b/src/po/Make_cyg.mak --- a/src/po/Make_cyg.mak +++ b/src/po/Make_cyg.mak @@ -16,6 +16,7 @@ endif include Make_all.mak PACKAGE = vim +VIM = ../vim # Uncomment one of the lines below or modify it to put the path to your # gettext binaries @@ -44,21 +45,48 @@ MKD = mkdir -p .SUFFIXES: .SUFFIXES: .po .mo .pot -.PHONY: first_time all install clean $(LANGUAGES) +.PHONY: first_time all install install-all clean $(LANGUAGES) .po.mo: $(MSGFMT) -o $@ $< all: $(MOFILES) $(MOCONVERTED) -first_time: - $(XGETTEXT) --default-domain=$(LANGUAGE) \ - --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h +PO_INPUTLIST = \ + $(wildcard ../*.c) \ + ../if_perl.xs \ + ../GvimExt/gvimext.cpp \ + ../errors.h \ + ../globals.h \ + ../if_py_both.h \ + ../vim.h \ + gvim.desktop.in \ + vim.desktop.in + +PO_VIM_INPUTLIST = \ + ../../runtime/optwin.vim + +PO_VIM_JSLIST = \ + optwin.js -$(LANGUAGES): +first_time: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST) + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) + $(XGETTEXT) --default-domain=$(LANGUAGE) \ + --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST) + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js + +$(PACKAGE).pot: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST) + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) $(XGETTEXT) --default-domain=$(PACKAGE) \ - --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h + --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST) $(MV) $(PACKAGE).po $(PACKAGE).pot + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js + +# Don't add a dependency here, we only want to update the .po files manually +$(LANGUAGES): + @$(MAKE) -f Make_cyg.mak $(PACKAGE).pot GETTEXT_PATH=$(GETTEXT_PATH) $(CP) $@.po $@.po.orig $(MV) $@.po $@.po.old $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po @@ -75,5 +103,3 @@ install-all: install clean: $(RM) *.mo $(RM) *.pot - - diff --git a/src/po/Make_ming.mak b/src/po/Make_ming.mak --- a/src/po/Make_ming.mak +++ b/src/po/Make_ming.mak @@ -22,6 +22,11 @@ endif include Make_all.mak PACKAGE = vim +ifeq (sh.exe, $(SHELL)) +VIM = ..\vim +else +VIM = ../vim +endif # Uncomment one of the lines below or modify it to put the path to your # gettex binaries; I use the first @@ -53,21 +58,48 @@ endif .SUFFIXES: .SUFFIXES: .po .mo .pot -.PHONY: first_time all install clean $(LANGUAGES) +.PHONY: first_time all install install-all clean $(LANGUAGES) .po.mo: $(MSGFMT) -o $@ $< all: $(MOFILES) $(MOCONVERTED) -first_time: - $(XGETTEXT) --default-domain=$(LANGUAGE) \ - --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h +PO_INPUTLIST = \ + $(wildcard ../*.c) \ + ../if_perl.xs \ + ../GvimExt/gvimext.cpp \ + ../errors.h \ + ../globals.h \ + ../if_py_both.h \ + ../vim.h \ + gvim.desktop.in \ + vim.desktop.in + +PO_VIM_INPUTLIST = \ + ../../runtime/optwin.vim + +PO_VIM_JSLIST = \ + optwin.js -$(LANGUAGES): +first_time: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST) + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) + $(XGETTEXT) --default-domain=$(LANGUAGE) \ + --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST) + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js + +$(PACKAGE).pot: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST) + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) $(XGETTEXT) --default-domain=$(PACKAGE) \ - --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h + --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST) $(MV) $(PACKAGE).po $(PACKAGE).pot + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js + +# Don't add a dependency here, we only want to update the .po files manually +$(LANGUAGES): + @$(MAKE) -f Make_ming.mak $(PACKAGE).pot GETTEXT_PATH=$(GETTEXT_PATH) $(CP) $@.po $@.po.orig $(MV) $@.po $@.po.old $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po @@ -94,5 +126,3 @@ endif clean: $(RM) *.mo $(RM) *.pot - - diff --git a/src/po/Make_mvc.mak b/src/po/Make_mvc.mak --- a/src/po/Make_mvc.mak +++ b/src/po/Make_mvc.mak @@ -14,6 +14,7 @@ VIMRUNTIME = ..\..\runtime !include Make_all.mak PACKAGE = vim +VIM = ..\vim # Correct the following line for the directory where gettext et al is installed GETTEXT_PATH = H:\gettext.0.14.4\bin @@ -41,19 +42,47 @@ INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUA all: $(MOFILES) $(MOCONVERTED) -files: - $(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\GvimExt\gvimext.cpp ..\globals.h ..\if_py_both.h ..\vim.h > .\files +PO_INPUTLIST = \ + ..\*.c \ + ..\if_perl.xs \ + ..\GvimExt\gvimext.cpp \ + ..\errors.h \ + ..\globals.h \ + ..\if_py_both.h \ + ..\vim.h \ + gvim.desktop.in \ + vim.desktop.in + +PO_VIM_INPUTLIST = \ + ..\..\runtime\optwin.vim + +PO_VIM_JSLIST = \ + optwin.js + +files: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST) + $(LS) $(LSFLAGS) $(PO_INPUTLIST) > .\files + echo $(PO_VIM_JSLIST)>> .\files first_time: files + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) set OLD_PO_FILE_INPUT=yes set OLD_PO_FILE_OUTPUT=yes $(XGETTEXT) --default-domain=$(LANGUAGE) --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 --files-from=.\files + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js -$(LANGUAGES): files +$(PACKAGE).pot: files + $(VIM) -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) set OLD_PO_FILE_INPUT=yes set OLD_PO_FILE_OUTPUT=yes $(XGETTEXT) --default-domain=$(PACKAGE) --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 --files-from=.\files $(MV) $(PACKAGE).po $(PACKAGE).pot + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) + $(RM) *.js + +# Don't add a dependency here, we only want to update the .po files manually +$(LANGUAGES): + @$(MAKE) -nologo -f Make_mvc.mak $(PACKAGE).pot GETTEXT_PATH=$(GETTEXT_PATH) $(CP) $@.po $@.po.orig $(MV) $@.po $@.po.old $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po @@ -70,3 +99,4 @@ install-all: all clean: $(RM) *.mo $(RM) *.pot + $(RM) files diff --git a/src/po/Makefile b/src/po/Makefile --- a/src/po/Makefile +++ b/src/po/Makefile @@ -181,6 +181,7 @@ PO_INPUTLIST = \ ../*.c \ ../if_perl.xs \ ../GvimExt/gvimext.cpp \ + ../errors.h \ ../globals.h \ ../if_py_both.h \ ../vim.h \ @@ -202,7 +203,7 @@ PO_VIM_JSLIST = \ $(PO_INPUTLIST) $(PO_VIM_JSLIST) mv -f $(PACKAGE).po $(PACKAGE).pot # Fix Vim scripts names, so that "gf" works - $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) + $(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST) # Delete the temporary files rm *.js diff --git a/src/po/README.txt b/src/po/README.txt --- a/src/po/README.txt +++ b/src/po/README.txt @@ -92,7 +92,7 @@ language. msgstr "Berichten übersetzt bei: John Doe " (3) Remove unused messages (optional) - Remove messages that have been marked as obsolete. + Remove messages that have been marked as obsolete. Such messages start with "#~". The cleanup script will also do that (see next step). @@ -128,7 +128,7 @@ language. Vim normally picks up the .mo files from: $VIMRUNTIME/lang/{lang}/LC_MESSAGES/vim.mo To try out the messages with Vim use: - make tryoutinstall + make tryoutinstall And run Vim with $VIMRUNTIME set to ../runtime diff --git a/src/po/fixfilenames.vim b/src/po/fixfilenames.vim --- a/src/po/fixfilenames.vim +++ b/src/po/fixfilenames.vim @@ -5,7 +5,7 @@ set shortmess+=A for name in argv()[1:] let jsname = fnamemodify(name, ":t:r") .. ".js" - exe "%s+" .. jsname .. "+" .. name .. "+" + exe "%s+" .. jsname .. "+" .. substitute(name, '\\', '/', 'g') .. "+" endfor write diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1585, +/**/ 1584, /**/ 1583,