#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Test 'bulk' mode of Desktop Entry support. cat <<\EOF > mf.desktop [Desktop Entry] Type=Application Name =Foo Comment[foo]=Already translated comment Comment= \sThis is a \nmultiline comment; for testing # This is a comment and must be preserved Keywords=Keyword1;Keyword2;Key\;word3; EOF test -d po || mkdir po cat <<\EOF > po/fr.po # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-03-17 07:36+0900\n" "PO-Revision-Date: 2014-03-17 08:40+0900\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: xg.desktop:4 msgid "Foo" msgstr "" "French\n" "foo" #: xg.desktop:5 msgid "" " This is a \n" "multiline comment; for testing" msgstr "" "French \n" "comment" #: xg.desktop:7 msgid "Keyword1;Keyword2;Key\\;word3;" msgstr "one;two;thr\\;ee;" EOF cat <<\EOF > po/de.po # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-03-17 07:36+0900\n" "PO-Revision-Date: 2014-03-17 08:40+0900\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: xg.desktop:4 msgid "Foo" msgstr "" "German\n" "foo" #: xg.desktop:5 msgid "" " This is a \n" "multiline comment; for testing" msgstr "" "German \n" "comment" #: xg.desktop:7 msgid "Keyword1;Keyword2;Key\\;word3;" msgstr "one;two;thr\\;ee;" EOF cat <<\EOF > mf.desktop.ok [Desktop Entry] Type=Application Name[de]=German\nfoo Name[fr]=French\nfoo Name=Foo Comment[foo]=Already translated comment Comment[de]=German \ncomment Comment[fr]=French \ncomment Comment=\sThis is a \nmultiline comment; for testing # This is a comment and must be preserved Keywords[de]=one;two;thr\;ee; Keywords[fr]=one;two;thr\;ee; Keywords=Keyword1;Keyword2;Key\;word3; EOF cat <<\EOF > mf.desktop.desired.ok [Desktop Entry] Type=Application Name[fr]=French\nfoo Name=Foo Comment[foo]=Already translated comment Comment[fr]=French \ncomment Comment=\sThis is a \nmultiline comment; for testing # This is a comment and must be preserved Keywords[fr]=one;two;thr\;ee; Keywords=Keyword1;Keyword2;Key\;word3; EOF unset LINGUAS # Sanity checks for contradicting options. ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out \ >/dev/null 2>/dev/null \ Exit 1 test -d po/LINGUAS || mkdir po/LINGUAS ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out \ >/dev/null 2>/dev/null \ Exit 1 rm -fr po/LINGUAS cat <<\EOF > po/LINGUAS de fr EOF ${MSGFMT} --desktop --template=mf.desktop -d po \ >/dev/null 2>/dev/null \ && Exit 1 ${MSGFMG} --desktop --template=mf.desktop -d po -o mf.desktop.out -l fr \ >/dev/null 2>/dev/null \ && Exit 1 ${MSGFMG} --desktop --template=mf.desktop -d po -o mf.desktop.out po/fr.po \ >/dev/null 2>/dev/null \ && Exit 1 # Proceed to the .desktop file generation. ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out || Exit 1 : ${DIFF=diff} ${DIFF} mf.desktop.ok mf.desktop.out test $? = 0 || Exit 1 # Restrict the desired languages with the LINGUAS envvar. LINGUAS="fr ja" ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.desired.out || Exit 1 : ${DIFF=diff} ${DIFF} mf.desktop.desired.ok mf.desktop.desired.out test $? = 0 || Exit 1