File: msgfmt-xml-2

package info (click to toggle)
gettext 0.23.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 168,104 kB
  • sloc: ansic: 532,579; sh: 68,252; perl: 28,011; makefile: 9,066; lisp: 3,184; yacc: 1,055; java: 615; cs: 589; cpp: 397; objc: 343; sed: 79; tcl: 63; xml: 40; pascal: 11; php: 7; awk: 7
file content (296 lines) | stat: -rwxr-xr-x 13,026 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
#! /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"?>
<!DOCTYPE component PUBLIC "" "" [
<!ENTITY author1 "Giovanni Campagna">
<!ENTITY author2 "Daiki Ueno">
<!ENTITY author3 "Bilal Elmoussaoui">
]>
<component type="desktop" xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0">
  <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>
    <p gt:escape="yes">
      Did you know that the copyright sign (&#xa9;, U+00A9) can be written in HTML
      as &amp;#xa9;,
      as &amp;#169;,
      or as &amp;copy;?
    </p>
    <p>Written by &author1;, &author2;, and &author3;.</p>
    <p gt:escape="no">Escape gallery: operator x&amp;y, standard XML entities &amp; &quot; &apos; &amp; &lt; &gt;, character reference &#xa9;, escaped character reference &amp;#xa9;, entity references &copy; &author1;</p>
    <p gt:escape="yes">Escape gallery: operator x&amp;y, standard XML entities &amp; &quot; &apos; &amp; &lt; &gt;, character reference &#xa9;, escaped character reference &amp;#xa9;, entity references &copy; &author1;</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."

msgid ""
"Did you know that the copyright sign (©, U+00A9) can be written in HTML as "
"&#xa9;, as &#169;, or as &copy;?"
msgstr ""
"Saviez-vous que le signe de copyright (©, U+00A9) peut être écrit en HTML "
"comme &#xa9;, comme &#169; ou comme &copy; ?"

msgid "Written by &author1;, &author2;, and &author3;."
msgstr "Écrit par &author1;, &author2;, et &author3;."

msgid ""
"Escape gallery: operator x&y, standard XML entities & \" ' & < >, character "
"reference ©, escaped character reference &#xa9;, entity references &copy; "
"&author1;"
msgstr ""
"Exposition d'échappements: operateur x&y, entités XML standard & \" ' & < >, "
"caractère ©, caractère échappé &#xa9;, entités &copy; &author1;"
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."

msgid ""
"Did you know that the copyright sign (©, U+00A9) can be written in HTML as "
"&#xa9;, as &#169;, or as &copy;?"
msgstr ""
"Wussten Sie, dass das Copyright-Zeichen (©, U+00A9) in HTML als "
"&#xa9;, als &#169;, oder als &copy; "
"geschrieben werden kann?"

msgid "Written by &author1;, &author2;, and &author3;."
msgstr "Geschrieben von &author1;, &author2; und &author3;."

msgid ""
"Escape gallery: operator x&y, standard XML entities & \" ' & < >, character "
"reference ©, escaped character reference &#xa9;, entity references &copy; "
"&author1;"
msgstr ""
"Escape-Beispiele: Operator x&y, Standard-XML Entitäten & \" ' & < >, Zeichen "
"©, escaptes Zeichen &#xa9;, Entitäten &copy; &author1;"
EOF

cat <<\EOF > mf.appdata.xml.ok
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component PUBLIC "" "" [
<!ENTITY author1 "Giovanni Campagna">
<!ENTITY author2 "Daiki Ueno">
<!ENTITY author3 "Bilal Elmoussaoui">
]>
<component xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0" 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>
    <p gt:escape="yes">
      Did you know that the copyright sign (©, U+00A9) can be written in HTML
      as &amp;#xa9;,
      as &amp;#169;,
      or as &amp;copy;?
    </p>
    <p gt:escape="yes" xml:lang="fr">Saviez-vous que le signe de copyright (©, U+00A9) peut être écrit en HTML comme &amp;#xa9;, comme &amp;#169; ou comme &amp;copy; ?</p>
    <p gt:escape="yes" xml:lang="de">Wussten Sie, dass das Copyright-Zeichen (©, U+00A9) in HTML als &amp;#xa9;, als &amp;#169;, oder als &amp;copy; geschrieben werden kann?</p>
    <p>Written by &author1;, &author2;, and &author3;.</p>
    <p xml:lang="fr">Écrit par &author1;, &author2;, et &author3;.</p>
    <p xml:lang="de">Geschrieben von &author1;, &author2; und &author3;.</p>
    <p gt:escape="no">Escape gallery: operator x&amp;y, standard XML entities &amp; " ' &amp; &lt; &gt;, character reference ©, escaped character reference &amp;#xa9;, entity references &copy; &author1;</p>
    <p gt:escape="no" xml:lang="fr">Exposition d'échappements: operateur x&y, entités XML standard & " ' & &lt; &gt;, caractère ©, caractère échappé &amp;#xa9;, entités &copy; &author1;</p>
    <p gt:escape="no" xml:lang="de">Escape-Beispiele: Operator x&y, Standard-XML Entitäten & " ' & &lt; &gt;, Zeichen ©, escaptes Zeichen &amp;#xa9;, Entitäten &copy; &author1;</p>
    <p gt:escape="yes">Escape gallery: operator x&amp;y, standard XML entities &amp; " ' &amp; &lt; &gt;, character reference ©, escaped character reference &amp;#xa9;, entity references &copy; &author1;</p>
    <p gt:escape="yes" xml:lang="fr">Exposition d'échappements: operateur x&amp;y, entités XML standard &amp; " ' &amp; &lt; &gt;, caractère ©, caractère échappé &amp;#xa9;, entités &amp;copy; &amp;author1;</p>
    <p gt:escape="yes" xml:lang="de">Escape-Beispiele: Operator x&amp;y, Standard-XML Entitäten &amp; " ' &amp; &lt; &gt;, Zeichen ©, escaptes Zeichen &amp;#xa9;, Entitäten &amp;copy; &amp;author1;</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"?>
<!DOCTYPE component PUBLIC "" "" [
<!ENTITY author1 "Giovanni Campagna">
<!ENTITY author2 "Daiki Ueno">
<!ENTITY author3 "Bilal Elmoussaoui">
]>
<component xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0" 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>
    <p gt:escape="yes">
      Did you know that the copyright sign (©, U+00A9) can be written in HTML
      as &amp;#xa9;,
      as &amp;#169;,
      or as &amp;copy;?
    </p>
    <p gt:escape="yes" xml:lang="fr">Saviez-vous que le signe de copyright (©, U+00A9) peut être écrit en HTML comme &amp;#xa9;, comme &amp;#169; ou comme &amp;copy; ?</p>
    <p>Written by &author1;, &author2;, and &author3;.</p>
    <p xml:lang="fr">Écrit par &author1;, &author2;, et &author3;.</p>
    <p gt:escape="no">Escape gallery: operator x&amp;y, standard XML entities &amp; " ' &amp; &lt; &gt;, character reference ©, escaped character reference &amp;#xa9;, entity references &copy; &author1;</p>
    <p gt:escape="no" xml:lang="fr">Exposition d'échappements: operateur x&y, entités XML standard & " ' & &lt; &gt;, caractère ©, caractère échappé &amp;#xa9;, entités &copy; &author1;</p>
    <p gt:escape="yes">Escape gallery: operator x&amp;y, standard XML entities &amp; " ' &amp; &lt; &gt;, character reference ©, escaped character reference &amp;#xa9;, entity references &copy; &author1;</p>
    <p gt:escape="yes" xml:lang="fr">Exposition d'échappements: operateur x&amp;y, entités XML standard &amp; " ' &amp; &lt; &gt;, caractère ©, caractère échappé &amp;#xa9;, entités &amp;copy; &amp;author1;</p>
  </description>
  <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
  <updatecontact>dueno_at_src.gnome.org</updatecontact>
</component>
EOF

unset LINGUAS

: ${MSGFMT=msgfmt}

# 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

${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out -l fr \
          >/dev/null 2>/dev/null \
  && Exit 1

${MSGFMT} --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