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 msgmerge and msgcmp on a PO file with contexts.

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

tmpfiles="$tmpfiles mm-test18.po"
cat <<\EOF > mm-test18.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"

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

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

#. 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"
EOF

tmpfiles="$tmpfiles mm-test18.pot"
cat <<\EOF > mm-test18.pot
# 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"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

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

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

#. A menu item
msgctxt "File|"
msgid "Close"
msgstr ""

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

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

#. Denote a door's state
msgctxt "Door state"
msgid "Open"
msgstr ""

#. Denote a door's state
msgctxt "Door state"
msgid "Closed"
msgstr ""

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

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

: ${MSGCMP=msgcmp}
${MSGCMP} --use-fuzzy --use-untranslated mm-test18.po mm-test18.pot 2>/dev/null
test $? = 1 || { rm -fr $tmpfiles; exit 1; }

tmpfiles="$tmpfiles mm-test18.new.po"
: ${MSGMERGE=msgmerge}
${MSGMERGE} -q -o mm-test18.new.po mm-test18.po mm-test18.pot
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

tmpfiles="$tmpfiles mm-test18.ok"
# Note that the fuzzy guess for "Open" in context "Door state" could be either
# "Ouvrir" (from context "File|") or "Ouvert" (from context "Lock state").
cat <<\EOF > mm-test18.ok
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"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"

#. A menu item
#, fuzzy
msgctxt "File|"
msgid "Close"
msgstr "Fermé"

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

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

#. Denote a door's state
#, fuzzy
msgctxt "Door state"
msgid "Open"
msgstr "Ouvrir"

#. Denote a door's state
#, fuzzy
msgctxt "Door state"
msgid "Closed"
msgstr "Fermé"

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

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

#~ msgctxt "File|"
#~ msgid "Save As"
#~ msgstr "Enregistrer sous"

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

: ${DIFF=diff}
${DIFF} mm-test18.ok mm-test18.new.po
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

: ${MSGCMP=msgcmp}
${MSGCMP} --use-fuzzy --use-untranslated mm-test18.new.po mm-test18.pot
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

rm -fr $tmpfiles

exit 0