diff --git a/src/bin/initdb/nls.mk b/src/bin/initdb/nls.mk
index fe7bdfc04a..df3287e95b 100644
--- a/src/bin/initdb/nls.mk
+++ b/src/bin/initdb/nls.mk
@@ -1,6 +1,6 @@
 # src/bin/initdb/nls.mk
 CATALOG_NAME     = initdb
 AVAIL_LANGUAGES  = cs de el es fr he it ja ko pl pt_BR ru sv tr uk vi zh_CN
-GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) findtimezone.c initdb.c ../../common/exec.c ../../common/fe_memutils.c ../../common/file_utils.c ../../common/pgfnames.c ../../common/restricted_token.c ../../common/rmtree.c ../../common/username.c ../../common/wait_error.c ../../port/dirmod.c
+GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) $(wildcard *.c) ../../common/exec.c ../../common/fe_memutils.c ../../common/file_utils.c ../../common/pgfnames.c ../../common/restricted_token.c ../../common/rmtree.c ../../common/username.c ../../common/wait_error.c ../../port/dirmod.c
 GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) simple_prompt
 GETTEXT_FLAGS    = $(FRONTEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/bin/pg_basebackup/nls.mk b/src/bin/pg_basebackup/nls.mk
index ec7393d321..1750e7ba94 100644
--- a/src/bin/pg_basebackup/nls.mk
+++ b/src/bin/pg_basebackup/nls.mk
@@ -2,18 +2,7 @@
 CATALOG_NAME     = pg_basebackup
 AVAIL_LANGUAGES  = cs de es fr he it ja ko pl pt_BR ru sv tr uk vi zh_CN
 GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) \
-                   bbstreamer_file.c \
-                   bbstreamer_gzip.c \
-                   bbstreamer_inject.c \
-                   bbstreamer_lz4.c \
-                   bbstreamer_tar.c \
-                   bbstreamer_zstd.c \
-                   pg_basebackup.c \
-                   pg_receivewal.c \
-                   pg_recvlogical.c \
-                   receivelog.c \
-                   streamutil.c \
-                   walmethods.c \
+                   $(wildcard *.c) \
                    ../../common/compression.c \
                    ../../common/fe_memutils.c \
                    ../../common/file_utils.c \
diff --git a/src/bin/pg_dump/nls.mk b/src/bin/pg_dump/nls.mk
index dc7360db48..059c862ffb 100644
--- a/src/bin/pg_dump/nls.mk
+++ b/src/bin/pg_dump/nls.mk
@@ -2,12 +2,7 @@
 CATALOG_NAME     = pg_dump
 AVAIL_LANGUAGES  = cs de el es fr he it ja ko pl pt_BR ru sv tr uk zh_CN
 GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) \
-                   pg_backup_archiver.c pg_backup_db.c pg_backup_custom.c \
-                   pg_backup_null.c pg_backup_tar.c \
-                   pg_backup_directory.c dumputils.c compress_io.c \
-                   pg_dump.c common.c pg_dump_sort.c \
-                   pg_restore.c pg_dumpall.c \
-                   parallel.c parallel.h pg_backup_utils.c pg_backup_utils.h \
+                   $(wildcard *.c) \
                    ../../common/exec.c ../../common/fe_memutils.c \
                    ../../common/wait_error.c \
                    ../../fe_utils/option_utils.c
diff --git a/src/bin/pg_rewind/nls.mk b/src/bin/pg_rewind/nls.mk
index e9d91a39cb..a123b101bf 100644
--- a/src/bin/pg_rewind/nls.mk
+++ b/src/bin/pg_rewind/nls.mk
@@ -1,7 +1,7 @@
 # src/bin/pg_rewind/nls.mk
 CATALOG_NAME     = pg_rewind
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ru sv tr uk zh_CN
-GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) datapagemap.c file_ops.c filemap.c libpq_source.c local_source.c parsexlog.c pg_rewind.c timeline.c xlogreader.c ../../common/fe_memutils.c ../../common/restricted_token.c ../../fe_utils/archive.c ../../fe_utils/recovery_gen.c
+GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) $(wildcard *.c) ../../common/fe_memutils.c ../../common/restricted_token.c ../../fe_utils/archive.c ../../fe_utils/recovery_gen.c
 GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) report_invalid_record:2
 GETTEXT_FLAGS    = $(FRONTEND_COMMON_GETTEXT_FLAGS) \
     report_invalid_record:2:c-format
diff --git a/src/bin/pg_upgrade/nls.mk b/src/bin/pg_upgrade/nls.mk
index bfaacfbb7c..a1aed49ab6 100644
--- a/src/bin/pg_upgrade/nls.mk
+++ b/src/bin/pg_upgrade/nls.mk
@@ -1,9 +1,7 @@
 # src/bin/pg_upgrade/nls.mk
 CATALOG_NAME     = pg_upgrade
 AVAIL_LANGUAGES  = cs de es fr ja ko ru sv tr uk zh_CN
-GETTEXT_FILES    = check.c controldata.c dump.c exec.c file.c function.c \
-                   info.c option.c parallel.c pg_upgrade.c relfilenode.c \
-                   server.c tablespace.c util.c version.c
+GETTEXT_FILES    = $(wildcard *.c)
 GETTEXT_TRIGGERS = pg_fatal pg_log:2 prep_status prep_status_progress report_status:2
 GETTEXT_FLAGS    = \
     pg_fatal:1:c-format \
diff --git a/src/bin/pg_verifybackup/nls.mk b/src/bin/pg_verifybackup/nls.mk
index 81b96356da..3d4bf2deed 100644
--- a/src/bin/pg_verifybackup/nls.mk
+++ b/src/bin/pg_verifybackup/nls.mk
@@ -2,8 +2,7 @@
 CATALOG_NAME     = pg_verifybackup
 AVAIL_LANGUAGES  = de el es fr ja ko ru sv uk zh_CN
 GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) \
-                   parse_manifest.c \
-                   pg_verifybackup.c \
+                   $(wildcard *.c) \
                    ../../common/fe_memutils.c \
                    ../../common/jsonapi.c
 GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) \
diff --git a/src/bin/pg_waldump/nls.mk b/src/bin/pg_waldump/nls.mk
index 159638fc00..18fb46ea7d 100644
--- a/src/bin/pg_waldump/nls.mk
+++ b/src/bin/pg_waldump/nls.mk
@@ -1,6 +1,6 @@
 # src/bin/pg_waldump/nls.mk
 CATALOG_NAME     = pg_waldump
 AVAIL_LANGUAGES  = cs de el es fr ja ko ru sv tr uk vi zh_CN
-GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) pg_waldump.c
+GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) $(wildcard *.c)
 GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS)
 GETTEXT_FLAGS    = $(FRONTEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/bin/psql/nls.mk b/src/bin/psql/nls.mk
index 52c96e3677..eed6aaa2ea 100644
--- a/src/bin/psql/nls.mk
+++ b/src/bin/psql/nls.mk
@@ -2,10 +2,7 @@
 CATALOG_NAME     = psql
 AVAIL_LANGUAGES  = cs de el es fr he it ja ko pl pt_BR ru sv tr uk zh_CN zh_TW
 GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) \
-                   command.c common.c copy.c crosstabview.c help.c input.c large_obj.c \
-                   mainloop.c psqlscanslash.c startup.c \
-                   describe.c sql_help.h sql_help.c \
-                   tab-complete.c variables.c \
+                   $(wildcard *.c) \
                    ../../fe_utils/cancel.c ../../fe_utils/print.c ../../fe_utils/psqlscan.c \
                    ../../common/exec.c ../../common/fe_memutils.c ../../common/username.c \
                    ../../common/wait_error.c ../../port/thread.c
diff --git a/src/bin/scripts/nls.mk b/src/bin/scripts/nls.mk
index f61ff79396..04ac31c3e2 100644
--- a/src/bin/scripts/nls.mk
+++ b/src/bin/scripts/nls.mk
@@ -2,11 +2,7 @@
 CATALOG_NAME     = pgscripts
 AVAIL_LANGUAGES  = cs de el es fr he it ja ko pl pt_BR ru sv tr uk zh_CN
 GETTEXT_FILES    = $(FRONTEND_COMMON_GETTEXT_FILES) \
-                   createdb.c createuser.c \
-                   dropdb.c dropuser.c \
-                   clusterdb.c vacuumdb.c reindexdb.c \
-                   pg_isready.c \
-                   common.c \
+                   $(wildcard *.c) \
                    ../../fe_utils/parallel_slot.c \
                    ../../fe_utils/cancel.c ../../fe_utils/print.c \
                    ../../fe_utils/connect_utils.c \
diff --git a/src/interfaces/ecpg/ecpglib/nls.mk b/src/interfaces/ecpg/ecpglib/nls.mk
index 2f6b0895f5..622b15c332 100644
--- a/src/interfaces/ecpg/ecpglib/nls.mk
+++ b/src/interfaces/ecpg/ecpglib/nls.mk
@@ -1,6 +1,6 @@
 # src/interfaces/ecpg/ecpglib/nls.mk
 CATALOG_NAME     = ecpglib
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ru sv tr uk vi zh_CN
-GETTEXT_FILES    = connect.c descriptor.c error.c execute.c misc.c
+GETTEXT_FILES    = $(wildcard *.c)
 GETTEXT_TRIGGERS = ecpg_gettext
 GETTEXT_FLAGS    = ecpg_gettext:1:pass-c-format
diff --git a/src/interfaces/ecpg/preproc/nls.mk b/src/interfaces/ecpg/preproc/nls.mk
index fed0f7c9e5..29bbb6dd52 100644
--- a/src/interfaces/ecpg/preproc/nls.mk
+++ b/src/interfaces/ecpg/preproc/nls.mk
@@ -1,6 +1,6 @@
 # src/interfaces/ecpg/preproc/nls.mk
 CATALOG_NAME     = ecpg
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ru sv tr uk vi zh_CN zh_TW
-GETTEXT_FILES    = descriptor.c ecpg.c pgc.c preproc.c type.c variable.c
+GETTEXT_FILES    = $(wildcard *.c)
 GETTEXT_TRIGGERS = mmerror:3 mmfatal:2
 GETTEXT_FLAGS    = mmerror:3:c-format mmfatal:2:c-format
diff --git a/src/interfaces/libpq/nls.mk b/src/interfaces/libpq/nls.mk
index 1f62ba1b57..800d482a0a 100644
--- a/src/interfaces/libpq/nls.mk
+++ b/src/interfaces/libpq/nls.mk
@@ -1,6 +1,6 @@
 # src/interfaces/libpq/nls.mk
 CATALOG_NAME     = libpq
 AVAIL_LANGUAGES  = cs de el es fr he it ja ko pl pt_BR ru sv tr uk zh_CN zh_TW
-GETTEXT_FILES    = fe-auth.c fe-auth-scram.c fe-connect.c fe-exec.c fe-gssapi-common.c fe-lobj.c fe-misc.c fe-protocol3.c fe-secure.c fe-secure-common.c fe-secure-gssapi.c fe-secure-openssl.c win32.c ../../port/thread.c
+GETTEXT_FILES    = $(wildcard *.c) ../../port/thread.c
 GETTEXT_TRIGGERS = libpq_gettext pqInternalNotice:2
 GETTEXT_FLAGS    = libpq_gettext:1:pass-c-format pqInternalNotice:2:c-format
diff --git a/src/pl/plperl/nls.mk b/src/pl/plperl/nls.mk
index ccdf1c3316..f4e32649bf 100644
--- a/src/pl/plperl/nls.mk
+++ b/src/pl/plperl/nls.mk
@@ -1,6 +1,6 @@
 # src/pl/plperl/nls.mk
 CATALOG_NAME     = plperl
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ro ru sv tr uk vi zh_CN zh_TW
-GETTEXT_FILES    = plperl.c SPI.c
+GETTEXT_FILES    = $(wildcard *.c)
 GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
 GETTEXT_FLAGS    = $(BACKEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/pl/plpgsql/src/nls.mk b/src/pl/plpgsql/src/nls.mk
index 11878d2d5b..a5c331d3f1 100644
--- a/src/pl/plpgsql/src/nls.mk
+++ b/src/pl/plpgsql/src/nls.mk
@@ -1,6 +1,6 @@
 # src/pl/plpgsql/src/nls.mk
 CATALOG_NAME     = plpgsql
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ro ru sv tr uk vi 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    = $(wildcard *.c)
 GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) yyerror plpgsql_yyerror
 GETTEXT_FLAGS    = $(BACKEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/pl/plpython/nls.mk b/src/pl/plpython/nls.mk
index c46e26200b..e4c40ff409 100644
--- a/src/pl/plpython/nls.mk
+++ b/src/pl/plpython/nls.mk
@@ -1,8 +1,7 @@
 # src/pl/plpython/nls.mk
 CATALOG_NAME     = plpython
 AVAIL_LANGUAGES  = cs de el es fr it ja ko pl pt_BR ru sv tr uk vi zh_CN
-GETTEXT_FILES    = plpy_cursorobject.c plpy_elog.c plpy_exec.c plpy_main.c plpy_planobject.c plpy_plpymodule.c \
-                   plpy_procedure.c plpy_resultobject.c plpy_spi.c plpy_subxactobject.c plpy_typeio.c plpy_util.c
+GETTEXT_FILES    = $(wildcard *.c)
 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 \
