]> git.draconx.ca Git - dxcommon.git/blob - m4/linguas.m4
c6ad9736ab5bbfbbcb62d1a5310d8170c47410ac
[dxcommon.git] / m4 / linguas.m4
1 dnl Copyright © 2011, 2021 Nick Bowler
2 dnl
3 dnl Computes the set of .po and .mo files based on the LINGUAS environment
4 dnl variable.  The variable POFILES is set to the complete list of .po files,
5 dnl according to the LINGUAS file in the po directory.  The variable MOFILES
6 dnl is set to the list of .mo files that the user has requested be installed.
7 dnl Both POFILES and MOFILES are AC_SUBSTed.
8 dnl
9 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
10 dnl This is free software: you are free to do what the fuck you want to.
11 dnl There is NO WARRANTY, to the extent permitted by law.
12
13 AC_DEFUN([DX_LINGUAS],
14 [AC_REQUIRE([AM_GNU_GETTEXT])dnl
15
16 POFILES=
17 MOFILES=
18
19 if test -f "$srcdir/po/LINGUAS"; then
20   awk '{ sub(/#.*$/, "")
21     for (i = 1; i <= NF; i++) {
22       print $(i)
23     }
24   }' "$srcdir/po/LINGUAS" | sort -u >conftest.all
25
26   : "${LINGUAS=all}"
27   if test x"$LINGUAS" = x"all"; then
28     cp conftest.all conftest.ena
29   else
30     :; {
31       for arg in $LINGUAS; do
32         # Ensure that if "la_CC"-style code is requested then so is plain "la".
33         printf '%s\n' "$arg"
34         case $arg in
35         *_*) printf '%s\n' "${arg%%_*}" ;;
36         esac
37       done
38     } | sort -u >conftest.ena
39   fi
40
41   exec 3<conftest.all
42   while read x <&3; do
43     AS_VAR_APPEND([POFILES], ["${POFILES:+ }po/$x.po"])
44   done
45
46   if test x"$USE_NLS" = x"yes"; then
47     join conftest.ena conftest.all >conftest.out
48     exec 3<conftest.out
49     while read x <&3; do
50       AS_VAR_APPEND([MOFILES], ["${MOFILES:+ }po/$x.mo"])
51     done
52   fi
53
54   exec 3<&-
55   rm -f conftest.all conftest.ena conftest.out
56 fi
57
58 AC_SUBST([POFILES])
59 AC_SUBST([MOFILES])
60 ])