Support LINGUAS for gnome.yelp() languages

Listing all languages inside meson.build for the Yelp-based manual
localisation is error-prone, and it also requires parsing and modifying
Meson files from external tools.

Just like we do for i18n, we can use an ancillary `LINGUAS` file in the
help source sub-directory to list all the help languages.
pull/2216/head
Emmanuele Bassi 7 years ago
parent 62aabb5a8b
commit 06fdabb7ac
  1. 19
      mesonbuild/scripts/yelphelper.py
  2. 2
      test cases/frameworks/13 yelp/help/LINGUAS
  3. 6
      test cases/frameworks/13 yelp/help/meson.build
  4. 6
      test cases/frameworks/13 yelp/installed_files.txt

@ -29,6 +29,22 @@ parser.add_argument('--media', dest='media', default='')
parser.add_argument('--langs', dest='langs', default='')
parser.add_argument('--symlinks', type=bool, dest='symlinks', default=False)
def read_linguas(src_sub):
# Syntax of this file is documented here:
# https://www.gnu.org/software/gettext/manual/html_node/po_002fLINGUAS.html
linguas = os.path.join(src_sub, 'LINGUAS')
try:
langs = []
with open(linguas) as f:
for line in f:
line = line.strip()
if line and not line.startswith('#'):
langs += line.split()
return langs
except (FileNotFoundError, PermissionError):
print('Could not find file LINGUAS in {}'.format(src_sub))
return []
def build_pot(srcdir, project_id, sources):
# Must be relative paths
sources = [os.path.join('C', source) for source in sources]
@ -108,6 +124,9 @@ def run(args):
build_subdir = os.path.join(os.environ['MESON_BUILD_ROOT'], options.subdir)
abs_sources = [os.path.join(src_subdir, 'C', source) for source in sources]
if not langs:
langs = read_linguas(src_subdir)
if options.command == 'pot':
build_pot(src_subdir, options.project_id, sources)
elif options.command == 'update-po':

@ -13,3 +13,9 @@ gnome.yelp('meson-symlink',
symlink_media: true,
languages: ['de', 'es'],
)
gnome.yelp('meson-linguas',
sources: 'index.page',
media: 'media/test.txt',
symlink_media: false,
)

@ -10,3 +10,9 @@ usr/share/help/es/meson-symlink/media/test.txt
usr/share/help/es/meson-symlink/index.page
usr/share/help/de/meson-symlink/index.page
usr/share/help/de/meson-symlink/media/test.txt
usr/share/help/C/meson-linguas/index.page
usr/share/help/C/meson-linguas/media/test.txt
usr/share/help/es/meson-linguas/media/test.txt
usr/share/help/es/meson-linguas/index.page
usr/share/help/de/meson-linguas/index.page
usr/share/help/de/meson-linguas/media/test.txt

Loading…
Cancel
Save