mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-25 02:10:36 -06:00
72 lines
2.2 KiB
Bash
72 lines
2.2 KiB
Bash
|
#! /bin/bash
|
||
|
|
||
|
# Gnucash has borrowed a couple of source files from goffice.
|
||
|
# Those files contain a number of translatable strings. The
|
||
|
# goffice translation teams have already put effort in translating
|
||
|
# those in many languages. To reduce our translation effort, this
|
||
|
# script can be used to import these translations into our own po files.
|
||
|
|
||
|
# Some notes:
|
||
|
# 1. **Important** this script assumes it lives in the contrib directory
|
||
|
# of the gnucash source tree. It should be called from there. Don't
|
||
|
# move it to another location before calling it.
|
||
|
#
|
||
|
# 2. The script takes two parameters:
|
||
|
# - the full path to the goffice sources
|
||
|
# - the full path to the gnucash.pot to merge our po files against
|
||
|
|
||
|
usage() { echo "Usage: $0 goffice-src-dir gnucash-pot-file" 1>&2; exit 1; }
|
||
|
|
||
|
# Check for at least two command line arguments
|
||
|
if [[ "x$2" = "x" ]]
|
||
|
then
|
||
|
usage
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
goffice_base_dir="$1"
|
||
|
gnucash_pot_file="$2"
|
||
|
|
||
|
if [[ ! -d "$goffice_base_dir/po" ]]
|
||
|
then
|
||
|
echo "'$goffice_base_dir'"
|
||
|
echo "doesn't seem to contain a po directory."
|
||
|
echo "Please double check the goffice-src-dir parameter you passed"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ ! -f "$gnucash_pot_file" ]]
|
||
|
then
|
||
|
echo "'$gnucash_pot_file'"
|
||
|
echo "doesn't seem to point to a gnucash.pot file."
|
||
|
echo "Please double check the gnucash-pot-file parameter you passed"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
goffice_po_dir="$goffice_base_dir/po"
|
||
|
|
||
|
# Deduce path to our po files from the location of this script
|
||
|
gc_po_dir="$(dirname $0)/../po/"
|
||
|
for pofile in $(cd "$gc_po_dir"; ls *.po)
|
||
|
do
|
||
|
if [[ -e "$goffice_po_dir/$pofile" ]]
|
||
|
then
|
||
|
gopofile="$pofile"
|
||
|
else
|
||
|
shortpofile=${pofile%%_*}.po
|
||
|
if [[ "$shortpofile" != "$pofile" ]] && [[ -e "$goffice_po_dir/$shortpofile" ]]
|
||
|
then
|
||
|
echo "$pofile - doesn't exist in goffice but $shortpofile does, continuing with that one."
|
||
|
gopofile="$shortpofile"
|
||
|
else
|
||
|
echo "$pofile - skipping because no equivalent found in goffice"
|
||
|
continue
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
echo "$pofile - importing translations from goffice's $gopofile..."
|
||
|
msgcat --use-first -o update.po "$gc_po_dir/$pofile" "$goffice_po_dir/$gopofile"
|
||
|
msgmerge update.po "$gnucash_pot_file" | msgattrib --no-obsolete > "$gc_po_dir/$pofile"
|
||
|
rm update.po
|
||
|
done
|