summaryrefslogtreecommitdiff
path: root/gettext-tools/tests/msgfmt-xml-2
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/tests/msgfmt-xml-2')
-rwxr-xr-xgettext-tools/tests/msgfmt-xml-2203
1 files changed, 203 insertions, 0 deletions
diff --git a/gettext-tools/tests/msgfmt-xml-2 b/gettext-tools/tests/msgfmt-xml-2
new file mode 100755
index 000000000..d10d21cc3
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-xml-2
@@ -0,0 +1,203 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test 'bulk' mode of msgfmt --xml.
+
+cat <<\EOF > mf.appdata.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+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"
+
+msgid ""
+"Characters is a simple utility application to find and insert unusual "
+"characters. It allows you to quickly find the character you are looking for "
+"by searching for keywords."
+msgstr ""
+"Caractères est un utilitaire pour chercher et insérer des caractères "
+"inhabituels. Il vous permet de trouver rapidement le caractère que vous "
+"cherchez par le biais de mots-clés."
+
+msgid ""
+"You can also browse characters by categories, such as Punctuation, Pictures, "
+"etc."
+msgstr ""
+"Vous pouvez aussi naviguer dans les caractères par catégories, comme par "
+"Ponctuation, Images, etc."
+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"
+
+msgid ""
+"Characters is a simple utility application to find and insert unusual "
+"characters. It allows you to quickly find the character you are looking for by "
+"searching for keywords."
+msgstr ""
+"Zeichen ist ein einfaches Hilfsprogramm zum Auffinden und Einsetzen von selten "
+"verwendeten Zeichen. Sie können schnell das gesuchte Zeichen finden, indem Sie "
+"nach Schlüsselwörtern suchen."
+
+msgid ""
+"You can also browse characters by categories, such as Punctuation, Pictures, "
+"etc."
+msgstr ""
+"Sie können ebenfalls nach Kategorie suchen, wie z.B. nach Zeichensetzung oder "
+"Bildern."
+EOF
+
+cat <<\EOF > mf.appdata.xml.ok
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p xml:lang="fr">Caractères est un utilitaire pour chercher et insérer des caractères inhabituels. Il vous permet de trouver rapidement le caractère que vous cherchez par le biais de mots-clés.</p>
+ <p xml:lang="de">Zeichen ist ein einfaches Hilfsprogramm zum Auffinden und Einsetzen von selten verwendeten Zeichen. Sie können schnell das gesuchte Zeichen finden, indem Sie nach Schlüsselwörtern suchen.</p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ <p xml:lang="fr">Vous pouvez aussi naviguer dans les caractères par catégories, comme par Ponctuation, Images, etc.</p>
+ <p xml:lang="de">Sie können ebenfalls nach Kategorie suchen, wie z.B. nach Zeichensetzung oder Bildern.</p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+cat <<\EOF > mf.appdata.xml.desired.ok
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p xml:lang="fr">Caractères est un utilitaire pour chercher et insérer des caractères inhabituels. Il vous permet de trouver rapidement le caractère que vous cherchez par le biais de mots-clés.</p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ <p xml:lang="fr">Vous pouvez aussi naviguer dans les caractères par catégories, comme par Ponctuation, Images, etc.</p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+unset LINGUAS
+
+# Sanity checks for contradicting options.
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+test -d po/LINGUAS || mkdir po/LINGUAS
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+rm -fr po/LINGUAS
+
+cat <<\EOF > po/LINGUAS
+de
+fr
+EOF
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out -l fr \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out po/fr.po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+# Proceed to the .desktop file generation.
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out || exit 1
+: ${DIFF=diff}
+${DIFF} mf.appdata.xml.ok mf.appdata.xml.out
+test $? = 0 || exit 1
+
+# Restrict the desired languages with the LINGUAS envvar.
+
+LINGUAS="fr ja" ${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.desired.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.appdata.xml.desired.ok mf.appdata.xml.desired.out
+test $? = 0 || exit 1