po: skip automated fuzzy translations when generating new po files

The fuzzy translations are always wrong, but meson's integration does
not allow skipping them. Add a tiny wrapper for 'msgmerge' to
workaround the issue and skip them when running ninja systemd-update-po
This commit is contained in:
Luca Boccassi
2026-05-20 14:28:49 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent 1f05824d09
commit d3f38e09ac
2 changed files with 22 additions and 0 deletions
+6
View File
@@ -3,6 +3,12 @@
want_translations = get_option('translations')
if want_translations
# The msgmerge invocation hidden behind i18n.gettext()'s update-po target inserts auto-guessed
# "fuzzy" translations for new strings, which are almost always wrong, use a wrapper to skip it.
meson.override_find_program(
'msgmerge',
find_program('../tools/msgmerge-no-fuzzy.py'))
i18n = import('i18n')
i18n.gettext(meson.project_name(),
preset : 'glib',
+16
View File
@@ -0,0 +1,16 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1-or-later
"""
Fuzzy translations are always bogus, but the meson integration doesn't allow overriding. With this wrapper
we can skip them.
"""
import os
import shutil
import sys
msgmerge = shutil.which('msgmerge')
if msgmerge is None:
sys.exit('msgmerge-no-fuzzy: msgmerge not found in PATH')
os.execv(msgmerge, [msgmerge, '--no-fuzzy-matching', *sys.argv[1:]])