From e557aa866b8c174202a00194e3a75b9f8a16cb35 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Wed, 4 Apr 2012 02:47:05 +0000 Subject: [PATCH] Fix pot generation Filter out duplicate strings, and escape backslashes from lua strings. Include strings from aegisub.desktop. Originally committed to SVN as r6655. --- aegisub/po/make_pot.sh | 47 +++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/aegisub/po/make_pot.sh b/aegisub/po/make_pot.sh index e35b9da0b..1e01c6b7e 100755 --- a/aegisub/po/make_pot.sh +++ b/aegisub/po/make_pot.sh @@ -1,17 +1,40 @@ #!/bin/sh -find ../src ../src/command -name \*.cpp -o -name \*.h | \ - xgettext --files-from=- -o - --c++ -k_ -kSTR_MENU -kSTR_DISP -kSTR_HELP -kwxT | \ - sed 's/SOME DESCRIPTIVE TITLE/Aegisub 3.0.0/' | \ - sed 's/YEAR/2005-2012/' | \ - sed "s/THE PACKAGE'S COPYRIGHT HOLDER/Rodrigo Braz Monteiro, Niels Martin Hansen, Thomas Goyne et. al./" | \ - sed 's/PACKAGE/Aegisub 3.0.0/' > \ - aegisub.pot +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-) -sed '/"text"/!d;s/^.*"text" : \("[^"]\+"\).*$/\n#: default_menu.json\nmsgid \1\nmsgstr ""\n/' ../src/libresrc/default_menu.json >> aegisub.pot + if ! grep -Fq "msgid $msgid" aegisub.pot; then + echo "\n#: $msgfile:$msgline\nmsgid $msgid\nmsgstr \"\"\n" >> aegisub.pot + fi + done +} -find ../automation -name *.lua | \ - xargs grep tr\"[^\"]\*\" -o -n | \ - sed 's/\(.*\):\([0-9]\+\):tr\(".*"\)/#: \1:\2\nmsgid \3\nmsgstr ""\n/' \ - >> aegisub.pot +find ../src ../src/command -name \*.cpp -o -name \*.h \ + | xgettext --files-from=- -o - --c++ -k_ -kSTR_MENU -kSTR_DISP -kSTR_HELP -kwxT \ + | sed 's/SOME DESCRIPTIVE TITLE./Aegisub 3.0.0/' \ + | sed 's/YEAR/2005-2012/' \ + | 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.0.0/' \ + | sed 's/FIRST AUTHOR /Niels Martin Hansen /' \ + | sed 's/CHARSET/UTF-8/' \ + > aegisub.pot +sed '/"text"/!d;s/^.*"text" : \("[^"]\+"\).*$/default_menu.json|0|\1/' ../src/libresrc/default_menu.json \ + | maybe_append + +find ../automation -name *.lua \ + | xargs grep tr\"[^\"]\*\" -o -n \ + | sed 's/\(.*\):\([0-9]\+\):tr\(".*"\)/\1|\2|\3/' \ + | sed 's/\\/\\\\\\\\/g' \ + | maybe_append + +for i in 'Name' 'GenericName' 'Comment' +do + grep ^$i -n ../desktop/aegisub.desktop.in \ + | sed 's/\([0-9]\+\):[^=]\+=\(.*\)$/aegisub.desktop|\1|"\2"/' \ + | maybe_append +done