Here is a patch that adds in NLS.

There are some opportunities to improve this. For example, we could move the list of languages from the meson.build files into separate LINGUAS files, which could be shared with the makefile-based build system. I need to research this a bit more.

Also, this only covers the build and install phases of the NLS process. The xgettext and msgmerge aspects I haven't touched at all. There is more to research there as well.

The annoying thing is that the i18n module doesn't appear to have a way to communicate with feature options or dependencies, so there isn't a way to tell it to only do its things when some option is enabled, or conversely to check whether the module found the things it needs and to enable or disable an option based on that. So right now for example if you explicitly disable the 'nls' option, the binaries are built without NLS but the .mo files are still built and installed.

In any case, this works for the main use cases and gets us a step forward, so it's worth considering.
From ccfbff1beed568ef3ebe2e1af0701802d96b9017 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 27 Apr 2022 17:57:04 +0200
Subject: [PATCH 7/7] meson: NLS support

---
 meson.build                                | 23 +++++++++++++++++++---
 meson_options.txt                          |  3 +++
 src/backend/meson.build                    |  2 ++
 src/backend/po/meson.build                 |  3 +++
 src/bin/initdb/meson.build                 |  2 ++
 src/bin/initdb/po/meson.build              |  3 +++
 src/bin/pg_amcheck/meson.build             |  2 ++
 src/bin/pg_amcheck/po/meson.build          |  3 +++
 src/bin/pg_archivecleanup/meson.build      |  2 ++
 src/bin/pg_archivecleanup/po/meson.build   |  3 +++
 src/bin/pg_basebackup/meson.build          |  2 ++
 src/bin/pg_basebackup/po/meson.build       |  3 +++
 src/bin/pg_checksums/meson.build           |  2 ++
 src/bin/pg_checksums/po/meson.build        |  3 +++
 src/bin/pg_config/meson.build              |  2 ++
 src/bin/pg_config/po/meson.build           |  3 +++
 src/bin/pg_controldata/meson.build         |  2 ++
 src/bin/pg_controldata/po/meson.build      |  3 +++
 src/bin/pg_ctl/meson.build                 |  2 ++
 src/bin/pg_ctl/po/meson.build              |  3 +++
 src/bin/pg_dump/meson.build                |  2 ++
 src/bin/pg_dump/po/meson.build             |  3 +++
 src/bin/pg_resetwal/meson.build            |  2 ++
 src/bin/pg_resetwal/po/meson.build         |  3 +++
 src/bin/pg_rewind/meson.build              |  2 ++
 src/bin/pg_rewind/po/meson.build           |  3 +++
 src/bin/pg_test_fsync/meson.build          |  2 ++
 src/bin/pg_test_fsync/po/meson.build       |  3 +++
 src/bin/pg_test_timing/meson.build         |  2 ++
 src/bin/pg_test_timing/po/meson.build      |  3 +++
 src/bin/pg_upgrade/meson.build             |  2 ++
 src/bin/pg_upgrade/po/meson.build          |  3 +++
 src/bin/pg_verifybackup/meson.build        |  2 ++
 src/bin/pg_verifybackup/po/meson.build     |  3 +++
 src/bin/pg_waldump/meson.build             |  2 ++
 src/bin/pg_waldump/po/meson.build          |  3 +++
 src/bin/psql/meson.build                   |  2 ++
 src/bin/psql/po/meson.build                |  3 +++
 src/bin/scripts/meson.build                |  2 ++
 src/bin/scripts/po/meson.build             |  3 +++
 src/interfaces/ecpg/ecpglib/meson.build    |  2 ++
 src/interfaces/ecpg/ecpglib/po/meson.build |  3 +++
 src/interfaces/ecpg/preproc/meson.build    |  2 ++
 src/interfaces/ecpg/preproc/po/meson.build |  3 +++
 src/interfaces/libpq/meson.build           |  5 ++++-
 src/interfaces/libpq/po/meson.build        |  3 +++
 src/pl/plperl/meson.build                  |  2 ++
 src/pl/plperl/po/meson.build               |  3 +++
 src/pl/plpgsql/src/meson.build             |  2 ++
 src/pl/plpgsql/src/po/meson.build          |  3 +++
 src/pl/plpython/meson.build                |  2 ++
 src/pl/plpython/po/meson.build             |  3 +++
 src/pl/tcl/meson.build                     |  2 ++
 src/pl/tcl/po/meson.build                  |  3 +++
 54 files changed, 155 insertions(+), 4 deletions(-)
 create mode 100644 src/backend/po/meson.build
 create mode 100644 src/bin/initdb/po/meson.build
 create mode 100644 src/bin/pg_amcheck/po/meson.build
 create mode 100644 src/bin/pg_archivecleanup/po/meson.build
 create mode 100644 src/bin/pg_basebackup/po/meson.build
 create mode 100644 src/bin/pg_checksums/po/meson.build
 create mode 100644 src/bin/pg_config/po/meson.build
 create mode 100644 src/bin/pg_controldata/po/meson.build
 create mode 100644 src/bin/pg_ctl/po/meson.build
 create mode 100644 src/bin/pg_dump/po/meson.build
 create mode 100644 src/bin/pg_resetwal/po/meson.build
 create mode 100644 src/bin/pg_rewind/po/meson.build
 create mode 100644 src/bin/pg_test_fsync/po/meson.build
 create mode 100644 src/bin/pg_test_timing/po/meson.build
 create mode 100644 src/bin/pg_upgrade/po/meson.build
 create mode 100644 src/bin/pg_verifybackup/po/meson.build
 create mode 100644 src/bin/pg_waldump/po/meson.build
 create mode 100644 src/bin/psql/po/meson.build
 create mode 100644 src/bin/scripts/po/meson.build
 create mode 100644 src/interfaces/ecpg/ecpglib/po/meson.build
 create mode 100644 src/interfaces/ecpg/preproc/po/meson.build
 create mode 100644 src/interfaces/libpq/po/meson.build
 create mode 100644 src/pl/plperl/po/meson.build
 create mode 100644 src/pl/plpgsql/src/po/meson.build
 create mode 100644 src/pl/plpython/po/meson.build
 create mode 100644 src/pl/tcl/po/meson.build

diff --git a/meson.build b/meson.build
index bd6f1759e8..d0bed5973b 100644
--- a/meson.build
+++ b/meson.build
@@ -1863,6 +1863,23 @@ endif
 
 
 
+###############################################################
+# NLS / Gettext
+###############################################################
+
+i18n = import('i18n')
+
+cc.check_header('libintl.h', args: g_c_args, required: get_option('nls'))
+
+if get_option('nls').enabled()
+  cdata.set('ENABLE_NLS', 1)
+  libintl = dependency('intl', required: false)
+else
+  libintl = dependency('', required: false)
+endif
+
+
+
 ###############################################################
 # Build
 ###############################################################
@@ -2000,7 +2017,7 @@ frontend_shlib_code = declare_dependency(
   include_directories: [postgres_inc],
   link_with: [pgport_shlib, common_shlib],
   sources: generated_headers,
-  dependencies: os_deps,
+  dependencies: [os_deps, libintl],
 )
 
 subdir('src/interfaces/libpq')
@@ -2012,7 +2029,7 @@ frontend_code = declare_dependency(
   include_directories: [postgres_inc],
   link_with: [pgport_static, common_static, fe_utils],
   sources: generated_headers,
-  dependencies: os_deps,
+  dependencies: [os_deps, libintl],
 )
 
 backend_code = declare_dependency(
@@ -2020,7 +2037,7 @@ backend_code = declare_dependency(
   include_directories: [postgres_inc],
   link_with: [],
   sources: generated_headers + generated_backend_headers,
-  dependencies: [os_deps, ssl, lz4, zlib, icu, icu_i18n, ldap, gssapi, libxml, 
zstd, systemd],
+  dependencies: [os_deps, libintl, ssl, lz4, zlib, icu, icu_i18n, ldap, 
gssapi, libxml, zstd, systemd],
 )
 
 # Note there's intentionally no dependency on pgport/common here - we want the
diff --git a/meson_options.txt b/meson_options.txt
index 4f90028936..e3e36678d1 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -71,6 +71,9 @@ option('llvm', type : 'feature', value: 'disabled',
 option('lz4', type : 'feature', value: 'auto',
   description: 'LZ4 support')
 
+option('nls', type: 'feature', value: 'auto',
+  description: 'national language support')
+
 option('plperl', type : 'feature', value: 'auto',
   description: 'build Perl modules (PL/Perl)')
 
diff --git a/src/backend/meson.build b/src/backend/meson.build
index 6814d5094c..55ea4635be 100644
--- a/src/backend/meson.build
+++ b/src/backend/meson.build
@@ -31,6 +31,8 @@ subdir('tcop')
 subdir('tsearch')
 subdir('utils')
 
+subdir('po')
+
 
 postgres_link_args = []
 postgres_link_depends = []
diff --git a/src/backend/po/meson.build b/src/backend/po/meson.build
new file mode 100644
index 0000000000..52ec64beb8
--- /dev/null
+++ b/src/backend/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('postgres-' + pg_version_major.to_string(),
+             languages: ['de', 'es', 'fr', 'id', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/initdb/meson.build b/src/bin/initdb/meson.build
index 2395ed112a..ddfc7b7300 100644
--- a/src/bin/initdb/meson.build
+++ b/src/bin/initdb/meson.build
@@ -23,3 +23,5 @@ tap_tests += {
     't/001_initdb.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/initdb/po/meson.build b/src/bin/initdb/po/meson.build
new file mode 100644
index 0000000000..5ac33eb8d4
--- /dev/null
+++ b/src/bin/initdb/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('initdb-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'pl', 'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_amcheck/meson.build b/src/bin/pg_amcheck/meson.build
index 69eaef8f14..23db08fe51 100644
--- a/src/bin/pg_amcheck/meson.build
+++ b/src/bin/pg_amcheck/meson.build
@@ -20,3 +20,5 @@ tap_tests += {
     't/005_opclass_damage.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_amcheck/po/meson.build 
b/src/bin/pg_amcheck/po/meson.build
new file mode 100644
index 0000000000..402e33b564
--- /dev/null
+++ b/src/bin/pg_amcheck/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_amcheck-' + pg_version_major.to_string(),
+             languages: ['de', 'el', 'es', 'fr', 'zh_CN'],
+            )
diff --git a/src/bin/pg_archivecleanup/meson.build 
b/src/bin/pg_archivecleanup/meson.build
index 27742fafab..2ed29a1548 100644
--- a/src/bin/pg_archivecleanup/meson.build
+++ b/src/bin/pg_archivecleanup/meson.build
@@ -12,3 +12,5 @@ tap_tests += {
     't/010_pg_archivecleanup.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_archivecleanup/po/meson.build 
b/src/bin/pg_archivecleanup/po/meson.build
new file mode 100644
index 0000000000..db0f0fbddc
--- /dev/null
+++ b/src/bin/pg_archivecleanup/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_archivecleanup-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'ja', 'ko', 'pl', 'ru', 
'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_basebackup/meson.build 
b/src/bin/pg_basebackup/meson.build
index b5617b818f..b2a82d015e 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -52,3 +52,5 @@ tap_tests += {
     't/030_pg_recvlogical.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_basebackup/po/meson.build 
b/src/bin/pg_basebackup/po/meson.build
new file mode 100644
index 0000000000..78637d9c59
--- /dev/null
+++ b/src/bin/pg_basebackup/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_basebackup-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'he', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_checksums/meson.build b/src/bin/pg_checksums/meson.build
index bbf9582b90..5c8135e2ef 100644
--- a/src/bin/pg_checksums/meson.build
+++ b/src/bin/pg_checksums/meson.build
@@ -14,3 +14,5 @@ tap_tests += {
     't/002_actions.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_checksums/po/meson.build 
b/src/bin/pg_checksums/po/meson.build
new file mode 100644
index 0000000000..fa8f3c869c
--- /dev/null
+++ b/src/bin/pg_checksums/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_checksums-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'ja', 'ko', 'ru', 'sv', 
'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_config/meson.build b/src/bin/pg_config/meson.build
index df0eb13f63..156b822305 100644
--- a/src/bin/pg_config/meson.build
+++ b/src/bin/pg_config/meson.build
@@ -12,3 +12,5 @@ tap_tests += {
     't/001_pg_config.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_config/po/meson.build b/src/bin/pg_config/po/meson.build
new file mode 100644
index 0000000000..ca8b767538
--- /dev/null
+++ b/src/bin/pg_config/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_config-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'nb', 'pl', 'pt_BR', 'ro', 'ru', 'sv', 'ta', 'tr', 'uk',  'vi', 'zh_CN', 
'zh_TW'],
+            )
diff --git a/src/bin/pg_controldata/meson.build 
b/src/bin/pg_controldata/meson.build
index fa6057afa5..8361ecea62 100644
--- a/src/bin/pg_controldata/meson.build
+++ b/src/bin/pg_controldata/meson.build
@@ -12,3 +12,5 @@ tap_tests += {
     't/001_pg_controldata.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_controldata/po/meson.build 
b/src/bin/pg_controldata/po/meson.build
new file mode 100644
index 0000000000..40f7b47246
--- /dev/null
+++ b/src/bin/pg_controldata/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_controldata-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_ctl/meson.build b/src/bin/pg_ctl/meson.build
index ac0d4f1819..60b90b7d0f 100644
--- a/src/bin/pg_ctl/meson.build
+++ b/src/bin/pg_ctl/meson.build
@@ -15,3 +15,5 @@ tap_tests += {
     't/004_logrotate.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_ctl/po/meson.build b/src/bin/pg_ctl/po/meson.build
new file mode 100644
index 0000000000..3c21a9b2c5
--- /dev/null
+++ b/src/bin/pg_ctl/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_ctl-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'pl', 'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index ce5ef11eae..e3cf949a79 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -67,3 +67,5 @@ tap_tests += {
     't/010_dump_connstr.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_dump/po/meson.build b/src/bin/pg_dump/po/meson.build
new file mode 100644
index 0000000000..6340eac3ac
--- /dev/null
+++ b/src/bin/pg_dump/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_dump-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'pl', 'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_resetwal/meson.build b/src/bin/pg_resetwal/meson.build
index 7450c0f643..01847e52c8 100644
--- a/src/bin/pg_resetwal/meson.build
+++ b/src/bin/pg_resetwal/meson.build
@@ -13,3 +13,5 @@ tap_tests += {
     't/002_corrupted.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_resetwal/po/meson.build 
b/src/bin/pg_resetwal/po/meson.build
new file mode 100644
index 0000000000..31886ff122
--- /dev/null
+++ b/src/bin/pg_resetwal/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_resetwal-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_rewind/meson.build b/src/bin/pg_rewind/meson.build
index b1edeb82fe..81cc2a677a 100644
--- a/src/bin/pg_rewind/meson.build
+++ b/src/bin/pg_rewind/meson.build
@@ -32,3 +32,5 @@ tap_tests += {
     't/008_min_recovery_point.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_rewind/po/meson.build b/src/bin/pg_rewind/po/meson.build
new file mode 100644
index 0000000000..2704456cbb
--- /dev/null
+++ b/src/bin/pg_rewind/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_rewind-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_test_fsync/meson.build 
b/src/bin/pg_test_fsync/meson.build
index 527be88d12..a95e4522f6 100644
--- a/src/bin/pg_test_fsync/meson.build
+++ b/src/bin/pg_test_fsync/meson.build
@@ -12,3 +12,5 @@ tap_tests += {
     't/001_basic.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_test_fsync/po/meson.build 
b/src/bin/pg_test_fsync/po/meson.build
new file mode 100644
index 0000000000..5e69b57aed
--- /dev/null
+++ b/src/bin/pg_test_fsync/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_test_fsync-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'ja', 'ko', 'pl', 'ru', 
'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_test_timing/meson.build 
b/src/bin/pg_test_timing/meson.build
index c74577df49..983291e635 100644
--- a/src/bin/pg_test_timing/meson.build
+++ b/src/bin/pg_test_timing/meson.build
@@ -12,3 +12,5 @@ tap_tests += {
     't/001_basic.pl'
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_test_timing/po/meson.build 
b/src/bin/pg_test_timing/po/meson.build
new file mode 100644
index 0000000000..0832759a47
--- /dev/null
+++ b/src/bin/pg_test_timing/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_test_timing-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'ja', 'ko', 'pl', 'ru', 
'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/pg_upgrade/meson.build b/src/bin/pg_upgrade/meson.build
index 88d0e03446..9f6d797dff 100644
--- a/src/bin/pg_upgrade/meson.build
+++ b/src/bin/pg_upgrade/meson.build
@@ -24,3 +24,5 @@ pg_upgrade = executable('pg_upgrade',
 )
 
 # FIXME: add test
+
+subdir('po')
diff --git a/src/bin/pg_upgrade/po/meson.build 
b/src/bin/pg_upgrade/po/meson.build
new file mode 100644
index 0000000000..268bcbfa43
--- /dev/null
+++ b/src/bin/pg_upgrade/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_upgrade-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'ja', 'ko', 'ru', 'sv', 'tr', 
'uk', 'zh_CN'],
+            )
diff --git a/src/bin/pg_verifybackup/meson.build 
b/src/bin/pg_verifybackup/meson.build
index 2c87b907e6..69fa010ec6 100644
--- a/src/bin/pg_verifybackup/meson.build
+++ b/src/bin/pg_verifybackup/meson.build
@@ -26,3 +26,5 @@ tap_tests += {
     't/010_client_untar.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_verifybackup/po/meson.build 
b/src/bin/pg_verifybackup/po/meson.build
new file mode 100644
index 0000000000..3a190d096d
--- /dev/null
+++ b/src/bin/pg_verifybackup/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_verifybackup-' + pg_version_major.to_string(),
+             languages: ['de', 'el', 'es', 'fr', 'ja', 'ko', 'ru', 'sv', 'uk', 
'zh_CN'],
+            )
diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build
index 8437c6c9b6..bb1fd835fc 100644
--- a/src/bin/pg_waldump/meson.build
+++ b/src/bin/pg_waldump/meson.build
@@ -21,3 +21,5 @@ tap_tests += {
     't/001_basic.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/pg_waldump/po/meson.build 
b/src/bin/pg_waldump/po/meson.build
new file mode 100644
index 0000000000..b38f6a59bd
--- /dev/null
+++ b/src/bin/pg_waldump/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pg_waldump-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'ja', 'ko', 'ru', 'sv', 
'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/bin/psql/meson.build b/src/bin/psql/meson.build
index f9e3b1a32b..8dacc61956 100644
--- a/src/bin/psql/meson.build
+++ b/src/bin/psql/meson.build
@@ -65,3 +65,5 @@ tap_tests += {
     't/020_cancel.pl',
   ],
 }
+
+subdir('po')
diff --git a/src/bin/psql/po/meson.build b/src/bin/psql/po/meson.build
new file mode 100644
index 0000000000..77592ba13c
--- /dev/null
+++ b/src/bin/psql/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('psql-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'pl', 'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN', 'zh_TW'],
+            )
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index 547a53500a..c48f7bb5c8 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -44,3 +44,5 @@ tap_tests += {
     't/200_connstr.pl',
   ]
 }
+
+subdir('po')
diff --git a/src/bin/scripts/po/meson.build b/src/bin/scripts/po/meson.build
new file mode 100644
index 0000000000..d1b1a10839
--- /dev/null
+++ b/src/bin/scripts/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pgscripts-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'he', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN'],
+            )
diff --git a/src/interfaces/ecpg/ecpglib/meson.build 
b/src/interfaces/ecpg/ecpglib/meson.build
index c32fc13871..5856fc437c 100644
--- a/src/interfaces/ecpg/ecpglib/meson.build
+++ b/src/interfaces/ecpg/ecpglib/meson.build
@@ -15,3 +15,5 @@ ecpglib = library('ecpg',
                   soversion: 6,
                   install: true,
                  )
+
+subdir('po')
diff --git a/src/interfaces/ecpg/ecpglib/po/meson.build 
b/src/interfaces/ecpg/ecpglib/po/meson.build
new file mode 100644
index 0000000000..5a211cf3c8
--- /dev/null
+++ b/src/interfaces/ecpg/ecpglib/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('ecpglib' + '6' + '-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/interfaces/ecpg/preproc/meson.build 
b/src/interfaces/ecpg/preproc/meson.build
index 4ae56f21d4..aa7b04e72d 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -53,3 +53,5 @@ executable('ecpg',
            dependencies: [frontend_shlib_code, libpq],
            kwargs: default_bin_args,
           )
+
+subdir('po')
diff --git a/src/interfaces/ecpg/preproc/po/meson.build 
b/src/interfaces/ecpg/preproc/po/meson.build
new file mode 100644
index 0000000000..28849967ae
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('ecpg-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN', 'zh_TW'],
+            )
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index ce948e7568..349168b3b4 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -53,7 +53,7 @@ libpq_def = custom_target('libpq.def',
 
 # port needs to be in include path due to pthread-win32.h
 libpq_inc = include_directories('.', '../../port')
-libpq_deps = [frontend_shlib_code, thread_dep, ssl, ldap, gssapi]
+libpq_deps = [frontend_shlib_code, thread_dep, ssl, ldap, gssapi, libintl]
 libpq_link_depends = []
 
 libpq_kwargs = default_lib_args + {
@@ -115,3 +115,6 @@ tap_tests += {
     't/001_uri.pl',
   ]
 }
+
+
+subdir('po')
diff --git a/src/interfaces/libpq/po/meson.build 
b/src/interfaces/libpq/po/meson.build
new file mode 100644
index 0000000000..ba2b2abbe2
--- /dev/null
+++ b/src/interfaces/libpq/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('libpq' + '5' + '-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'he', 'it', 'ja', 'ko', 
'pl', 'pt_BR', 'ru', 'sv', 'tr', 'uk', 'zh_CN', 'zh_TW'],
+            )
diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build
index dd7ecca67e..b44be23774 100644
--- a/src/pl/plperl/meson.build
+++ b/src/pl/plperl/meson.build
@@ -79,3 +79,5 @@ regress_tests += {
     'plperl_transaction',
    ],
 }
+
+subdir('po')
diff --git a/src/pl/plperl/po/meson.build b/src/pl/plperl/po/meson.build
new file mode 100644
index 0000000000..846040383a
--- /dev/null
+++ b/src/pl/plperl/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('plperl-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ro', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN', 'zh_TW'],
+            )
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index b040e5e850..cc93f65b99 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -65,3 +65,5 @@ regress_tests += {
      'plpgsql_varprops',
   ],
 }
+
+subdir('po')
diff --git a/src/pl/plpgsql/src/po/meson.build 
b/src/pl/plpgsql/src/po/meson.build
new file mode 100644
index 0000000000..775fd3326e
--- /dev/null
+++ b/src/pl/plpgsql/src/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('plpgsql-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ro', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN', 'zh_TW'],
+            )
diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build
index cafb6fc087..ff3a2f7967 100644
--- a/src/pl/plpython/meson.build
+++ b/src/pl/plpython/meson.build
@@ -76,3 +76,5 @@ regress_tests += {
   'bd': meson.current_build_dir(),
   'sql': plpython_regress,
 }
+
+subdir('po')
diff --git a/src/pl/plpython/po/meson.build b/src/pl/plpython/po/meson.build
new file mode 100644
index 0000000000..788d0f8cdd
--- /dev/null
+++ b/src/pl/plpython/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('plpython-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'],
+            )
diff --git a/src/pl/tcl/meson.build b/src/pl/tcl/meson.build
index fe15041f52..52cdbcc5a3 100644
--- a/src/pl/tcl/meson.build
+++ b/src/pl/tcl/meson.build
@@ -49,3 +49,5 @@ regress_tests += {
   'sql': pltcl_regress,
   'regress_args': ['--load-extension=pltcl']
 }
+
+subdir('po')
diff --git a/src/pl/tcl/po/meson.build b/src/pl/tcl/po/meson.build
new file mode 100644
index 0000000000..3302df5c54
--- /dev/null
+++ b/src/pl/tcl/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext('pltcl-' + pg_version_major.to_string(),
+             languages: ['cs', 'de', 'el', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 
'pt_BR', 'ro', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN', 'zh_TW'],
+            )
-- 
2.35.1

Reply via email to