Add the possibility to pass --flag arguments to xgettext calls
The --flag argument can be used to tell xgettext the arguments of which functions should be flagged with c-format in the PO files, instead of guessing based on the presence of format specifiers, which fails if no format specifiers are present but the translation accidentally introduces one. Appropriate flag settings have been added for each message catalog. based on a patch by Christoph Berg for bug #6066
This commit is contained in:
parent
7a5a843a2a
commit
cb5a7bc2dc
@ -5,6 +5,11 @@ GETTEXT_FILES = + gettext-files
|
|||||||
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) \
|
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) \
|
||||||
GUC_check_errmsg GUC_check_errdetail GUC_check_errhint \
|
GUC_check_errmsg GUC_check_errdetail GUC_check_errhint \
|
||||||
write_stderr yyerror parser_yyerror
|
write_stderr yyerror parser_yyerror
|
||||||
|
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS) \
|
||||||
|
GUC_check_errmsg:1:c-format \
|
||||||
|
GUC_check_errdetail:1:c-format \
|
||||||
|
GUC_check_errhint:1:c-format \
|
||||||
|
write_stderr:1:c-format
|
||||||
|
|
||||||
gettext-files: distprep
|
gettext-files: distprep
|
||||||
find $(srcdir)/ $(srcdir)/../port/ -name '*.c' -print >$@
|
find $(srcdir)/ $(srcdir)/../port/ -name '*.c' -print >$@
|
||||||
|
@ -7,3 +7,8 @@ GETTEXT_FILES = pg_dump.c common.c pg_backup_archiver.c pg_backup_custom.c \
|
|||||||
../../port/exec.c
|
../../port/exec.c
|
||||||
GETTEXT_TRIGGERS = write_msg:2 die_horribly:3 exit_horribly:3 simple_prompt \
|
GETTEXT_TRIGGERS = write_msg:2 die_horribly:3 exit_horribly:3 simple_prompt \
|
||||||
ExecuteSqlCommand:3 ahlog:3
|
ExecuteSqlCommand:3 ahlog:3
|
||||||
|
GETTEXT_FLAGS = \
|
||||||
|
write_msg:2:c-format \
|
||||||
|
die_horribly:3:c-format \
|
||||||
|
exit_horribly:3:c-format \
|
||||||
|
ahlog:3:c-format
|
||||||
|
@ -5,3 +5,4 @@ GETTEXT_FILES = command.c common.c copy.c help.c input.c large_obj.c \
|
|||||||
mainloop.c print.c startup.c describe.c sql_help.h sql_help.c \
|
mainloop.c print.c startup.c describe.c sql_help.h sql_help.c \
|
||||||
../../port/exec.c
|
../../port/exec.c
|
||||||
GETTEXT_TRIGGERS = N_ psql_error simple_prompt
|
GETTEXT_TRIGGERS = N_ psql_error simple_prompt
|
||||||
|
GETTEXT_FLAGS = psql_error:1:c-format
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = ecpglib
|
|||||||
AVAIL_LANGUAGES = de es fr it ja pt_BR tr zh_CN
|
AVAIL_LANGUAGES = de es fr it ja pt_BR tr zh_CN
|
||||||
GETTEXT_FILES = connect.c error.c execute.c misc.c
|
GETTEXT_FILES = connect.c error.c execute.c misc.c
|
||||||
GETTEXT_TRIGGERS = ecpg_gettext
|
GETTEXT_TRIGGERS = ecpg_gettext
|
||||||
|
GETTEXT_FLAGS = ecpg_gettext:1:pass-c-format
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = ecpg
|
|||||||
AVAIL_LANGUAGES = de es fr it ja ko pt_BR tr zh_CN zh_TW
|
AVAIL_LANGUAGES = de es fr it ja ko pt_BR tr zh_CN zh_TW
|
||||||
GETTEXT_FILES = descriptor.c ecpg.c pgc.c preproc.c type.c variable.c
|
GETTEXT_FILES = descriptor.c ecpg.c pgc.c preproc.c type.c variable.c
|
||||||
GETTEXT_TRIGGERS = mmerror:3
|
GETTEXT_TRIGGERS = mmerror:3
|
||||||
|
GETTEXT_FLAGS = mmerror:3:c-format
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = libpq
|
|||||||
AVAIL_LANGUAGES = cs de es fr it ja ko pt_BR ru sv ta tr zh_CN zh_TW
|
AVAIL_LANGUAGES = cs de es fr it ja ko pt_BR ru sv ta tr zh_CN zh_TW
|
||||||
GETTEXT_FILES = fe-auth.c fe-connect.c fe-exec.c fe-lobj.c fe-misc.c fe-protocol2.c fe-protocol3.c fe-secure.c
|
GETTEXT_FILES = fe-auth.c fe-connect.c fe-exec.c fe-lobj.c fe-misc.c fe-protocol2.c fe-protocol3.c fe-secure.c
|
||||||
GETTEXT_TRIGGERS = libpq_gettext pqInternalNotice:2
|
GETTEXT_TRIGGERS = libpq_gettext pqInternalNotice:2
|
||||||
|
GETTEXT_FLAGS = libpq_gettext:1:pass-c-format pqInternalNotice:2:c-format
|
||||||
|
@ -12,6 +12,9 @@
|
|||||||
# GETTEXT_FILES -- list of source files that contain message strings
|
# GETTEXT_FILES -- list of source files that contain message strings
|
||||||
# GETTEXT_TRIGGERS -- (optional) list of functions that contain
|
# GETTEXT_TRIGGERS -- (optional) list of functions that contain
|
||||||
# translatable strings
|
# translatable strings
|
||||||
|
# GETTEXT_FLAGS -- (optional) list of gettext --flag arguments to mark
|
||||||
|
# function arguments that contain C format strings
|
||||||
|
# (functions must be listed in TRIGGERS and FLAGS)
|
||||||
#
|
#
|
||||||
# That's all, the rest is done here, if --enable-nls was specified.
|
# That's all, the rest is done here, if --enable-nls was specified.
|
||||||
#
|
#
|
||||||
@ -41,6 +44,7 @@ endif
|
|||||||
|
|
||||||
# _ is defined in c.h, so it's global
|
# _ is defined in c.h, so it's global
|
||||||
GETTEXT_TRIGGERS += _
|
GETTEXT_TRIGGERS += _
|
||||||
|
GETTEXT_FLAGS += _:1:pass-c-format
|
||||||
|
|
||||||
|
|
||||||
# common settings that apply to backend and all backend modules
|
# common settings that apply to backend and all backend modules
|
||||||
@ -49,6 +53,11 @@ BACKEND_COMMON_GETTEXT_TRIGGERS = \
|
|||||||
errdetail errdetail_log errdetail_plural:1,2 \
|
errdetail errdetail_log errdetail_plural:1,2 \
|
||||||
errhint \
|
errhint \
|
||||||
errcontext
|
errcontext
|
||||||
|
BACKEND_COMMON_GETTEXT_FLAGS = \
|
||||||
|
errmsg:1:c-format errmsg_plural:1:c-format errmsg_plural:2:c-format \
|
||||||
|
errdetail:1:c-format errdetail_log:1:c-format errdetail_plural:1:c-format errdetail_plural:2:c-format \
|
||||||
|
errhint:1:c-format \
|
||||||
|
errcontext:1:c-format
|
||||||
|
|
||||||
|
|
||||||
all-po: $(MO_FILES)
|
all-po: $(MO_FILES)
|
||||||
@ -59,7 +68,7 @@ all-po: $(MO_FILES)
|
|||||||
ifeq ($(word 1,$(GETTEXT_FILES)),+)
|
ifeq ($(word 1,$(GETTEXT_FILES)),+)
|
||||||
po/$(CATALOG_NAME).pot: $(word 2, $(GETTEXT_FILES)) $(MAKEFILE_LIST)
|
po/$(CATALOG_NAME).pot: $(word 2, $(GETTEXT_FILES)) $(MAKEFILE_LIST)
|
||||||
ifdef XGETTEXT
|
ifdef XGETTEXT
|
||||||
$(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) -f $<
|
$(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(addprefix --flag=, $(GETTEXT_FLAGS)) -f $<
|
||||||
else
|
else
|
||||||
@echo "You don't have 'xgettext'."; exit 1
|
@echo "You don't have 'xgettext'."; exit 1
|
||||||
endif
|
endif
|
||||||
@ -68,7 +77,7 @@ po/$(CATALOG_NAME).pot: $(GETTEXT_FILES) $(MAKEFILE_LIST)
|
|||||||
# Change to srcdir explicitly, don't rely on $^. That way we get
|
# Change to srcdir explicitly, don't rely on $^. That way we get
|
||||||
# consistent #: file references in the po files.
|
# consistent #: file references in the po files.
|
||||||
ifdef XGETTEXT
|
ifdef XGETTEXT
|
||||||
$(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(GETTEXT_FILES)
|
$(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(addprefix --flag=, $(GETTEXT_FLAGS)) $(GETTEXT_FILES)
|
||||||
else
|
else
|
||||||
@echo "You don't have 'xgettext'."; exit 1
|
@echo "You don't have 'xgettext'."; exit 1
|
||||||
endif
|
endif
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = plperl
|
|||||||
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
||||||
GETTEXT_FILES = plperl.c SPI.c
|
GETTEXT_FILES = plperl.c SPI.c
|
||||||
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
|
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
|
||||||
|
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = plpgsql
|
|||||||
AVAIL_LANGUAGES = de es fr it ja ko pt_BR ro zh_CN zh_TW
|
AVAIL_LANGUAGES = de es fr it ja ko pt_BR ro zh_CN zh_TW
|
||||||
GETTEXT_FILES = pl_comp.c pl_exec.c pl_gram.c pl_funcs.c pl_handler.c pl_scanner.c
|
GETTEXT_FILES = pl_comp.c pl_exec.c pl_gram.c pl_funcs.c pl_handler.c pl_scanner.c
|
||||||
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) yyerror plpgsql_yyerror
|
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) yyerror plpgsql_yyerror
|
||||||
|
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
|
||||||
|
@ -3,3 +3,8 @@ CATALOG_NAME = plpython
|
|||||||
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
||||||
GETTEXT_FILES = plpython.c
|
GETTEXT_FILES = plpython.c
|
||||||
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) PLy_elog:2 PLy_exception_set:2 PLy_exception_set_plural:2,3
|
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) PLy_elog:2 PLy_exception_set:2 PLy_exception_set_plural:2,3
|
||||||
|
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS) \
|
||||||
|
PLy_elog:2:c-format \
|
||||||
|
PLy_exception_set:2:c-format \
|
||||||
|
PLy_exception_set_plural:2:c-format \
|
||||||
|
PLy_exception_set_plural:3:c-format
|
||||||
|
@ -3,3 +3,4 @@ CATALOG_NAME = pltcl
|
|||||||
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
|
||||||
GETTEXT_FILES = pltcl.c
|
GETTEXT_FILES = pltcl.c
|
||||||
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
|
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
|
||||||
|
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user