1 #! /bin/sh 2 3 # Test msgmerge and msgcmp on a PO file with contexts. 4 5 tmpfiles="" 6 trap 'rm -fr $tmpfiles' 1 2 3 15 7 8 tmpfiles="$tmpfiles mm-test18.po" 9 cat <<\EOF > mm-test18.po 10 msgid "" 11 msgstr "" 12 "Content-Type: text/plain; charset=UTF-8\n" 13 "Content-Transfer-Encoding: 8bit\n" 14 15 #. A menu item 16 msgctxt "File|" 17 msgid "Open" 18 msgstr "Ouvrir" 19 20 #. A menu item 21 msgctxt "File|" 22 msgid "New" 23 msgstr "Nouveau" 24 25 #. A menu item 26 msgctxt "File|" 27 msgid "Save As" 28 msgstr "Enregistrer sous" 29 30 msgid "Save As" 31 msgstr "Enregistrer l'as" 32 33 #. Denote a lock's state 34 msgctxt "Lock state" 35 msgid "Open" 36 msgstr "Ouvert" 37 38 #. Denote a lock's state 39 msgctxt "Lock state" 40 msgid "Closed" 41 msgstr "Ferm" 42 43 #. A product 44 msgctxt "Audi" 45 msgid "car" 46 msgstr "voiture" 47 48 #. A product 49 msgctxt "Oc" 50 msgid "copier" 51 msgstr "photocopieur" 52 EOF 53 54 tmpfiles="$tmpfiles mm-test18.pot" 55 cat <<\EOF > mm-test18.pot 56 # SOME DESCRIPTIVE TITLE. 57 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 58 # This file is distributed under the same license as the PACKAGE package. 59 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. 60 # 61 #, fuzzy 62 msgid "" 63 msgstr "" 64 "Project-Id-Version: PACKAGE VERSION\n" 65 "Report-Msgid-Bugs-To: \n" 66 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 67 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 68 "Language-Team: LANGUAGE <LL (at] li.org>\n" 69 "MIME-Version: 1.0\n" 70 "Content-Type: text/plain; charset=UTF-8\n" 71 "Content-Transfer-Encoding: 8bit\n" 72 73 #. A menu item 74 msgctxt "File|" 75 msgid "Open" 76 msgstr "" 77 78 #. A menu item 79 msgctxt "File|" 80 msgid "New" 81 msgstr "" 82 83 #. A menu item 84 msgctxt "File|" 85 msgid "Close" 86 msgstr "" 87 88 #. Denote a lock's state 89 msgctxt "Lock state" 90 msgid "Open" 91 msgstr "" 92 93 #. Denote a lock's state 94 msgctxt "Lock state" 95 msgid "Closed" 96 msgstr "" 97 98 #. Denote a door's state 99 msgctxt "Door state" 100 msgid "Open" 101 msgstr "" 102 103 #. Denote a door's state 104 msgctxt "Door state" 105 msgid "Closed" 106 msgstr "" 107 108 #. A product 109 msgctxt "Audi" 110 msgid "car" 111 msgstr "" 112 113 #. A product 114 msgctxt "Oc" 115 msgid "copier" 116 msgstr "" 117 EOF 118 119 : ${MSGCMP=msgcmp} 120 ${MSGCMP} --use-fuzzy --use-untranslated mm-test18.po mm-test18.pot 2>/dev/null 121 test $? = 1 || { rm -fr $tmpfiles; exit 1; } 122 123 tmpfiles="$tmpfiles mm-test18.new.po" 124 : ${MSGMERGE=msgmerge} 125 ${MSGMERGE} -q -o mm-test18.new.po mm-test18.po mm-test18.pot 126 test $? = 0 || { rm -fr $tmpfiles; exit 1; } 127 128 tmpfiles="$tmpfiles mm-test18.ok" 129 # Note that the fuzzy guess for "Open" in context "Door state" could be either 130 # "Ouvrir" (from context "File|") or "Ouvert" (from context "Lock state"). 131 cat <<\EOF > mm-test18.ok 132 msgid "" 133 msgstr "" 134 "Report-Msgid-Bugs-To: \n" 135 "Content-Type: text/plain; charset=UTF-8\n" 136 "Content-Transfer-Encoding: 8bit\n" 137 138 #. A menu item 139 msgctxt "File|" 140 msgid "Open" 141 msgstr "Ouvrir" 142 143 #. A menu item 144 msgctxt "File|" 145 msgid "New" 146 msgstr "Nouveau" 147 148 #. A menu item 149 #, fuzzy 150 msgctxt "File|" 151 msgid "Close" 152 msgstr "Ferm" 153 154 #. Denote a lock's state 155 msgctxt "Lock state" 156 msgid "Open" 157 msgstr "Ouvert" 158 159 #. Denote a lock's state 160 msgctxt "Lock state" 161 msgid "Closed" 162 msgstr "Ferm" 163 164 #. Denote a door's state 165 #, fuzzy 166 msgctxt "Door state" 167 msgid "Open" 168 msgstr "Ouvrir" 169 170 #. Denote a door's state 171 #, fuzzy 172 msgctxt "Door state" 173 msgid "Closed" 174 msgstr "Ferm" 175 176 #. A product 177 msgctxt "Audi" 178 msgid "car" 179 msgstr "voiture" 180 181 #. A product 182 msgctxt "Oc" 183 msgid "copier" 184 msgstr "photocopieur" 185 186 #~ msgctxt "File|" 187 #~ msgid "Save As" 188 #~ msgstr "Enregistrer sous" 189 190 #~ msgid "Save As" 191 #~ msgstr "Enregistrer l'as" 192 EOF 193 194 : ${DIFF=diff} 195 ${DIFF} mm-test18.ok mm-test18.new.po 196 test $? = 0 || { rm -fr $tmpfiles; exit 1; } 197 198 : ${MSGCMP=msgcmp} 199 ${MSGCMP} --use-fuzzy --use-untranslated mm-test18.new.po mm-test18.pot 200 test $? = 0 || { rm -fr $tmpfiles; exit 1; } 201 202 rm -fr $tmpfiles 203 204 exit 0 205