f417f6f1ad
gettext can deal with AppData (and other XML files) since version 0.19.6 (2015). We already depend on gettext anyway so let’s utilise this, to get rid of two build dependencies and simplify the extraction logic. This depends on the removal of underscore prefixes as done in a prior commit. After this the developer name "Aegisub Group" is now also treated as a translateable string.
57 lines
1.9 KiB
Bash
Executable file
57 lines
1.9 KiB
Bash
Executable file
#!/bin/sh
|
|
set -e
|
|
|
|
maybe_append() {
|
|
while read -r msg; do
|
|
msgfile=$(echo $msg | cut -d'|' -f1)
|
|
msgline=$(echo $msg | cut -d'|' -f2)
|
|
msgid=$(echo $msg | cut -d'|' -f3-)
|
|
|
|
if ! grep -Fq "msgid $msgid" aegisub.pot; then
|
|
echo "\n#: $msgfile:$msgline\nmsgid $msgid\nmsgstr \"\"\n" >> aegisub.pot
|
|
fi
|
|
done
|
|
}
|
|
|
|
find ../src ../src/command -name \*.cpp -o -name \*.h \
|
|
| xgettext --files-from=- -o - --c++ --sort-by-file \
|
|
-k_ -kSTR_MENU -kSTR_DISP -kSTR_HELP -kfmt_tl -kfmt_plural:2,3 -kwxT -kwxPLURAL:1,2 \
|
|
| sed 's/SOME DESCRIPTIVE TITLE./Aegisub 3.2/' \
|
|
| sed 's/YEAR/2005-2014/' \
|
|
| sed "s/THE PACKAGE'S COPYRIGHT HOLDER/Rodrigo Braz Monteiro, Niels Martin Hansen, Thomas Goyne et. al./" \
|
|
| sed 's/PACKAGE/Aegisub/' \
|
|
| sed 's/VERSION/3.2.0/' \
|
|
| sed 's/FIRST AUTHOR <EMAIL@ADDRESS>/Niels Martin Hansen <nielsm@aegisub.org>/' \
|
|
| sed 's/CHARSET/UTF-8/' \
|
|
> aegisub.pot
|
|
|
|
sed '/"text"/!d;s/^.*"text" : \("[^"]\+"\).*$/default_menu.json|0|\1/' ../src/libresrc/default_menu.json \
|
|
| maybe_append
|
|
|
|
sed '/"text"/!d;s/^.*"text" : \("[^"]\+"\).*$/default_menu.json|0|\1/' ../src/libresrc/osx/default_menu.json \
|
|
| maybe_append
|
|
|
|
grep '"[A-Za-z ]\+" : {' -n ../src/libresrc/default_hotkey.json \
|
|
| sed 's/^\([0-9]\+:\).*\("[^"]\+"\).*$/default_hotkey.json|\1|\2/' \
|
|
| maybe_append
|
|
|
|
find ../automation -name *.lua \
|
|
| LC_ALL=C sort \
|
|
| xargs grep tr\"[^\"]\*\" -o -n \
|
|
| sed 's/\(.*\):\([0-9]\+\):tr\(".*"\)/\1|\2|\3/' \
|
|
| sed 's/\\/\\\\\\\\/g' \
|
|
| maybe_append
|
|
|
|
xgettext ../packages/desktop/aegisub.desktop.in.in \
|
|
--language=Desktop --join-existing --omit-header -o aegisub.pot
|
|
|
|
xgettext ../packages/desktop/aegisub.appdata.xml.in.in \
|
|
--language=AppData --join-existing --omit-header -o aegisub.pot
|
|
|
|
grep '^_[A-Za-z0-9]*=.*' ../packages/win_installer/fragment_strings.iss.in | while read line
|
|
do
|
|
echo "$line" \
|
|
| sed 's/[^=]*=\(.*\)/packages\/win_installer\/fragment_strings.iss|1|"\1"/' \
|
|
| maybe_append
|
|
done
|