Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#! /bin/sh

# Test msgfmt and msgunfmt on a PO file with contexts.

tmpfiles=""
trap 'rm -fr $tmpfiles' 1 2 3 15

tmpfiles="$tmpfiles mf-14.po"
cat <<\EOF > mf-14.po
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. A menu item
msgctxt "File|"
msgid "Open"
msgstr "Ouvrir"

#. A menu item
msgctxt "File|"
msgid "New"
msgstr "Nouveau"

#. Denote a lock's state
msgctxt "Lock state"
msgid "Open"
msgstr "Ouvert"

#. Denote a lock's state
msgctxt "Lock state"
msgid "Closed"
msgstr "Fermé"

#. A product
msgctxt "Audi"
msgid "car"
msgstr "voiture"

#. A product
msgctxt "Océ"
msgid "copier"
msgstr "photocopieur"

#~ msgid "Save As"
#~ msgstr "Enregistrer l'as"

#. A menu item
#~ msgctxt "File|"
#~ msgid "Save As"
#~ msgstr "Enregistrer sous"
EOF

tmpfiles="$tmpfiles mf-14.mo"
: ${MSGFMT=msgfmt}
${MSGFMT} -o mf-14.mo mf-14.po
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

tmpfiles="$tmpfiles mf-14.out"
: ${MSGUNFMT=msgunfmt}
${MSGUNFMT} -o mf-14.out mf-14.mo
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

tmpfiles="$tmpfiles mf-14.ok"
cat <<\EOF > mf-14.ok
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgctxt "Audi"
msgid "car"
msgstr "voiture"

msgctxt "File|"
msgid "New"
msgstr "Nouveau"

msgctxt "File|"
msgid "Open"
msgstr "Ouvrir"

msgctxt "Lock state"
msgid "Closed"
msgstr "Fermé"

msgctxt "Lock state"
msgid "Open"
msgstr "Ouvert"

msgctxt "Océ"
msgid "copier"
msgstr "photocopieur"
EOF

: ${DIFF=diff}
${DIFF} mf-14.ok mf-14.out
result=$?

rm -fr $tmpfiles

exit $result