set -e
+# Update the .pot.
+sh check-translations.sh pot
+
# First upload our current .pot.
mkdir -p translations/xonotic.commonpot/
cp common.pot translations/xonotic.commonpot/en..po
for f in common.*.po; do
lang=${f%.po}
lang=${lang#common.}
+ case "$lang" in
+ de_CH)
+ continue
+ ;;
+ esac
tcurfile=translations/xonotic.commonpot/$lang..po
goldfile=translations/xonotic.commonpot/$lang..po.orig
gnewfile=common.$lang.po
if [ -f "$tcurfile" ]; then
git show "$mergebase":"$gnewfile" > "$goldfile"
- msgcat -s --no-location --strict "$tcurfile" | grep -v "^#" > "$tcurfile.sorted"
- msgcat -s --no-location --strict "$goldfile" | grep -v "^#" > "$goldfile.sorted"
- msgcat -s --no-location --strict "$gnewfile" | grep -v "^#" > "$gnewfile.sorted"
- if diff -u "$goldfile.sorted" "$gnewfile.sorted" >/dev/null; then
+ msgmerge -F -U "$tcurfile" common.pot
+ msgmerge -F -U "$goldfile" common.pot
+ msgmerge -F -U "$gnewfile" common.pot
+ if diff -u "$goldfile" "$gnewfile" >/dev/null; then
# no change on git, changed on tx only
msgmerge -F -U "$tcurfile" common.pot
cp "$tcurfile" "$gnewfile"
else
- if ! diff -u "$goldfile.sorted" "$gnewfile.sorted" | patch "$tcurfile.sorted"; then
+ if ! diff -u "$goldfile" "$gnewfile" | patch "$tcurfile"; then
while :; do
- vim -o "$tcurfile.sorted.rej" "$tcurfile.sorted"
+ vim -o "$tcurfile.rej" "$tcurfile"
echo "OK?"
read -r OK || exit 1
[ x"$OK" != x"y" ] || break
done
- rm -f "$tcurfile.sorted.rej"
+ rm -f "$tcurfile.rej"
fi
- mv "$tcurfile.sorted" "$tcurfile"
msgmerge -F -U "$tcurfile" common.pot
cp "$tcurfile" "$gnewfile"
- rm "$goldfile.sorted"
- rm "$gnewfile.sorted"
- rm "$goldfile"
fi
+ rm "$goldfile"
else
msgmerge -F -U "$gnewfile" common.pot
cp "$gnewfile" "$tcurfile"
cp "$tcurfile" "$gnewfile"
fi
done
-tx push -t
+tx push -t --skip
date > .tx/merge-base
+
+# Generate Swiss Standard German from German.
+msgfilter -i common.de.po -o common.de_CH.po perl -pe '
+ # Character filters go here.
+ s/ß/ss/g;
+ # Word filters go here. By default we match even inside words, as there
+ # are constructs like ^BGflag where "flag" is the actual word. Make
+ # sure to not commit the clbuttical mistake.
+ s/eventuell/allfällig/g;
+'
+
+# Build new languages list.
+sh check-translations.sh txt > languages.txt.new
+mv languages.txt.new languages.txt
+
+# Report stats.
+git diff --stat
+git diff --color-words languages.txt