| #! /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 <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n" |
| "Language-Team: LANGUAGE <LL@li.org>\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 <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n" |
| "Language-Team: LANGUAGE <LL@li.org>\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 |
| |
| ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out -l fr \ |
| >/dev/null 2>/dev/null \ |
| && Exit 1 |
| |
| ${MSGFMT} --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.tmp || Exit 1 |
| LC_ALL=C tr -d '\r' < mf.desktop.tmp > 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.tmp || Exit 1 |
| LC_ALL=C tr -d '\r' < mf.desktop.desired.tmp > mf.desktop.desired.out || Exit 1 |
| |
| : ${DIFF=diff} |
| ${DIFF} mf.desktop.desired.ok mf.desktop.desired.out |
| test $? = 0 || Exit 1 |