mirror of
https://github.com/token2/snapd.git
synced 2026-03-13 11:15:47 -07:00
The update-pot script was not generating any plural message IDs because it was scanning for i18n.DG() calls instead of i18n.NG().
92 lines
2.6 KiB
Bash
Executable File
92 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# -*- Mode: sh; indent-tabs-mode: t -*-
|
|
|
|
set -eu
|
|
|
|
# In LP#1758684 we got reports that the pot file generation
|
|
# is broken. To get to the bottom of this add checks here
|
|
# so that we error the build if this happens. Note that the
|
|
# strings may be update if those change but spread tests will
|
|
# tell us when it is needed.
|
|
check_canaries() {
|
|
c1="Alternative command to run"
|
|
c2="Name of the key to use, otherwise use the default key"
|
|
c3="too many arguments for command"
|
|
c4="%d days ago, at 15:04 MST"
|
|
|
|
for canary in "$c1" "$c2" "$c3" "$c4"; do
|
|
if ! grep -q "$canary" "$OUTPUT"; then
|
|
echo "canary '$canary' not found, pot extraction broken"
|
|
ls -lh "$OUTPUT"
|
|
exit 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
HERE="$(readlink -f "$(dirname "$0")")"
|
|
|
|
OUTPUT="$HERE/po/snappy.pot"
|
|
if [ -n "${1:-}" ]; then
|
|
OUTPUT="$1"
|
|
fi
|
|
|
|
# ensure we have our xgettext-go
|
|
go install github.com/snapcore/snapd/i18n/xgettext-go
|
|
|
|
tmpdir="$(mktemp -d)"
|
|
trap 'rm -rf "$tmpdir"' EXIT
|
|
|
|
# exclude vendor and _build subdir
|
|
find "$HERE" -type d \( -name "vendor" -o -name "_build" -o -name ".git" \) -prune -o -name "*.go" -type f -printf "%P\n" > "$tmpdir/go.files"
|
|
|
|
"${GOPATH%%:*}/bin/xgettext-go" \
|
|
-f "$tmpdir/go.files" \
|
|
-D "$HERE" \
|
|
-o "$OUTPUT" \
|
|
--add-comments-tag=TRANSLATORS: \
|
|
--sort-output \
|
|
--package-name=snappy\
|
|
--msgid-bugs-address=snappy-devel@lists.ubuntu.com \
|
|
--keyword=i18n.G \
|
|
--keyword-plural=i18n.NG
|
|
|
|
# check canary
|
|
check_canaries
|
|
|
|
sed -i 's/charset=CHARSET/charset=UTF-8/' "$OUTPUT"
|
|
|
|
find "$HERE" -path "$HERE/data/desktop/*.desktop.in" -type f -printf "%P\n" > "$tmpdir/desktop.files"
|
|
# we need the || true because Ubuntu 14.04's xgettext does not support
|
|
# extracting from desktop files.
|
|
xgettext \
|
|
-f "$tmpdir/desktop.files" \
|
|
-D "$HERE" \
|
|
-o "$OUTPUT" \
|
|
--language=Desktop \
|
|
--sort-output \
|
|
--package-name=snappy \
|
|
--msgid-bugs-address=snappy-devel@lists.ubuntu.com \
|
|
--join-existing || true
|
|
|
|
find "$HERE" -path "$HERE/data/polkit/*.policy" -type f -printf "%P\n" > "$tmpdir/polkit.files"
|
|
# we need the || true because of
|
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891347
|
|
xgettext \
|
|
-f "$tmpdir/polkit.files" \
|
|
-D "$HERE" \
|
|
-o "$OUTPUT" \
|
|
--its="$HERE/po/its/polkit.its" \
|
|
--sort-output \
|
|
--package-name=snappy \
|
|
--msgid-bugs-address=snappy-devel@lists.ubuntu.com \
|
|
--join-existing || true
|
|
|
|
check_canaries
|
|
|
|
# language packs
|
|
for p in "${HERE}"/po/*.po; do
|
|
lang=$(basename "$p" .po)
|
|
mkdir -p "$HERE/share/locale/$lang/LC_MESSAGES"
|
|
msgfmt -v -o "$HERE/share/locale/$lang/LC_MESSAGES/snappy.mo" "$p"
|
|
done
|